inspec 2.1.72 → 2.1.78

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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -13
  3. data/Gemfile +1 -1
  4. data/docs/resources/aws_cloudtrail_trail.md.erb +10 -4
  5. data/docs/resources/aws_cloudtrail_trails.md.erb +6 -1
  6. data/docs/resources/aws_cloudwatch_alarm.md.erb +10 -5
  7. data/docs/resources/aws_cloudwatch_log_metric_filter.md.erb +4 -1
  8. data/docs/resources/aws_config_delivery_channel.md.erb +9 -4
  9. data/docs/resources/aws_config_recorder.md.erb +10 -5
  10. data/docs/resources/aws_ec2_instance.md.erb +6 -0
  11. data/docs/resources/aws_iam_access_key.md.erb +8 -2
  12. data/docs/resources/aws_iam_access_keys.md.erb +11 -5
  13. data/docs/resources/aws_iam_group.md.erb +6 -0
  14. data/docs/resources/aws_iam_groups.md.erb +7 -1
  15. data/docs/resources/aws_iam_password_policy.md.erb +7 -1
  16. data/docs/resources/aws_iam_policies.md.erb +8 -3
  17. data/docs/resources/aws_iam_policy.md.erb +14 -8
  18. data/docs/resources/aws_iam_role.md.erb +6 -0
  19. data/docs/resources/aws_iam_root_user.md.erb +6 -0
  20. data/docs/resources/aws_iam_user.md.erb +9 -4
  21. data/docs/resources/aws_iam_users.md.erb +12 -6
  22. data/docs/resources/aws_kms_key.md.erb +11 -5
  23. data/docs/resources/aws_kms_keys.md.erb +7 -2
  24. data/docs/resources/aws_rds_instance.md.erb +6 -0
  25. data/docs/resources/aws_route_table.md.erb +6 -0
  26. data/docs/resources/aws_route_tables.md.erb +6 -0
  27. data/docs/resources/aws_s3_bucket.md.erb +7 -1
  28. data/docs/resources/aws_s3_bucket_object.md.erb +8 -2
  29. data/docs/resources/aws_s3_buckets.md.erb +7 -1
  30. data/docs/resources/aws_security_group.md.erb +24 -18
  31. data/docs/resources/aws_security_groups.md.erb +6 -0
  32. data/docs/resources/aws_sns_subscription.md.erb +17 -12
  33. data/docs/resources/aws_sns_topic.md.erb +6 -0
  34. data/docs/resources/aws_sns_topics.md.erb +6 -0
  35. data/docs/resources/aws_subnet.md.erb +19 -13
  36. data/docs/resources/aws_subnets.md.erb +6 -0
  37. data/docs/resources/aws_vpc.md.erb +6 -1
  38. data/docs/resources/aws_vpcs.md.erb +6 -0
  39. data/docs/resources/http.md.erb +6 -6
  40. data/inspec.gemspec +3 -1
  41. data/lib/inspec/reporters/automate.rb +1 -1
  42. data/lib/inspec/version.rb +1 -1
  43. data/lib/resources/aws/aws_iam_policy.rb +2 -1
  44. data/lib/resources/aws/aws_security_group.rb +4 -4
  45. metadata +18 -4
