hekate 0.1.0.pre22 → 0.2.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e6a5705bec9dcaefad7c05ef8c37cfca764300f6
4
- data.tar.gz: f102a337cf9fdc6410276faa50c34ab9cc62ac54
3
+ metadata.gz: 91c81ae8aa707334a461738f2cf0498065f49da1
4
+ data.tar.gz: dadc2fb0e8a743479a099b9004cf20db0b1fb73b
5
5
  SHA512:
6
- metadata.gz: cac58c211511032e7d15521ecd5e4fa63e3ee23fac815f496d0f4df81c7f9758f5796c790c8940996591c5cab1f140879c017080f4610ed12dc8857b9262e422
7
- data.tar.gz: f3c70921050eb8cb369d9b60ddb05d9909ae74d8e8615dc67342c84594a80d6a25de48c7efd71a6569c51159b0db04d549a0204b9535460e1abfe619d1fdec36
6
+ metadata.gz: 577f385bc491bb128f2d2b2ec3dfb5492addbcab7e71c351a9b6afa82f5a72ab5675faee7fef294021783e2ed3e4d5e4e3f68f929098844e3994632a64d8a8a4
7
+ data.tar.gz: adddbd587dce7b72c4b985089df08df6ac54ad2e6c8e2ac328f8fe5b5b457fc7aee77fae512050edc46c72a07d10519f9efd6b2dcda2234ca39249a90a6d717b
@@ -28,7 +28,7 @@ Layout/DotPosition:
28
28
  SupportedStyles:
29
29
  - leading
30
30
  - trailing
31
- Style/FileName:
31
+ Naming/FileName:
32
32
  Description: Use snake_case for source file names.
33
33
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#snake-case-files
34
34
  Enabled: true
@@ -38,15 +38,10 @@ Style/GuardClause:
38
38
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals
39
39
  Enabled: true
40
40
  MinBodyLength: 1
41
- Style/IfUnlessModifier:
42
- Description: Favor modifier if/unless usage when you have a single-line body.
43
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier
44
- Enabled: false
45
- MaxLineLength: 80
46
41
  Style/OptionHash:
47
42
  Description: Don't use option hashes when you can use keyword arguments.
48
43
  Enabled: false
49
- Style/PredicateName:
44
+ Naming/PredicateName:
50
45
  Description: Check the names of predicate methods.
51
46
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark
52
47
  Enabled: true
@@ -114,7 +109,16 @@ Style/TrailingCommaInArguments:
114
109
  - comma
115
110
  - consistent_comma
116
111
  - no_comma
117
- Style/TrailingCommaInLiteral:
112
+ Style/TrailingCommaInArrayLiteral:
113
+ Description: 'Checks for trailing comma in array and hash literals.'
114
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
115
+ Enabled: true
116
+ EnforcedStyleForMultiline: no_comma
117
+ SupportedStylesForMultiline:
118
+ - comma
119
+ - consistent_comma
120
+ - no_comma
121
+ Style/TrailingCommaInHashLiteral:
118
122
  Description: 'Checks for trailing comma in array and hash literals.'
119
123
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
120
124
  Enabled: true
@@ -172,7 +176,7 @@ Layout/AlignParameters:
172
176
  Style/InlineComment:
173
177
  Description: Avoid inline comments.
174
178
  Enabled: false
175
- Style/AccessorMethodName:
179
+ Naming/AccessorMethodName:
176
180
  Description: Check the naming of accessor methods for get_/set_.
177
181
  Enabled: false
178
182
  Style/Alias:
@@ -244,11 +248,11 @@ RedundantBlockCall:
244
248
  Enabled: false
245
249
  Style/EmptyMethod:
246
250
  Enabled: false
247
- Style/VariableNumber:
251
+ Naming/VariableNumber:
248
252
  EnforcedStyle: snake_case
249
253
 
250
254
  # checks whether the end keywords are aligned properly for `do` `end` blocks.
