serverspec 0.0.14 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -63,6 +63,10 @@ module Serverspec
63
63
  def check_link link, target
64
64
  "stat -c %N #{link} | grep #{target}"
65
65
  end
66
+
67
+ def check_installed_by_gem name
68
+ "gem list --local | grep #{name}"
69
+ end
66
70
  end
67
71
  end
68
72
  end
@@ -12,4 +12,5 @@ require 'serverspec/matchers/be_owned_by'
12
12
  require 'serverspec/matchers/be_grouped_into'
13
13
  require 'serverspec/matchers/have_cron_entry'
14
14
  require 'serverspec/matchers/be_linked_to'
15
+ require 'serverspec/matchers/be_installed_by_gem'
15
16
 
@@ -0,0 +1,13 @@
1
+ RSpec::Matchers.define :be_installed_by_gem do
2
+ match do |name|
3
+ ret = ssh_exec(commands.check_installed_by_gem(name))
4
+ res = ret[:exit_code] == 0
5
+ if res && @version
6
+ res = false if not ret[:stdout].match(/\(#{@version}\)/)
7
+ end
8
+ res
9
+ end
10
+ chain :with_version do |version|
11
+ @version = version
12
+ end
13
+ end
@@ -1,3 +1,3 @@
1
1
  module Serverspec
2
- VERSION = "0.0.14"
2
+ VERSION = "0.0.15"
3
3
  end
@@ -178,3 +178,27 @@ shared_examples_for 'support be_linked_to matcher' do |file, target|
178
178
  end
179
179
  end
180
180
  end
181
+
182
+ shared_examples_for 'support be_installed_by_gem matcher' do |name|
183
+ describe 'be_installed_by_gem' do
184
+ describe name do
185
+ it { should be_installed_by_gem }
186
+ end
187
+
188
+ describe 'dummygem' do
189
+ it { should_not be_installed_by_gem }
190
+ end
191
+ end
192
+ end
193
+
194
+ shared_examples_for 'support be_installed_by_gem.with_version matcher' do |name, version|
195
+ describe 'be_installed_by_gem.with_version' do
196
+ describe name do
197
+ it { should be_installed_by_gem.with_version(version) }
198
+ end
199
+
200
+ describe name do
201
+ it { should_not be_installed_by_gem.with_version('dummyversion') }
202
+ end
203
+ end
204
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: serverspec
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 14
10
- version: 0.0.14
9
+ - 15
10
+ version: 0.0.15
11
11
  platform: ruby
12
12
  authors:
13
13
  - Gosuke Miyashita
@@ -105,6 +105,7 @@ files:
105
105
  - lib/serverspec/matchers/be_group.rb
106
106
  - lib/serverspec/matchers/be_grouped_into.rb
107
107
  - lib/serverspec/matchers/be_installed.rb
108
+ - lib/serverspec/matchers/be_installed_by_gem.rb
108
109
  - lib/serverspec/matchers/be_linked_to.rb
109
110
  - lib/serverspec/matchers/be_listening.rb
110
111
  - lib/serverspec/matchers/be_mode.rb