@@ -89,3 +89,9 @@ The control will pass if the filter returns at least one result. Use `should_not
89
89
  describe aws_security_groups
90
90
  it { should exist }
91
91
  end
92
+
93
+ ## AWS Permissions
94
+
95
+ Your [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) will need the `ec2:DescribeSecurityGroups` action with Effect set to Allow.
96
+
97
+ You can find detailed documentation at [Actions, Resources, and Condition Keys for Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html).
@@ -34,7 +34,7 @@ This InSpec resource accepts the following parameters, which are used to search
34
34
 
35
35
  The ARN (Amazon Resource Name) of the AWS SNS Subscription.
36
36
 
37
- # Using Hash syntax
37
+ # Using Hash syntax
38
38
  describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::test-topic-01:b214aff5-a2c7-438f-a753-8494493f2ff6') do
39
39
  it { should exist }
40
40
  end
@@ -52,23 +52,23 @@ The ARN (Amazon Resource Name) of the AWS SNS Subscription.
52
52
 
53
53
  The control will pass if the specified Aws Subscription was found. Use should_not if you want to verify that the specified Subscription does not exist.
54
54
 
55
- # Test that a specific subscription exists.
55
+ # Test that a specific subscription exists.
56
56
  describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::test-topic-01:b214aff5-a2c7-438f-a753-8494493f2ff6')
57
57
  it { should exist }
58
- end
58
+ end
59
59
 
60
60
  # Test that a Subscription does not exist.
61
61
  describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::NOGOOD:b214aff5-a2c7-438f-a753-8494493f2ff6')
62
62
  it { should_not exist }
63
- end
64
-
63
+ end
64
+
65
65
  ### be\_confirmation\_authenticated
66
66
 
67
67
  Provides whether or not the subscription confirmation request was authenticated.
68
68
 
69
69
  describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::NOGOOD:b214aff5-a2c7-438f-a753-8494493f2ff6')
70
70
  it { should be_confirmation_authenticated }
71
- end
71
+ end
72
72
 
73
73
  ### have\_raw\_message\_delivery
74
74
 
@@ -76,7 +76,7 @@ Provides whether or not the original message is passed as is, not formatted as a
76
76
 
77
77
  describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::NOGOOD:b214aff5-a2c7-438f-a753-8494493f2ff6')
78
78
  it { should have_raw_message_delivery }
79
- end
79
+ end
80
80
 
81
81
  ## Properties
82
82
 
@@ -95,19 +95,19 @@ Provides the destination that the SNS Topic will send notifications to.
95
95
  # If the protocol is 'lambda', its endpoint should be the ARN of a AWS Lambda function
96
96
  its('endpoint') { should cmp 'rn:aws:lambda:us-east-1:account-id:function:myfunction' }
97
97
  end
98
-
98
+
99
99
  ### owner
100
100
 
101
- Provides the AWS Owners ID.
101
+ Provides the AWS Owners ID.
102
102
 
103
103
  # Inspect the owners ID
104
104
  describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::test-topic-01:b214aff5-a2c7-438f-a753-8494493f2ff6' ) do
105
105
  its('owner') { should cmp '12345678' }
106
106
  end
107
-
107
+
108
108
  ### protocol
109
109
 
110
- Provides the Subscriptions protocol used. For example http, https, email, email-json, sqs, etc. For more information about protocols please visit https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html
110
+ Provides the Subscriptions protocol used. For example http, https, email, email-json, sqs, etc. For more information about protocols please visit https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html
111
111
 
112
112
  # Inspect the endpoint
113
113
  describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::test-topic-01:b214aff5-a2c7-438f-a753-8494493f2ff6' ) do
@@ -122,4 +122,9 @@ Provides the SNS Topic arn that the Subscription is associated with.
122
122
  describe aws_sns_subscription(subscription_arn: 'arn:aws:sns:us-east-1::test-topic-01:b214aff5-a2c7-438f-a753-8494493f2ff6' ) do
123
123
  its('topic_arn') { should cmp 'arn:aws:sns:us-east-1::test-topic-01' }
124
124
  end
125
-
125
+
126
+ ## AWS Permissions
127
+
128
+ Your [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) will need the `sns:GetSubscriptionAttributes` action with Effect set to Allow.
129
+
130
+ You can find detailed documentation at [Actions, Resources, and Condition Keys for Amazon SNS](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonsns.html).
@@ -61,3 +61,9 @@ Indicates that the ARN provided was found. Use `should_not` to test for SNS top
61
61
  describe aws_sns_topic('arn:aws:sns:*::bad-news') do
62
62
  it { should_not exist }
63
63
  end
64
+
65
+ ## AWS Permissions
66
+
67
+ Your [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) will need the `sns:GetTopicAttributes` action with Effect set to Allow.
68
+
69
+ You can find detailed documentation at [Actions, Resources, and Condition Keys for Amazon SNS](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonsns.html).
@@ -50,3 +50,9 @@ Provides an array of all SNS Topic arns.
50
50
  describe aws_sns_topics do
51
51
  its('topic_arns') { should include 'arn:aws:sns:us-east-1:333344445555:MyTopic' }
52
52
  end
53
+
54
+ ## AWS Permissions
55
+
56
+ Your [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) will need the `sns:ListTopics` action with Effect set to Allow.
57
+
58
+ You can find detailed documentation at [Actions, Resources, and Condition Keys for Amazon SNS](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonsns.html).
@@ -34,7 +34,7 @@ A string identifying the subnet that the VPC contains.
34
34
 
35
35
  # This will error if there is more than the default SG
36
36
  describe aws_subnet(subnet_id: 'subnet-12345678') do
37
- it { should exist }
37
+ it { should exist }
38
38
  end
39
39
 
40
40
  <br>
@@ -52,7 +52,7 @@ A string identifying the subnet that the VPC contains.
52
52
  Provides the Availability Zone of the subnet.
53
53
 
54
54
  describe aws_subnet(subnet_id: 'subnet-12345678') do
55
- its('availability_zone') { should eq 'us-east-1c' }
55
+ its('availability_zone') { should eq 'us-east-1c' }
56
56
  end
57
57
 
58
58
  ### available\_ip\_address\_count
@@ -60,7 +60,7 @@ Provides the Availability Zone of the subnet.
60
60
  Provides the number of available IPv4 addresses on the subnet.
61
61
 
62
62
  describe aws_subnet(subnet_id: 'subnet-12345678') do
63
- its('available_ip_address_count') { should eq 251 }
63
+ its('available_ip_address_count') { should eq 251 }
64
64
  end
65
65
 
66
66
  ### cidr\_block
@@ -68,7 +68,7 @@ Provides the number of available IPv4 addresses on the subnet.
68
68
  Provides the block of ip addresses specified to the subnet.
69
69
 
70
70
  describe aws_subnet(subnet_id: 'subnet-12345678') do
71
- its('cidr_block') { should eq '10.0.1.0/24' }
71
+ its('cidr_block') { should eq '10.0.1.0/24' }
72
72
  end
73
73
 
74
74
  ### subnet\_id
@@ -76,7 +76,7 @@ Provides the block of ip addresses specified to the subnet.
76
76
  Provides the ID of the Subnet.
77
77
 
78
78
  describe aws_subnet(subnet_id: 'subnet-12345678') do
79
- its('subnet_id') { should eq 'subnet-12345678' }
79
+ its('subnet_id') { should eq 'subnet-12345678' }
80
80
  end
81
81
 
82
82
  ### vpc\_id
@@ -84,10 +84,10 @@ Provides the ID of the Subnet.
84
84
  Provides the ID of the VPC the subnet is in.
85
85
 
86
86
  describe aws_subnet(subnet_id: 'subnet-12345678') do
87
- its('vpc_id') { should eq 'vpc-12345678' }
87
+ its('vpc_id') { should eq 'vpc-12345678' }
88
88
  end
89
89
 
90
- <br>
90
+ <br>
91
91
 
92
92
  ## Matchers
93
93
 
@@ -98,15 +98,15 @@ This InSpec audit resource has the following special matchers. For a full list o
98
98
  Detects if the network interface on the subnet accepts IPv6 addresses.
99
99
 
100
100
  describe aws_subnet(subnet_id: 'subnet-12345678') do
101
- it { should be_assigning_ipv_6_address_on_creation }
101
+ it { should be_assigning_ipv_6_address_on_creation }
102
102
  end
103
-
103
+
104
104
  ### available
105
105
 
106
106
  Provides the current state of the subnet.
107
107
 
108
108
  describe aws_subnet(subnet_id: 'subnet-12345678') do
109
- it { should be_available }
109
+ it { should be_available }
110
110
  end
111
111
 
112
112
  ### default\_for\_az
@@ -114,7 +114,7 @@ Provides the current state of the subnet.
114
114
  Detects if the subnet is the default subnet for the Availability Zone.
115
115
 
116
116
  describe aws_subnet(subnet_id: 'subnet-12345678') do
117
- it { should be_default_for_az }
117
+ it { should be_default_for_az }
118
118
  end
119
119
 
120
120
  ### exist
@@ -124,11 +124,17 @@ The `exist` matcher indicates that a subnet exists for the specified vpc.
124
124
  describe aws_subnet(subnet_id: 'subnet-12345678') do
125
125
  it { should exist }
126
126
  end
127
-
127
+
128
128
  ### mapping\_public\_ip\_on\_launch
129
129
 
130
130
  Provides the VPC ID for the subnet.
131
131
 
132
132
  describe aws_subnet(subnet_id: 'subnet-12345678') do
133
- it { should be_mapping_public_ip_on_launch }
133
+ it { should be_mapping_public_ip_on_launch }
134
134
  end
135
+
136
+ ## AWS Permissions
137
+
138
+ Your [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) will need the `ec2:DescribeSubnets` action with Effect set to Allow.
139
+
140
+ You can find detailed documentation at [Actions, Resources, and Condition Keys for Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html).
@@ -124,3 +124,9 @@ The control will pass if the filter returns at least one result. Use `should_not
124
124
  describe aws_subnets.where(vpc_id: 'vpc-12345678')