251
- Lint/BlockAlignment:
255
+ Layout/BlockAlignment:
252
256
  # The value `start_of_block` means that the `end` should be aligned with line
253
257
  # where the `do` keyword appears.
254
258
  # The value `start_of_line` means it should be aligned with the whole
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hekate (0.1.0.pre20)
4
+ hekate (0.1.0.pre24)
5
5
  aws-sdk-core (~> 3.6.0, >= 3.6.0)
6
6
  aws-sdk-kms (~> 1.2.0, >= 1.2.0)
7
7
  aws-sdk-ssm (~> 1.3.0, >= 1.3.0)
@@ -48,10 +48,10 @@ GEM
48
48
  minitest (~> 5.1)
49
49
  thread_safe (~> 0.3, >= 0.3.4)
50
50
  tzinfo (~> 1.1)
51
- addressable (2.5.1)
52
- public_suffix (~> 2.0, >= 2.0.2)
51
+ addressable (2.5.2)
52
+ public_suffix (>= 2.0.2, < 4.0)
53
53
  arel (6.0.4)
54
- aws-partitions (1.53.0)
54
+ aws-partitions (1.96.0)
55
55
  aws-sdk-core (3.6.1)
56
56
  aws-partitions (~> 1.0)
57
57
  aws-sigv4 (~> 1.0)
@@ -62,43 +62,43 @@ GEM
62
62
  aws-sdk-ssm (1.3.0)
63
63
  aws-sdk-core (~> 3)
64
64
  aws-sigv4 (~> 1.0)
65
- aws-sigv4 (1.0.2)
65
+ aws-sigv4 (1.0.3)
66
66
  builder (3.2.3)
67
67
  codecov (0.1.10)
68
68
  json
69
69
  simplecov
70
70
  url
71
- commander (4.4.3)
71
+ commander (4.4.5)
72
72
  highline (~> 1.7.2)
73
73
  concurrent-ruby (1.0.5)
74
74
  crack (0.4.3)
75
75
  safe_yaml (~> 1.0.0)
76
- crass (1.0.3)
76
+ crass (1.0.4)
77
77
  diff-lcs (1.3)
78
- docile (1.1.5)
79
- dotenv (2.2.1)
78
+ docile (1.3.1)
79
+ dotenv (2.5.0)
80
80
  ec2-metadata (0.2.2)
81
81
  erubis (2.7.0)
82
82
  globalid (0.4.1)
83
83
  activesupport (>= 4.2.0)
84
- hashdiff (0.3.5)
84
+ hashdiff (0.3.7)
85
85
  highline (1.7.10)
86
- i18n (0.9.1)
86
+ i18n (0.9.5)
87
87
  concurrent-ruby (~> 1.0)
88
- jmespath (1.3.1)
88
+ jmespath (1.4.0)
89
89
  json (2.1.0)
90
- loofah (2.1.1)
90
+ loofah (2.2.2)
91
91
  crass (~> 1.0.2)
92
92
  nokogiri (>= 1.5.9)
93
93
  mail (2.7.0)
94
94
  mini_mime (>= 0.1.1)
95
95
  mini_mime (1.0.0)
96
96
  mini_portile2 (2.3.0)
97
- minitest (5.11.1)
98
- nokogiri (1.8.1)
97
+ minitest (5.11.3)
98
+ nokogiri (1.8.4)
99
99
  mini_portile2 (~> 2.3.0)
100
- public_suffix (2.0.5)
101
- rack (1.6.8)
100
+ public_suffix (3.0.2)
101
+ rack (1.6.10)
102
102
  rack-test (0.6.3)
103
103
  rack (>= 1.0)
104
104
  rails (4.2.10)
@@ -118,36 +118,36 @@ GEM
118
118
  activesupport (>= 4.2.0, < 5.0)
119
119
  nokogiri (~> 1.6)
120
120
  rails-deprecated_sanitizer (>= 1.0.1)
