ey-core 3.1.9 → 3.1.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0a2ccdb43d93c2b71693f033656d4a22d2d27c0e
4
+ data.tar.gz: 1ba3ed1d50111cdc4479e0b98fe96d26c4b94924
5
+ SHA512:
6
+ metadata.gz: 0cd9461689b956a7482504159fbeeb4a1b5ecaf52a28828f9eb88e3eb8596be9308e1fb9f179a3b434a4a0fd06bdb9719b97895bc4ff224335bba52a264cf708
7
+ data.tar.gz: b2e59843b4c0420eec5f4a071504b9de63d2dd1f090f192471b113a5a9fc6c7cecb4729c305444b6ff76cc63da399c98db29e7e6d113a4f26d32d97431f6b5b0
data/.travis.yml CHANGED
@@ -14,6 +14,10 @@ cache: bundler
14
14
 
15
15
  rvm:
16
16
  - 1.9.3
17
+ - 2.0.0
18
+ - 2.1.0
19
+ - 2.2.0
20
+ - 2.2.2
17
21
  - 2.3.1
18
22
 
19
23
  env:
data/ey-core.gemspec CHANGED
@@ -27,6 +27,7 @@ Gem::Specification.new do |gem|
27
27
  gem.add_dependency "escape"
28
28
  gem.add_dependency "faraday", "~> 0.9"
29
29
  gem.add_dependency "faraday_middleware", "~> 0.9"
30
+ gem.add_dependency "rack", "= 1.6.4" #maintain ruby 1.9 - 2.2.(0|1) compatibility
30
31
  gem.add_dependency "faye"
31
32
  gem.add_dependency "highline"
32
33
  gem.add_dependency "json", "< 2.0"
@@ -5,10 +5,23 @@ module Ey
5
5
  module Cli
6
6
  module Helpers
7
7
  module Chef
8
- def run_chef(type, environment)
9
- request = environment.apply(type)
8
+ def run_chef(type, environment, options = {})
9
+ no_wait = options.delete(:no_wait)
10
+ options[:streaming] = true unless no_wait
11
+ request = environment.apply(type, options)
10
12
  puts "Started #{type} chef run".green
11
- request.wait_for { |r| r.ready? }
13
+ if no_wait
14
+ return
15
+ end
16
+ streamable_instance_update = nil
17
+ if request.read_channel
18
+ request.subscribe do |m|
19
+ print m["message"] if m.is_a?(Hash)
20
+ end
21
+ puts "" # fix console output from stream
22
+ else
23
+ request.wait_for { |r| r.ready? }
24
+ end
12
25
  if request.successful
13
26
  puts "#{type.capitalize} chef run completed".green
14
27
  else
@@ -28,7 +41,7 @@ module Ey
28
41
  elsif recipes_path.exist?
29
42
  environment.upload_recipes(archive_directory(path))
30
43
  else
31
- raise RecipesNotFound, "Recipes not found, expected to find chef recipes in: #{File.expand_path(recipes_path)}"
44
+ raise RecipesNotFound, "Recipes not found, expected to find chef recipes in: #{File.expand_path(recipes_path)}, use --file to specify a different path"
32
45
  end
33
46
  end
34
47
  end
@@ -28,11 +28,28 @@ module Ey
28
28
  long: "quick",
29
29
  description: "Quick chef run (if not specified, will run main chef run)"
30
30
 
31
+ switch :verbose,
32
+ long: "verbose",
33
+ description: "verbose chef run (include chef setup and stack traces)"
34
+
35
+ switch :no_wait,
36
+ long: "no-wait",
37
+ description: "Don't wait for apply to finish, exit after started"
38
+
39
+ option :watch,
40
+ long: "watch",
41
+ description: "Specify an instance amazon_id or server role to watch chef logs (defaults to app_master)",
42
+ argument: "instance"
43
+
31
44
  def handle
32
45
  operator, environment = core_operator_and_environment_for(options)
33
46
  raise "Unable to find matching environment" unless environment
34
47
 