125
125
  it { should exist }
126
126
  end
127
+
128
+ ## AWS Permissions
129
+
130
+ Your [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) will need the `ec2:DescribeSubnets` action with Effect set to Allow.
131
+
132
+ You can find detailed documentation at [Actions, Resources, and Condition Keys for Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html).
@@ -11,7 +11,7 @@ To test properties of all or multiple VPCs, use the `aws_vpcs` resource.
11
11
 
12
12
  A VPC is a networking construct that provides an isolated environment. A VPC is contained in a geographic region, but spans availability zones in that region. A VPC may have multiple subnets, internet gateways, and other networking resources. Computing resources--such as EC2 instances--reside on subnets within the VPC.
13
13
 
14
- Each VPC is uniquely identified by its VPC ID. In addition, each VPC has a non-unique CIDR IP Address range (such as 10.0.0.0/16) which it manages.
14
+ Each VPC is uniquely identified by its VPC ID. In addition, each VPC has a non-unique CIDR IP Address range (such as 10.0.0.0/16) which it manages.
15
15
 
16
16
  Every AWS account has at least one VPC, the "default" VPC, in every region.
17
17
 
@@ -118,3 +118,8 @@ The test will pass if the identified VPC is the default VPC for the region.
118
118
  it { should be_default }
119
119
  end
120
120
 
121
+ ## AWS Permissions
122
+
123
+ Your [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) will need the `ec2:DescribeVpcs` action with Effect set to Allow.
124
+
125
+ You can find detailed documentation at [Actions, Resources, and Condition Keys for Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html).
@@ -117,3 +117,9 @@ The control will pass if the filter returns at least one result. Use `should_not
117
117
  describe aws_vpcs
118
118
  it { should exist }
119
119
  end
120
+
121
+ ## AWS Permissions
122
+
123
+ Your [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) will need the `ec2:DescribeVpcs` action with Effect set to Allow.
124
+
125
+ You can find detailed documentation at [Actions, Resources, and Condition Keys for Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html).
@@ -113,7 +113,7 @@ In InSpec 2.0, the HTTP test will automatically execute remotely whenever InSpec
113
113
  ...
114
114
  end
115
115
 
116
- ### headers
116
+ ### headers
117
117
 
118
118
  `{headers}` may be specified for http request headers.
119
119
 
@@ -135,7 +135,7 @@ In InSpec 2.0, the HTTP test will automatically execute remotely whenever InSpec
135
135
 
136
136
  `open_timeout` may be specified for a timeout for opening connections (default to 60).
137
137
 
138
- describe('http://localhost:8080/ping',
138
+ describe('http://localhost:8080/ping',
139
139
  open_timeout: '90') do
140
140
  ...
141
141
  end
@@ -144,7 +144,7 @@ In InSpec 2.0, the HTTP test will automatically execute remotely whenever InSpec
144
144
 
145
145
  `read_timeout` may be specified for a timeout for reading connections (default to 60).
146
146
 
147
- describe('http://localhost:8080/ping',
147
+ describe('http://localhost:8080/ping',
148
148
  read_timeout: '90') do
149
149
  ...
150
150
  end
@@ -153,8 +153,8 @@ In InSpec 2.0, the HTTP test will automatically execute remotely whenever InSpec
153
153
 
154
154
  `ssl_verify` may be specified to enable or disable verification of SSL certificates (default to `true`).
155
155
 
156
- describe('http://localhost:8080/ping',
157
- ssl_verify: 'true') do
156
+ describe('http://localhost:8080/ping',
157
+ ssl_verify: true) do
158
158
  ...
159
159
  end
160
160
 
@@ -194,4 +194,4 @@ The `status` matcher tests status of the http response:
194
194
 
195
195
  ## Matchers
196
196
 
197
- For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
197
+ For a full list of available matchers, please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
data/inspec.gemspec CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
26
26
 
27
27
  spec.required_ruby_version = '>= 2.3'
28
28
 
29
- spec.add_dependency 'train', '~> 1.4'
29
+ spec.add_dependency 'train', '~> 1.4.9'
30
30
  spec.add_dependency 'thor', '~> 0.20'
31
31
  spec.add_dependency 'json', '>= 1.8', '< 3.0'
32
32
  spec.add_dependency 'method_source', '~> 0.8'
@@ -39,6 +39,8 @@ Gem::Specification.new do |spec|
39
39
  spec.add_dependency 'sslshake', '~> 1.2'
40
40
  spec.add_dependency 'parallel', '~> 1.9'
41
41
  spec.add_dependency 'faraday', '>=0.9.0'
42
+ # Used for Azure profile until integrated into train
43
+ spec.add_dependency 'faraday_middleware', '~> 0.12.2'
42
44
  spec.add_dependency 'tomlrb', '~> 1.2'
43
45
  spec.add_dependency 'addressable', '~> 2.4'
44
46
  spec.add_dependency 'parslet', '~> 1.5'
@@ -23,7 +23,7 @@ module Inspec::Reporters
23
23
  final_report[:node_uuid] = @config['node_uuid'] || @run_data[:platform][:uuid]
24
24
  raise Inspec::ReporterError, 'Cannot find a UUID for your node. Please specify one via json-config.' if final_report[:node_uuid].nil?
25
25
 
26
- final_report[:report_uuid] = uuid_from_string(final_report[:end_time] + final_report[:node_uuid])
26
+ final_report[:report_uuid] = @config['report_uuid'] || uuid_from_string(final_report[:end_time] + final_report[:node_uuid])
27
27
 
28
28
  # optional json-config passthrough options
29
29
  %w{node_name environment roles recipies}.each do |option|
@@ -4,5 +4,5 @@
4
4
  # author: Christoph Hartmann
5
5
 
6
6
  module Inspec
7
- VERSION = '2.1.72'
7
+ VERSION = '2.1.78'
8
8
  end
@@ -93,8 +93,9 @@ class AwsIamPolicy < Inspec.resource(1)
93
93
  end
94
94
  end
95
95
 
96
- def has_statement?(raw_criteria = {})
96
+ def has_statement?(provided_criteria = {})
97
97
  return nil unless exists?
98
+ raw_criteria = provided_criteria.dup # provided_criteria is used for output formatting - can't delete from it.
98
99
  criteria = has_statement__normalize_criteria(has_statement__validate_criteria(raw_criteria))
99
100
  @normalized_statements ||= has_statement__normalize_statements
100
101
  statements = has_statement__focus_on_sid(@normalized_statements, criteria)
@@ -19,22 +19,22 @@ class AwsSecurityGroup < Inspec.resource(1)
19
19
  end
20
20
 
21
21
  def allow_in?(criteria = {})
22
- allow(inbound_rules, criteria)
22
+ allow(inbound_rules, criteria.dup)
23
23
  end
24
24
  RSpec::Matchers.alias_matcher :allow_in, :be_allow_in
25
25
 
26
26
  def allow_out?(criteria = {})
27
- allow(outbound_rules, criteria)
27
+ allow(outbound_rules, criteria.dup)
28
28
  end
29
29
  RSpec::Matchers.alias_matcher :allow_out, :be_allow_out
30
30
 
31
31
  def allow_in_only?(criteria = {})
32
- allow_only(inbound_rules, criteria)
32
+ allow_only(inbound_rules, criteria.dup)
33
33
  end
34
34
  RSpec::Matchers.alias_matcher :allow_in_only, :be_allow_in_only
35
35
 
36
36
  def allow_out_only?(criteria = {})
37
- allow_only(outbound_rules, criteria)
37
+ allow_only(outbound_rules, criteria.dup)
38
38
  end
39
39
  RSpec::Matchers.alias_matcher :allow_out_only, :be_allow_out_only
40
40
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.72
4
+ version: 2.1.78
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dominik Richter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-10 00:00:00.000000000 Z
11
+ date: 2018-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: train
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.4'
19
+ version: 1.4.9
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.4'
26
+ version: 1.4.9
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: thor
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -198,6 +198,20 @@ dependencies:
198
198
  - - ">="
199
199
  - !ruby/object:Gem::Version
200
200
  version: 0.9.0
201
+ - !ruby/object:Gem::Dependency
202
+ name: faraday_middleware
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: 0.12.2
208
+ type: :runtime
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: 0.12.2
201
215
  - !ruby/object:Gem::Dependency
202
216
  name: tomlrb
203
217
  requirement: !ruby/object:Gem::Requirement