121
- rails-html-sanitizer (1.0.3)
122
- loofah (~> 2.0)
121
+ rails-html-sanitizer (1.0.4)
122
+ loofah (~> 2.2, >= 2.2.2)
123
123
  railties (4.2.10)
124
124
  actionpack (= 4.2.10)
125
125
  activesupport (= 4.2.10)
126
126
  rake (>= 0.8.7)
127
127
  thor (>= 0.18.1, < 2.0)
128
128
  rake (10.5.0)
129
- rspec (3.6.0)
130
- rspec-core (~> 3.6.0)
131
- rspec-expectations (~> 3.6.0)
132
- rspec-mocks (~> 3.6.0)
133
- rspec-core (3.6.0)
134
- rspec-support (~> 3.6.0)
135
- rspec-expectations (3.6.0)
129
+ rspec (3.7.0)
130
+ rspec-core (~> 3.7.0)
131
+ rspec-expectations (~> 3.7.0)
132
+ rspec-mocks (~> 3.7.0)
133
+ rspec-core (3.7.1)
134
+ rspec-support (~> 3.7.0)
135
+ rspec-expectations (3.7.0)
136
136
  diff-lcs (>= 1.2.0, < 2.0)
137
- rspec-support (~> 3.6.0)
138
- rspec-mocks (3.6.0)
137
+ rspec-support (~> 3.7.0)
138
+ rspec-mocks (3.7.0)
139
139
  diff-lcs (>= 1.2.0, < 2.0)
140
- rspec-support (~> 3.6.0)
141
- rspec-support (3.6.0)
140
+ rspec-support (~> 3.7.0)
141
+ rspec-support (3.7.1)
142
142
  rspec_junit_formatter (0.3.0)
143
143
  rspec-core (>= 2, < 4, != 2.12.0)
144
144
  safe_yaml (1.0.4)
145
- simplecov (0.15.0)
146
- docile (~> 1.1.0)
145
+ simplecov (0.16.1)
146
+ docile (~> 1.1)
147
147
  json (>= 1.8, < 3)
148
148
  simplecov-html (~> 0.10.0)
149
149
  simplecov-html (0.10.2)
150
- sprockets (3.7.1)
150
+ sprockets (3.7.2)
151
151
  concurrent-ruby (~> 1.0)
152
152
  rack (> 1, < 3)
153
153
  sprockets-rails (3.2.1)
@@ -156,7 +156,7 @@ GEM
156
156
  sprockets (>= 3.0.0)
157
157
  thor (0.20.0)
158
158
  thread_safe (0.3.6)
159
- tzinfo (1.2.4)
159
+ tzinfo (1.2.5)
160
160
  thread_safe (~> 0.1)
161
161
  url (0.3.2)
162
162
  webmock (3.0.1)
@@ -177,4 +177,4 @@ DEPENDENCIES
177
177
  webmock (~> 3.0.0, ~> 3.0)
178
178
 
179
179
  BUNDLED WITH
180
- 1.15.3
180
+ 1.16.1
data/bin/hekate CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'hekate'
3
+ require_relative '../lib/hekate'
4
4
  require 'rubygems'
5
5
  require 'commander/import'
6
6
 
@@ -1,7 +1,6 @@
1
- # coding: utf-8
2
1
  # frozen_string_literal: true
3
2
 
4
- lib = File.expand_path("../lib", __FILE__)
3
+ lib = File.expand_path("lib", __dir__)
5
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
6
5
  require "hekate/version"
7
6
 
@@ -26,10 +25,10 @@ Gem::Specification.new do |spec|
26
25
  spec.add_runtime_dependency "aws-sdk-kms", "~>1.2.0", ">= 1.2.0"
27
26
  spec.add_runtime_dependency "aws-sdk-ssm", "~>1.3.0", ">= 1.3.0"
28
27
  spec.add_runtime_dependency "commander", "~> 4.4", ">= 4.4.0"