35
- run_chef(run_type, environment)
48
+ opts = {}
49
+ opts[:no_wait] = switch_active?(:no_wait)
50
+ opts[:verbose] = switch_active?(:verbose)
51
+ opts[:watch] = option(:watch)
52
+ run_chef(run_type, environment, opts)
36
53
  end
37
54
 
38
55
  private
@@ -36,6 +36,19 @@ module Ey
36
36
  long: "apply",
37
37
  description: "Apply the recipes immediately after they are uploaded"
38
38
 
39
+ switch :verbose,
40
+ long: "verbose",
41
+ description: "(used in conjunction with --apply) verbose chef run (include chef setup and stack traces)"
42
+
43
+ switch :no_wait,
44
+ long: "no-wait",
45
+ description: "(used in conjunction with --apply) Don't wait for apply to finish, exit after started"
46
+
47
+ option :watch,
48
+ long: "watch",
49
+ description: "Specify an instance amazon_id or server role to watch chef logs (defaults to app_master)",
50
+ argument: "instance"
51
+
39
52
  def handle
40
53
  operator, environment = core_operator_and_environment_for(options)
41
54
  path = option(:file) || "cookbooks/"
@@ -51,7 +64,11 @@ module Ey
51
64
  end
52
65
 
53
66
  if switch_active?(:apply)
54
- run_chef("main", environment)
67
+ opts = {}
68
+ opts[:no_wait] = switch_active?(:no_wait)
69
+ opts[:verbose] = switch_active?(:verbose)
70
+ opts[:watch] = option(:watch)
71
+ run_chef("main", environment, opts)
55
72
  end
56
73
  end
57
74
  end
@@ -1,4 +1,5 @@
1
1
  class Ey::Core::Client::Request < Ey::Core::Model
2
+ extend Ey::Core::Associations
2
3
  include Ey::Core::Subscribable
3
4
 
4
5
  identity :id
@@ -15,6 +16,8 @@ class Ey::Core::Client::Request < Ey::Core::Model
15
16
  attribute :type
16
17
  attribute :updated_at, type: :time
17
18
 
19
+ has_many :dependencies, model: :requests
20
+
18
21
  def callback
19
22
  requires :callback_url
20
23
 
@@ -24,24 +24,32 @@ module Ey::Core::Subscribable
24
24
  EM.run do
25
25
  client = Faye::Client.new(url)
26
26
  client.set_header("Authorization", "Token #{token}")
27
+ next_ready_check = Time.now + 5
28
+ handle_output = Proc.new do |m|
29
+ next_ready_check = Time.now + 1
30
+ block.call(m)
31
+ end
27
32
 
28
33
  deferred = client.subscribe(subscription) do |message|
29
- block.call(JSON.load(message))
34
+ handle_output.call(JSON.load(message))
30
35
  end
31
36
 
32
37
  deferred.callback do
33
- block.call({"meta" => true, "created_at" => Time.now,"message" => "successfully connected to log streaming service\n"})
38
+ handle_output.call({"meta" => true, "created_at" => Time.now,"message" => "log output stream connection established, waiting...\n"})
34
39
  end
35
40
 
36
41
  deferred.errback do |error|
37
- block.call({"meta" => true, "created_at" => Time.now, "message" => "failed to stream output: #{error.inspect}\n"})
42
+ handle_output.call({"meta" => true, "created_at" => Time.now, "message" => "failed to stream output: #{error.inspect}\n"})
38
43
  EM.stop_event_loop
39
44
  end
40
45
 
41
- EventMachine::PeriodicTimer.new(5) do
42
- if resource.reload.ready?
43
- block.call({"meta" => true, "created_at" => Time.now, "message" => "#{resource} finished"})
44
- EM.stop_event_loop
46
+ EventMachine::PeriodicTimer.new(1) do
47
+ if Time.now > next_ready_check
48
+ if resource.reload.ready?
49
+ handle_output.call({"meta" => true, "created_at" => Time.now, "message" => "#{resource} finished"})
50
+ EM.stop_event_loop
51
+ end
52
+ next_ready_check = Time.now + 5
45
53
  end
46
54
  end
47
55
  end
@@ -1,5 +1,5 @@
1
1
  module Ey
2
2
  module Core
3
- VERSION = "3.1.9"
3
+ VERSION = "3.1.10"
4
4
  end
