Skip to content

Commit a1bfdda

Browse files
authored
Merge pull request #720 from kenhys/support-check_is_installed_by_gem
Windows: support check_is_installed_by_gem
2 parents 879c9fc + 42c4f74 commit a1bfdda

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
function FindInstalledGem
2+
{
3+
param($gemName, $gemVersion)
4+
5+
$nameVer = $(Invoke-Expression "gem list --local" | Select-String "$gemName").Line
6+
if ($nameVer.StartsWith($gemName)) {
7+
if ($gemVersion) {
8+
if ($nameVer.EndsWith("$gemVersion)")) {
9+
$true
10+
} else {
11+
$false
12+
}
13+
} else {
14+
$true
15+
}
16+
} else {
17+
$false
18+
}
19+
}
20+

lib/specinfra/command/windows/base/package.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,13 @@ def check_is_installed(package, version=nil)
77
exec "(FindInstalledApplication -appName '#{package}' #{version_selection}) -eq $true"
88
end
99
end
10+
11+
def check_is_installed_by_gem(name, version=nil, gem_binary="gem")
12+
version_selection = version.nil? ? "" : "-gemVersion '#{version}'"
13+
Backend::PowerShell::Command.new do
14+
using 'find_installed_gem.ps1'
15+
exec "(FindInstalledGem -gemName '#{name}' #{version_selection}) -eq $true"
16+
end
17+
end
1018
end
1119
end

0 commit comments

Comments
 (0)