28
+ spec.add_runtime_dependency "dotenv", "~> 2.2", ">= 2.2.1"
29
29
  spec.add_runtime_dependency "ec2-metadata", "~> 0.2", ">= 0.2.0"
30
- spec.add_runtime_dependency "railties", "~> 4.2", ">= 4.2.0"
31
30
  spec.add_runtime_dependency "rails", "~> 4"
32
- spec.add_runtime_dependency "dotenv", "~> 2.2", ">= 2.2.1"
31
+ spec.add_runtime_dependency "railties", "~> 4.2", ">= 4.2.0"
33
32
 
34
33
  spec.add_development_dependency "bundler", "~> 1.15"
35
34
  spec.add_development_dependency "codecov", "~> 0.1", "~> 0.1.0"
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "rails"
4
- require "hekate/aws"
5
- require "hekate/version"
6
- require "hekate/railtie"
7
- require "hekate/engine"
4
+ require_relative "hekate/aws"
5
+ require_relative "hekate/version"
6
+ require_relative "hekate/railtie"
7
+ require_relative "hekate/engine"
@@ -23,19 +23,12 @@ module Hekate
23
23
  end
24
24
  end
25
25
 
26
- def list_parameters(environments = [])
27
- get_app_env_parameters(environments)
28
- end
29
-
30
- def get_parameters(names)
31
- result = []
32
- names.each_slice(10) do |slice|
33
- result.concat(ssm.get_parameters(
34
- names: slice,
35
- with_decryption: true
36
- ).parameters)
26
+ def get_parameters(environments = [])
27
+ parameters = []
28
+ environments.each do |environment|
29
+ parameters += get_env_parameters(environment)
37
30
  end
38
- result.flatten
31
+ parameters
39
32
  end
40
33
 
41
34
  def put_parameter(name, value, environment)
@@ -53,11 +46,17 @@ module Hekate
53
46
  private
54
47
 
55
48
  def kms
56
- @kms ||= ::Aws::KMS::Client.new(region: @region)
49
+ @kms ||= ::Aws::KMS::Client.new(
50
+ region: @region,
51
+ retry_limit: 5,
52
+ retry_backoff: proc { |attempts| sleep(2**attempts) }
53
+ )
57
54
  end
58
55
 
59
56
  def ssm
60
- @ssm ||= ::Aws::SSM::Client.new(region: @region)
57
+ @ssm ||= ::Aws::SSM::Client.new(region: @region,
58
+ retry_limit: 5,
59
+ retry_backoff: proc { |attempts| sleep(2**attempts) })
61
60
  end
62
61
 
63
62
  def kms_key(environment)
@@ -87,22 +86,19 @@ module Hekate
87
86
  aliases.include? kms_alias
88
87
  end
89
88
 
90
- def get_app_env_parameters(environments = [], parameters = [], next_token = nil)
89
+ def get_env_parameters(environment, parameters = [], next_token = nil)
91
90
  query = {
92
- filters: [
93
- {
94
- key: "Name",
95
- values: environments.map { |e| "#{Hekate::Engine.application}.#{e}" }
96
- }
97
- ],
98
- max_results: 50
91
+ path: "/#{Hekate::Engine.application}/#{environment}",
92
+ recursive: false,
93
+ with_decryption: true,
94
+ max_results: 10
99
95
  }
100
96
  query[:next_token] = next_token if next_token
101
- response = ssm.describe_parameters(query)
97
+ response = ssm.get_parameters_by_path(query)
102
98
 
103
99
  parameters += response.parameters
104
100
 
105
- parameters = get_app_env_parameters(environments, parameters, response.next_token) if response.next_token
101
+ parameters = get_env_parameters(environment, parameters, response.next_token) if response.next_token
106
102
 
107
103
  parameters
108
104
  end
@@ -11,7 +11,7 @@ module Hekate
11
11
  attr_accessor :application
12
12
 
13
13
  def get_region