5
5
  end
@@ -13,7 +13,7 @@ describe Ey::Core::Cli::Recipes::Apply do
13
13
 
14
14
  context 'ey-core recipes apply' do
15
15
  it 'performs a main chef run' do
16
- expect(cli).to receive(:run_chef).with('main', environment)
16
+ expect(cli).to receive(:run_chef).with('main', environment, {no_wait: nil, verbose: nil, watch: nil})
17
17
 
18
18
  execute
19
19
  expect(kernel.exit_status).to eql(0)
@@ -24,7 +24,7 @@ describe Ey::Core::Cli::Recipes::Apply do
24
24
  arguments '--quick'
25
25
 
26
26
  it 'performs a quick chef run' do
27
- expect(cli).to receive(:run_chef).with('quick', environment)
27
+ expect(cli).to receive(:run_chef).with('quick', environment, {no_wait: nil, verbose: nil, watch: nil})
28
28
 
29
29
  execute
30
30
  expect(kernel.exit_status).to eql(0)
@@ -62,7 +62,7 @@ describe Ey::Core::Cli::Recipes::Upload do
62
62
  arguments '--apply'
63
63
 
64
64
  it 'performs a custom chef run' do
65
- expect(cli).to receive(:run_chef).with('main', environment)
65
+ expect(cli).to receive(:run_chef).with('main', environment, {no_wait: nil, verbose: nil, watch: nil})
66
66
 
67
67
  execute
68
68
  end
metadata CHANGED
@@ -1,366 +1,335 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ey-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.9
5
- prerelease:
4
+ version: 3.1.10
6
5
  platform: ruby
7
6
  authors:
8
7
  - Josh Lane
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2016-07-19 00:00:00.000000000 Z
11
+ date: 2016-08-03 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: addressable
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: '2.2'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: '2.2'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: awesome_print
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: belafonte
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: cistern
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ~>
59
+ - - "~>"
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0.12'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ~>
66
+ - - "~>"
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0.12'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: colorize
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - ">="
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - ">="
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: ey-hmac
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ~>
87
+ - - "~>"
100
88
  - !ruby/object:Gem::Version
101
89
  version: '2.0'
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ~>
94
+ - - "~>"
108
95
  - !ruby/object:Gem::Version
109
96
  version: '2.0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: escape
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - ">="
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - ">="
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: faraday
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
- - - ~>
115
+ - - "~>"
132
116
  - !ruby/object:Gem::Version
133
117
  version: '0.9'
134
118
  type: :runtime
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
- - - ~>
122
+ - - "~>"
140
123
  - !ruby/object:Gem::Version
141
124
  version: '0.9'
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: faraday_middleware
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
- - - ~>
129
+ - - "~>"
148
130
  - !ruby/object:Gem::Version
149
131
  version: '0.9'
150
132
  type: :runtime
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
- - - ~>
136
+ - - "~>"
156
137
  - !ruby/object:Gem::Version
157
138
  version: '0.9'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rack
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '='
144
+ - !ruby/object:Gem::Version
145
+ version: 1.6.4
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '='
151
+ - !ruby/object:Gem::Version
152
+ version: 1.6.4
158
153
  - !ruby/object:Gem::Dependency
159
154
  name: faye
160
155
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
156
  requirements:
163
- - - ! '>='
157
+ - - ">="
164
158
  - !ruby/object:Gem::Version
165
159
  version: '0'
166
160
  type: :runtime
167
161
  prerelease: false
168
162
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
163
  requirements:
171
- - - ! '>='
164
+ - - ">="
172
165
  - !ruby/object:Gem::Version
173
166
  version: '0'
174
167
  - !ruby/object:Gem::Dependency
175
168
  name: highline
176
169
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
170
  requirements:
179
- - - ! '>='
171
+ - - ">="
180
172
  - !ruby/object:Gem::Version
181
173
  version: '0'
182
174
  type: :runtime
183
175
  prerelease: false
184
176
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
177
  requirements:
187
- - - ! '>='
178
+ - - ">="
188
179
  - !ruby/object:Gem::Version
189
180
  version: '0'
190
181
  - !ruby/object:Gem::Dependency
