inspec 1.32.1 → 1.33.1

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.
data/Gemfile CHANGED
@@ -37,7 +37,6 @@ group :tools do
37
37
  gem 'pry', '~> 0.10'
38
38
  gem 'rb-readline'
39
39
  gem 'license_finder'
40
- gem "github_changelog_generator", git: "https://github.com/chef/github-changelog-generator"
41
40
  end
42
41
 
43
42
  # gems for Maintainers.md generation
data/Rakefile CHANGED
@@ -4,7 +4,6 @@
4
4
  require 'bundler'
5
5
  require 'bundler/gem_tasks'
6
6
  require 'rake/testtask'
7
- require_relative 'tasks/changelog'
8
7
  require_relative 'tasks/maintainers'
9
8
  require_relative 'tasks/spdx'
10
9
 
@@ -138,19 +137,6 @@ task :version do
138
137
  inspec_version
139
138
  end
140
139
 
141
- # Update the version of this gem and create an updated
142
- # changelog. It covers everything short of actually releasing
143
- # the gem.
144
- desc 'Bump the version of this gem'
145
- task :bump_version, [:version] do |_, args|
146
- v = args[:version] || ENV['to']
147
- fail "You must specify a target version! rake bump_version to=1.2.3" if v.empty?
148
- check_update_requirements
149
- inspec_version(v)
150
- Rake::Task['changelog'].invoke
151
- Rake::Task['docs:cli'].invoke
152
- end
153
-
154
140
  desc 'Release a new docker image'
155
141
  task :release_docker do
156
142
  version = Inspec::VERSION
@@ -8,6 +8,7 @@ Inspec uses matchers to help compare resource values to expectations.
8
8
  The following matchers are available:
9
9
 
10
10
  * `be`
11
+ * `be_in`
11
12
  * `cmp`
12
13
  * `eq`
13
14
  * `include`
@@ -125,6 +126,16 @@ describe passwd do
125
126
  end
126
127
  ```
127
128
 
129
+ ## be_in
130
+
131
+ Verifies that an item is included in a list.
132
+
133
+ ```ruby
134
+ describe resource do
135
+ its('item') { should be_in LIST }
136
+ end
137
+ ```
138
+
128
139
  ## match
129
140
 
130
141
  Check if a string matches a regular expression.
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
26
26
 
27
27
  spec.required_ruby_version = '>= 2.1'
28
28
 
29
- spec.add_dependency 'train', '>=0.24.0', '<1.0'
29
+ spec.add_dependency 'train', '~> 0.26'
30
30
  spec.add_dependency 'thor', '~> 0.19'
31
31
  spec.add_dependency 'json', '>= 1.8', '< 3.0'
32
32
  spec.add_dependency 'rainbow', '~> 2'
@@ -4,5 +4,5 @@
4
4
  # author: Christoph Hartmann
5
5
 
6
6
  module Inspec
7
- VERSION = '1.32.1'.freeze
7
+ VERSION = '1.33.1'.freeze
8
8
  end
@@ -222,6 +222,44 @@ RSpec::Matchers.define :contain do |rule|
222
222
  end
223
223
  end
224
224
 
225
+ # `be_in` matcher
226
+ # You can use it in the following cases:
227
+ # - check if an item or array is included in a given array
228
+ # eg:
229
+ # describe nginx do
230
+ # its('user') { should be_in AUTHORIZED_USER_LIST }
231
+ # end
232
+ # describe nginx do
233
+ # its('module_list') { should be_in AUTHORIZED_MODULE_LIST }
234
+ # end
235
+ RSpec::Matchers.define :be_in do |list|
236
+ match do |item|
237
+ # Handle both single item and array
238
+ item.is_a?(Array) ? (item - list).empty? : list.include?(item)
239
+ end
240
+
241
+ match_when_negated do |item|
242
+ # Handle both single item and array
243
+ item.is_a?(Array) ? (item & list).empty? : !list.include?(item)
244
+ end
245
+
246
+ failure_message do |item|
247
+ if item.is_a?(Array)
248
+ "expected `#{item}` to be in the list: `#{list}` \nDiff:\n #{(item - list)}"
249
+ else
250
+ "expected `#{item}` to be in the list: `#{list}`"
251
+ end
252
+ end
253
+
254
+ failure_message_when_negated do |item|
255
+ if item.is_a?(Array)
256
+ "expected `#{item}` not to be in the list: `#{list}` \nComm:\n #{(item & list)}"
257
+ else
258
+ "expected `#{item}` not to be in the list: `#{list}`"
259
+ end
260
+ end
261
+ end
262
+
225
263
  # This matcher implements a compare feature that cannot be covered by the default
226
264
  # `eq` matcher
227
265
  # You can use it in the following cases:
@@ -74,11 +74,13 @@ module Inspec::Resources
74
74
  end
75
75
 
76
76
  def repo
77
- image.split(':')[0] unless image.nil?
77
+ return if image_name_from_image.nil?
78
+ image_name_from_image.split(':')[0]
78
79
  end
79
80
 
80
81
  def tag
81
- image.split(':')[1] unless image.nil?
82
+ return if image_name_from_image.nil?
83
+ image_name_from_image.split(':')[1]
82
84
  end
83
85
 
84
86
  def to_s
@@ -88,6 +90,16 @@ module Inspec::Resources
88
90
 
89
91
  private
90
92
 
93
+ def image_name_from_image
94
+ return if image.nil?
95
+ # possible image names include:
96
+ # alpine
97
+ # ubuntu:14.04
98
+ # repo.example.com:5000/ubuntu
99
+ # repo.example.com:5000/ubuntu:1404
100
+ image.include?('/') ? image.split('/')[1] : image
101
+ end
102
+
91
103
  def container_info
92
104
  return @info if defined?(@info)
93
105
  opts = @opts
metadata CHANGED
@@ -1,35 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.32.1
4
+ version: 1.33.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dominik Richter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-03 00:00:00.000000000 Z
11
+ date: 2017-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: train
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 0.24.0
20
- - - "<"
17
+ - - "~>"
21
18
  - !ruby/object:Gem::Version
22
- version: '1.0'
19
+ version: '0.26'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: 0.24.0
30
- - - "<"
24
+ - - "~>"
31
25
  - !ruby/object:Gem::Version
32
- version: '1.0'
26
+ version: '0.26'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: thor
35
29
  requirement: !ruby/object:Gem::Requirement