14
- if ec2?
14
+ if !%w[development test].include?(Rails.env.to_s) && ec2?
15
15
  Ec2Metadata[:placement]["availability-zone"][0...-1]
16
16
  else
17
17
  ENV["AWS_REGION"] || "us-east-1"
@@ -21,7 +21,7 @@ module Hekate
21
21
  def ec2?
22
22
  Ec2Metadata[:instance_id]
23
23
  true
24
- rescue
24
+ rescue StandardError
25
25
  false
26
26
  end
27
27
 
@@ -81,7 +81,7 @@ module Hekate
81
81
  rescue Errno::EISCONN
82
82
  # Good news everybody, the socket is connected!
83
83
  result = true
84
- rescue
84
+ rescue StandardError
85
85
  # An unexpected exception was raised - the connection is no good.
86
86
  socket.close
87
87
  result = false
@@ -93,7 +93,7 @@ module Hekate
93
93
  socket.close
94
94
  result = false
95
95
  end
96
- rescue
96
+ rescue StandardError
97
97
  result = false
98
98
  end
99
99
  end
@@ -114,17 +114,14 @@ module Hekate
114
114
 
115
115
  def load_environment
116
116
  if Hekate::Engine.online?
117
- application = "#{Hekate::Engine.application}."
117
+ application = Hekate::Engine.application
118
118
  environments = ["root", @environment].compact
119
119
 
120
- parameters = awsclient.list_parameters(environments)
121
- parameters = parameters.map(&:name)
122
-
123
- result = awsclient.get_parameters(parameters)
120
+ parameters = awsclient.get_parameters(environments)
124
121
 
125
122
  environments.each do |env|