191
182
  name: json
192
183
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
184
  requirements:
195
- - - <
185
+ - - "<"
196
186
  - !ruby/object:Gem::Version
197
187
  version: '2.0'
198
188
  type: :runtime
199
189
  prerelease: false
200
190
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
191
  requirements:
203
- - - <
192
+ - - "<"
204
193
  - !ruby/object:Gem::Version
205
194
  version: '2.0'
206
195
  - !ruby/object:Gem::Dependency
207
196
  name: mime-types
208
197
  requirement: !ruby/object:Gem::Requirement
209
- none: false
210
198
  requirements:
211
- - - ~>
199
+ - - "~>"
212
200
  - !ruby/object:Gem::Version
213
201
  version: '2.99'
214
202
  type: :runtime
215
203
  prerelease: false
216
204
  version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
205
  requirements:
219
- - - ~>
206
+ - - "~>"
220
207
  - !ruby/object:Gem::Version
221
208
  version: '2.99'
222
209
  - !ruby/object:Gem::Dependency
223
210
  name: oj
224
211
  requirement: !ruby/object:Gem::Requirement
225
- none: false
226
212
  requirements:
227
- - - ! '>='
213
+ - - ">="
228
214
  - !ruby/object:Gem::Version
229
215
  version: '0'
230
216
  type: :runtime
231
217
  prerelease: false
232
218
  version_requirements: !ruby/object:Gem::Requirement
233
- none: false
234
219
  requirements:
235
- - - ! '>='
220
+ - - ">="
236
221
  - !ruby/object:Gem::Version
237
222
  version: '0'
238
223
  - !ruby/object:Gem::Dependency
239
224
  name: oj_mimic_json
240
225
  requirement: !ruby/object:Gem::Requirement
241
- none: false
242
226
  requirements:
243
- - - ! '>='
227
+ - - ">="
244
228
  - !ruby/object:Gem::Version
245
229
  version: '0'
246
230
  type: :runtime
247
231
  prerelease: false
248
232
  version_requirements: !ruby/object:Gem::Requirement
249
- none: false
250
233
  requirements:
251
- - - ! '>='
234
+ - - ">="
252
235
  - !ruby/object:Gem::Version
253
236
  version: '0'
254
237
  - !ruby/object:Gem::Dependency
255
238
  name: pry
256
239
  requirement: !ruby/object:Gem::Requirement
257
- none: false
258
240
  requirements:
259
- - - ! '>='
241
+ - - ">="
260
242
  - !ruby/object:Gem::Version
261
243
  version: '0'
262
244
  type: :runtime
263
245
  prerelease: false
264
246
  version_requirements: !ruby/object:Gem::Requirement
265
- none: false
266
247
  requirements:
267
- - - ! '>='
248
+ - - ">="
268
249
  - !ruby/object:Gem::Version
269
250
  version: '0'
270
251
  - !ruby/object:Gem::Dependency
271
252
  name: sshkey
272
253
  requirement: !ruby/object:Gem::Requirement
273
- none: false
274
254
  requirements:
275
- - - ~>
255
+ - - "~>"
276
256
  - !ruby/object:Gem::Version
277
257
  version: '1.6'
278
258
  type: :runtime
279
259
  prerelease: false
280
260
  version_requirements: !ruby/object:Gem::Requirement
281
- none: false
282
261
  requirements:
283
- - - ~>
262
+ - - "~>"
284
263
  - !ruby/object:Gem::Version
285
264
  version: '1.6'
286
265
  - !ruby/object:Gem::Dependency
287
266
  name: table_print
288
267
  requirement: !ruby/object:Gem::Requirement
289
- none: false
290
268
  requirements:
291
- - - ! '>='
269
+ - - ">="
292
270
  - !ruby/object:Gem::Version
293
271
  version: '0'
294
272
  type: :runtime
295
273
  prerelease: false
296
274
  version_requirements: !ruby/object:Gem::Requirement
297
- none: false
298
275
  requirements:
299
- - - ! '>='
276
+ - - ">="
300
277
  - !ruby/object:Gem::Version
301
278
  version: '0'