126
- result.select { |r| r.name[/#{Hekate::Engine.application}\.#{env}\./] }.each do |parameter|
127
- parameter_name = parameter.name.gsub(application, "").gsub("#{env}.", "")
123
+ parameters.select { |r| r.name.start_with?("/#{application}/#{env}/") }.each do |parameter|
124
+ parameter_name = parameter.name.gsub("/#{application}/#{env}/", "")
128
125
  ENV[parameter_name] = parameter.value
129
126
  end
130
127
  end
@@ -146,8 +143,8 @@ module Hekate
146
143
  next if line.start_with? "#"
147
144
 
148
145
  key, value = line.split("=")
149
-
150
146
  next if value.nil?
147
+
151
148
  value = value.delete('"').delete("'").delete("\n")
152
149
  next if value.empty?
153
150
 
@@ -156,17 +153,17 @@ module Hekate
156
153
  end
157
154
 
158
155
  def put(key, value)
159
- parameter_key = "#{Hekate::Engine.application}.#{@environment}.#{key}"
156
+ parameter_key = "/#{Hekate::Engine.application}/#{@environment}/#{key}"
160
157
  awsclient.put_parameter(parameter_key, value, @environment)
161
158
  end
162
159
 
163
160
  def get(key)
164
- parameter_key = "#{Hekate::Engine.application}.#{@environment}.#{key}"
161
+ parameter_key = "/#{Hekate::Engine.application}/#{@environment}/#{key}"
165
162
  awsclient.get_parameter(parameter_key)
166
163
  end
167
164
 
168
165
  def delete_all
169
- parameters = awsclient.list_parameters([@environment]).map(&:name)
166
+ parameters = awsclient.get_parameters([@environment]).map(&:name)
170
167
  progress = Commander::UI::ProgressBar.new(parameters.length)
171
168
  parameters.each do |parameter|
172
169
  progress.increment
@@ -175,25 +172,19 @@ module Hekate
175
172
  end
176
173
 
177
174
  def delete(key)
178
- parameter_key = "#{Hekate::Engine.application}.#{@environment}.#{key}"
175
+ parameter_key = "/#{Hekate::Engine.application}/#{@environment}/#{key}"
179
176
  awsclient.delete_parameter(parameter_key)
180
177
  end
181
178
 
182
179
  def export(env_file)
183
- parameter_key = "#{Hekate::Engine.application}.#{@environment}."
184
-
185
- parameters = awsclient.list_parameters([@environment]).map(&:name)
180
+ parameters = awsclient.get_parameters([@environment])
186
181
 
187
182
  progress = Commander::UI::ProgressBar.new(parameters.length)
188
183
  open(env_file, "w") do |file|
189
- parameters.each_slice(10) do |slice|
190
- result = awsclient.get_parameters(slice)
191
-
192
- result.each do |parameter|
193
- progress.increment
194
- parameter_name = parameter.name.gsub(parameter_key, "")
195
- file.puts "#{parameter_name}=#{parameter.value}"
196
- end
184
+ parameters.each do |parameter|
185
+ progress.increment
186
+ parameter_name = parameter.name.gsub("/#{Hekate::Engine.application}/#{@environment}/", "")
187
+ file.puts "#{parameter_name}=#{parameter.value}"
197
188
  end
198
189
  end
199
190
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Hekate
4
- VERSION = "0.1.0.pre22"
4
+ VERSION = "0.2.0.pre1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hekate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre22
4
+ version: 0.2.0.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - jasonrisch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-29 00:00:00.000000000 Z
11
+ date: 2018-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -91,45 +91,45 @@ dependencies:
91
91
  - !ruby/object:Gem::Version
92
92
  version: 4.4.0
93
93
  - !ruby/object:Gem::Dependency
94
- name: ec2-metadata
94
+ name: dotenv
95
95
  requirement: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - "~>"
98
98
  - !ruby/object:Gem::Version
99
- version: '0.2'
99
+ version: '2.2'
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
- version: 0.2.0
102
+ version: 2.2.1
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '0.2'
109
+ version: '2.2'
110
110
  - - ">="
111
111
  - !ruby/object:Gem::Version
112
- version: 0.2.0
112
+ version: 2.2.1
113
113
  - !ruby/object:Gem::Dependency
114
- name: railties
114
+ name: ec2-metadata
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
117
  - - "~>"
118
118
  - !ruby/object:Gem::Version
119
- version: '4.2'
119
+ version: '0.2'
120
120
  - - ">="
121
121
  - !ruby/object:Gem::Version
122
- version: 4.2.0
122
+ version: 0.2.0
123
123
  type: :runtime
124
124
  prerelease: false
125
125
  version_requirements: !ruby/object:Gem::Requirement
126
126
  requirements:
127
127
  - - "~>"
128
128
  - !ruby/object:Gem::Version
129
- version: '4.2'
129
+ version: '0.2'
130
130
  - - ">="
131
131
  - !ruby/object:Gem::Version
132
- version: 4.2.0
132
+ version: 0.2.0
133
133
  - !ruby/object:Gem::Dependency
134
134
  name: rails
135
135
  requirement: !ruby/object:Gem::Requirement
@@ -145,25 +145,25 @@ dependencies:
145
145
  - !ruby/object:Gem::Version
146
146
  version: '4'
147
147
  - !ruby/object:Gem::Dependency
148
- name: dotenv
148
+ name: railties
149
149
  requirement: !ruby/object:Gem::Requirement
150
150
  requirements:
151
151
  - - "~>"
152
152
  - !ruby/object:Gem::Version
153
- version: '2.2'
153
+ version: '4.2'
154
154
  - - ">="
155
155
  - !ruby/object:Gem::Version
156
- version: 2.2.1
156
+ version: 4.2.0
157
157
  type: :runtime
158
158
  prerelease: false
159
159
  version_requirements: !ruby/object:Gem::Requirement
160
160
  requirements:
161
161
  - - "~>"
162
162
  - !ruby/object:Gem::Version
163
- version: '2.2'
163
+ version: '4.2'
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
- version: 2.2.1
166
+ version: 4.2.0
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: bundler
169
169
  requirement: !ruby/object:Gem::Requirement