302
279
  - !ruby/object:Gem::Dependency
303
280
  name: pry-nav
304
281
  requirement: !ruby/object:Gem::Requirement
305
- none: false
306
282
  requirements:
307
- - - ! '>='
283
+ - - ">="
308
284
  - !ruby/object:Gem::Version
309
285
  version: '0'
310
286
  type: :development
311
287
  prerelease: false
312
288
  version_requirements: !ruby/object:Gem::Requirement
313
- none: false
314
289
  requirements:
315
- - - ! '>='
290
+ - - ">="
316
291
  - !ruby/object:Gem::Version
317
292
  version: '0'
318
293
  - !ruby/object:Gem::Dependency
319
294
  name: rspec
320
295
  requirement: !ruby/object:Gem::Requirement
321
- none: false
322
296
  requirements:
323
- - - ~>
297
+ - - "~>"
324
298
  - !ruby/object:Gem::Version
325
299
  version: '3.0'
326
300
  type: :development
327
301
  prerelease: false
328
302
  version_requirements: !ruby/object:Gem::Requirement
329
- none: false
330
303
  requirements:
331
- - - ~>
304
+ - - "~>"
332
305
  - !ruby/object:Gem::Version
333
306
  version: '3.0'
334
307
  - !ruby/object:Gem::Dependency
335
308
  name: ffaker
336
309
  requirement: !ruby/object:Gem::Requirement
337
- none: false
338
310
  requirements:
339
- - - ! '>='
311
+ - - ">="
340
312
  - !ruby/object:Gem::Version
341
313
  version: '0'
342
314
  type: :development
343
315
  prerelease: false
344
316
  version_requirements: !ruby/object:Gem::Requirement
345
- none: false
346
317
  requirements:
347
- - - ! '>='
318
+ - - ">="
348
319
  - !ruby/object:Gem::Version
349
320
  version: '0'
350
321
  - !ruby/object:Gem::Dependency
351
322
  name: rake
352
323
  requirement: !ruby/object:Gem::Requirement
353
- none: false
354
324
  requirements:
355
- - - ! '>='
325
+ - - ">="
356
326
  - !ruby/object:Gem::Version
357
327
  version: '0'
358
328
  type: :development
359
329
  prerelease: false
360
330
  version_requirements: !ruby/object:Gem::Requirement
361
- none: false
362
331
  requirements:
363
- - - ! '>='
332
+ - - ">="
364
333
  - !ruby/object:Gem::Version
365
334
  version: '0'
366
335
  description: Engine Yard Core API Ruby Client
@@ -372,10 +341,10 @@ executables:
372
341
  extensions: []
373
342
  extra_rdoc_files: []
374
343
  files:
375
- - .gitignore
376
- - .ruby-gemset
377
- - .ruby-version
378
- - .travis.yml
344
+ - ".gitignore"
345
+ - ".ruby-gemset"
346
+ - ".ruby-version"
347
+ - ".travis.yml"
379
348
  - CHANGELOG.md
380
349
  - Gemfile
381
350
  - Guardfile
@@ -821,27 +790,26 @@ files:
821
790
  homepage: ''
822
791
  licenses:
823
792
  - MIT
793
+ metadata: {}
824
794
  post_install_message:
825
795
  rdoc_options: []
826
796
  require_paths:
827
797
  - lib
828
798
  required_ruby_version: !ruby/object:Gem::Requirement
829
- none: false
830
799
  requirements:
831
- - - ! '>='
800
+ - - ">="
832
801
  - !ruby/object:Gem::Version
833
802
  version: '0'
834
803
  required_rubygems_version: !ruby/object:Gem::Requirement
835
- none: false
836
804
  requirements:
837
- - - ! '>='
805
+ - - ">="
838
806
  - !ruby/object:Gem::Version
839
807
  version: '0'
840
808
  requirements: []
841
809
  rubyforge_project:
842
- rubygems_version: 1.8.23.2
810
+ rubygems_version: 2.4.5
843
811
  signing_key:
844
- specification_version: 3
812
+ specification_version: 4
845
813
  summary: Client library providing real and mock functionality for accessing Engine
846
814
  Yard's Core API
847
815
  test_files: