engineyard-serverside 2.4.1 → 2.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +15 -0
  2. data/lib/engineyard-serverside.rb +1 -0
  3. data/lib/engineyard-serverside/configuration.rb +5 -0
  4. data/lib/engineyard-serverside/deploy.rb +27 -11
  5. data/lib/engineyard-serverside/maintenance.rb +1 -1
  6. data/lib/engineyard-serverside/spawner.rb +7 -2
  7. data/lib/engineyard-serverside/version.rb +1 -1
  8. data/lib/vendor/json_pure/COPYING +57 -0
  9. data/lib/vendor/json_pure/GPL +340 -0
  10. data/lib/vendor/json_pure/README.rdoc +358 -0
  11. data/lib/vendor/json_pure/VERSION +1 -0
  12. data/lib/vendor/json_pure/json_pure.gemspec +40 -0
  13. data/lib/vendor/json_pure/lib/json.rb +62 -0
  14. data/lib/vendor/json_pure/lib/json/add/bigdecimal.rb +28 -0
  15. data/lib/vendor/json_pure/lib/json/add/complex.rb +22 -0
  16. data/lib/vendor/json_pure/lib/json/add/core.rb +11 -0
  17. data/lib/vendor/json_pure/lib/json/add/date.rb +34 -0
  18. data/lib/vendor/json_pure/lib/json/add/date_time.rb +48 -0
  19. data/lib/vendor/json_pure/lib/json/add/exception.rb +31 -0
  20. data/lib/vendor/json_pure/lib/json/add/ostruct.rb +31 -0
  21. data/lib/vendor/json_pure/lib/json/add/range.rb +29 -0
  22. data/lib/vendor/json_pure/lib/json/add/rational.rb +22 -0
  23. data/lib/vendor/json_pure/lib/json/add/regexp.rb +30 -0
  24. data/lib/vendor/json_pure/lib/json/add/struct.rb +30 -0
  25. data/lib/vendor/json_pure/lib/json/add/symbol.rb +25 -0
  26. data/lib/vendor/json_pure/lib/json/add/time.rb +38 -0
  27. data/lib/vendor/json_pure/lib/json/common.rb +484 -0
  28. data/lib/vendor/json_pure/lib/json/ext.rb +21 -0
  29. data/lib/vendor/json_pure/lib/json/generic_object.rb +70 -0
  30. data/lib/vendor/json_pure/lib/json/pure.rb +21 -0
  31. data/lib/vendor/json_pure/lib/json/pure/generator.rb +522 -0
  32. data/lib/vendor/json_pure/lib/json/pure/parser.rb +359 -0
  33. data/lib/vendor/json_pure/lib/json/version.rb +8 -0
  34. data/spec/configuration_spec.rb +2 -0
  35. data/spec/deploy_hook_spec.rb +15 -1
  36. data/spec/fixtures/gitrepo/bar +0 -0
  37. data/spec/fixtures/gitrepo/foo +0 -0
  38. data/spec/fixtures/repos/executable_hooks_not_executable/README +3 -0
  39. data/spec/fixtures/repos/executable_hooks_not_executable/deploy/before_restart +3 -0
  40. data/spec/fixtures/repos/hook_fails/README +1 -1
  41. data/spec/fixtures/repos/hook_fails/deploy/{before_migrate.rb → before_deploy.rb} +0 -0
  42. metadata +41 -30
@@ -0,0 +1,359 @@
1
+ require 'strscan'
2
+
3
+ module JSON
4
+ module Pure
5
+ # This class implements the JSON parser that is used to parse a JSON string
6
+ # into a Ruby data structure.
7
+ class Parser < StringScanner
8
+ STRING = /" ((?:[^\x0-\x1f"\\] |
9
+ # escaped special characters:
10
+ \\["\\\/bfnrt] |
11
+ \\u[0-9a-fA-F]{4} |
12
+ # match all but escaped special characters:
13
+ \\[\x20-\x21\x23-\x2e\x30-\x5b\x5d-\x61\x63-\x65\x67-\x6d\x6f-\x71\x73\x75-\xff])*)
14
+ "/nx
15
+ INTEGER = /(-?0|-?[1-9]\d*)/
16
+ FLOAT = /(-?
17
+ (?:0|[1-9]\d*)
18
+ (?:
19
+ \.\d+(?i:e[+-]?\d+) |
20
+ \.\d+ |
21
+ (?i:e[+-]?\d+)
22
+ )
23
+ )/x
24
+ NAN = /NaN/
25
+ INFINITY = /Infinity/
26
+ MINUS_INFINITY = /-Infinity/
27
+ OBJECT_OPEN = /\{/
28
+ OBJECT_CLOSE = /\}/
29
+ ARRAY_OPEN = /\[/
30
+ ARRAY_CLOSE = /\]/
31
+ PAIR_DELIMITER = /:/
32
+ COLLECTION_DELIMITER = /,/
33
+ TRUE = /true/
34
+ FALSE = /false/
35
+ NULL = /null/
36
+ IGNORE = %r(
37
+ (?:
38
+ //[^\n\r]*[\n\r]| # line comments
39
+ /\* # c-style comments
40
+ (?:
41
+ [^*/]| # normal chars
42
+ /[^*]| # slashes that do not start a nested comment
43
+ \*[^/]| # asterisks that do not end this comment
44
+ /(?=\*/) # single slash before this comment's end
45
+ )*
46
+ \*/ # the End of this comment
47
+ |[ \t\r\n]+ # whitespaces: space, horicontal tab, lf, cr
48
+ )+
49
+ )mx
50
+
51
+ UNPARSED = Object.new
52
+
53
+ # Creates a new JSON::Pure::Parser instance for the string _source_.
54
+ #
55
+ # It will be configured by the _opts_ hash. _opts_ can have the following
56
+ # keys:
57
+ # * *max_nesting*: The maximum depth of nesting allowed in the parsed data
58
+ # structures. Disable depth checking with :max_nesting => false|nil|0,
59
+ # it defaults to 100.
60
+ # * *allow_nan*: If set to true, allow NaN, Infinity and -Infinity in
61
+ # defiance of RFC 4627 to be parsed by the Parser. This option defaults
62
+ # to false.
63
+ # * *symbolize_names*: If set to true, returns symbols for the names
64
+ # (keys) in a JSON object. Otherwise strings are returned, which is also
65
+ # the default.
66
+ # * *create_additions*: If set to true, the Parser creates
67
+ # additions when if a matching class and create_id was found. This
68
+ # option defaults to false.
69
+ # * *object_class*: Defaults to Hash
70
+ # * *array_class*: Defaults to Array
71
+ # * *quirks_mode*: Enables quirks_mode for parser, that is for example
72
+ # parsing single JSON values instead of documents is possible.
73
+ def initialize(source, opts = {})
74
+ opts ||= {}
75
+ unless @quirks_mode = opts[:quirks_mode]
76
+ source = convert_encoding source
77
+ end
78
+ super source
79
+ if !opts.key?(:max_nesting) # defaults to 100
80
+ @max_nesting = 100
81
+ elsif opts[:max_nesting]
82
+ @max_nesting = opts[:max_nesting]
83
+ else
84
+ @max_nesting = 0
85
+ end
86
+ @allow_nan = !!opts[:allow_nan]
87
+ @symbolize_names = !!opts[:symbolize_names]
88
+ if opts.key?(:create_additions)
89
+ @create_additions = !!opts[:create_additions]
90
+ else
91
+ @create_additions = false
92
+ end
93
+ @create_id = @create_additions ? JSON.create_id : nil
94
+ @object_class = opts[:object_class] || Hash
95
+ @array_class = opts[:array_class] || Array
96
+ @match_string = opts[:match_string]
97
+ end
98
+
99
+ alias source string
100
+
101
+ def quirks_mode?
102
+ !!@quirks_mode
103
+ end
104
+
105
+ def reset
106
+ super
107
+ @current_nesting = 0
108
+ end
109
+
110
+ # Parses the current JSON string _source_ and returns the complete data
111
+ # structure as a result.
112
+ def parse
113
+ reset
114
+ obj = nil
115
+ if @quirks_mode
116
+ while !eos? && skip(IGNORE)
117
+ end
118
+ if eos?
119
+ raise ParserError, "source did not contain any JSON!"
120
+ else
121
+ obj = parse_value
122
+ obj == UNPARSED and raise ParserError, "source did not contain any JSON!"
123
+ end
124
+ else
125
+ until eos?
126
+ case
127
+ when scan(OBJECT_OPEN)
128
+ obj and raise ParserError, "source '#{peek(20)}' not in JSON!"
129
+ @current_nesting = 1
130
+ obj = parse_object
131
+ when scan(ARRAY_OPEN)
132
+ obj and raise ParserError, "source '#{peek(20)}' not in JSON!"
133
+ @current_nesting = 1
134
+ obj = parse_array
135
+ when skip(IGNORE)
136
+ ;
137
+ else
138
+ raise ParserError, "source '#{peek(20)}' not in JSON!"
139
+ end
140
+ end
141
+ obj or raise ParserError, "source did not contain any JSON!"
142
+ end
143
+ obj
144
+ end
145
+
146
+ private
147
+
148
+ def convert_encoding(source)
149
+ if source.respond_to?(:to_str)
150
+ source = source.to_str
151
+ else
152
+ raise TypeError, "#{source.inspect} is not like a string"
153
+ end
154
+ if defined?(::Encoding)
155
+ if source.encoding == ::Encoding::ASCII_8BIT
156
+ b = source[0, 4].bytes.to_a
157
+ source =
158
+ case
159
+ when b.size >= 4 && b[0] == 0 && b[1] == 0 && b[2] == 0
160
+ source.dup.force_encoding(::Encoding::UTF_32BE).encode!(::Encoding::UTF_8)
161
+ when b.size >= 4 && b[0] == 0 && b[2] == 0
162
+ source.dup.force_encoding(::Encoding::UTF_16BE).encode!(::Encoding::UTF_8)
163
+ when b.size >= 4 && b[1] == 0 && b[2] == 0 && b[3] == 0
164
+ source.dup.force_encoding(::Encoding::UTF_32LE).encode!(::Encoding::UTF_8)
165
+ when b.size >= 4 && b[1] == 0 && b[3] == 0
166
+ source.dup.force_encoding(::Encoding::UTF_16LE).encode!(::Encoding::UTF_8)
167
+ else
168
+ source.dup
169
+ end
170
+ else
171
+ source = source.encode(::Encoding::UTF_8)
172
+ end
173
+ source.force_encoding(::Encoding::ASCII_8BIT)
174
+ else
175
+ b = source
176
+ source =
177
+ case
178
+ when b.size >= 4 && b[0] == 0 && b[1] == 0 && b[2] == 0
179
+ JSON.iconv('utf-8', 'utf-32be', b)
180
+ when b.size >= 4 && b[0] == 0 && b[2] == 0
181
+ JSON.iconv('utf-8', 'utf-16be', b)
182
+ when b.size >= 4 && b[1] == 0 && b[2] == 0 && b[3] == 0
183
+ JSON.iconv('utf-8', 'utf-32le', b)
184
+ when b.size >= 4 && b[1] == 0 && b[3] == 0
185
+ JSON.iconv('utf-8', 'utf-16le', b)
186
+ else
187
+ b
188
+ end
189
+ end
190
+ source
191
+ end
192
+
193
+ # Unescape characters in strings.
194
+ UNESCAPE_MAP = Hash.new { |h, k| h[k] = k.chr }
195
+ UNESCAPE_MAP.update({
196
+ ?" => '"',
197
+ ?\\ => '\\',
198
+ ?/ => '/',
199
+ ?b => "\b",
200
+ ?f => "\f",
201
+ ?n => "\n",
202
+ ?r => "\r",
203
+ ?t => "\t",
204
+ ?u => nil,
205
+ })
206
+
207
+ EMPTY_8BIT_STRING = ''
208
+ if ::String.method_defined?(:encode)
209
+ EMPTY_8BIT_STRING.force_encoding Encoding::ASCII_8BIT
210
+ end
211
+
212
+ def parse_string
213
+ if scan(STRING)
214
+ return '' if self[1].empty?
215
+ string = self[1].gsub(%r((?:\\[\\bfnrt"/]|(?:\\u(?:[A-Fa-f\d]{4}))+|\\[\x20-\xff]))n) do |c|
216
+ if u = UNESCAPE_MAP[$&[1]]
217
+ u
218
+ else # \uXXXX
219
+ bytes = EMPTY_8BIT_STRING.dup
220
+ i = 0
221
+ while c[6 * i] == ?\\ && c[6 * i + 1] == ?u
222
+ bytes << c[6 * i + 2, 2].to_i(16) << c[6 * i + 4, 2].to_i(16)
223
+ i += 1
224
+ end
225
+ JSON.iconv('utf-8', 'utf-16be', bytes)
226
+ end
227
+ end
228
+ if string.respond_to?(:force_encoding)
229
+ string.force_encoding(::Encoding::UTF_8)
230
+ end
231
+ if @create_additions and @match_string
232
+ for (regexp, klass) in @match_string
233
+ klass.json_creatable? or next
234
+ string =~ regexp and return klass.json_create(string)
235
+ end
236
+ end
237
+ string
238
+ else
239
+ UNPARSED
240
+ end
241
+ rescue => e
242
+ raise ParserError, "Caught #{e.class} at '#{peek(20)}': #{e}"
243
+ end
244
+
245
+ def parse_value
246
+ case
247
+ when scan(FLOAT)
248
+ Float(self[1])
249
+ when scan(INTEGER)
250
+ Integer(self[1])
251
+ when scan(TRUE)
252
+ true
253
+ when scan(FALSE)
254
+ false
255
+ when scan(NULL)
256
+ nil
257
+ when (string = parse_string) != UNPARSED
258
+ string
259
+ when scan(ARRAY_OPEN)
260
+ @current_nesting += 1
261
+ ary = parse_array
262
+ @current_nesting -= 1
263
+ ary
264
+ when scan(OBJECT_OPEN)
265
+ @current_nesting += 1
266
+ obj = parse_object
267
+ @current_nesting -= 1
268
+ obj
269
+ when @allow_nan && scan(NAN)
270
+ NaN
271
+ when @allow_nan && scan(INFINITY)
272
+ Infinity
273
+ when @allow_nan && scan(MINUS_INFINITY)
274
+ MinusInfinity
275
+ else
276
+ UNPARSED
277
+ end
278
+ end
279
+
280
+ def parse_array
281
+ raise NestingError, "nesting of #@current_nesting is too deep" if
282
+ @max_nesting.nonzero? && @current_nesting > @max_nesting
283
+ result = @array_class.new
284
+ delim = false
285
+ until eos?
286
+ case
287
+ when (value = parse_value) != UNPARSED
288
+ delim = false
289
+ result << value
290
+ skip(IGNORE)
291
+ if scan(COLLECTION_DELIMITER)
292
+ delim = true
293
+ elsif match?(ARRAY_CLOSE)
294
+ ;
295
+ else
296
+ raise ParserError, "expected ',' or ']' in array at '#{peek(20)}'!"
297
+ end
298
+ when scan(ARRAY_CLOSE)
299
+ if delim
300
+ raise ParserError, "expected next element in array at '#{peek(20)}'!"
301
+ end
302
+ break
303
+ when skip(IGNORE)
304
+ ;
305
+ else
306
+ raise ParserError, "unexpected token in array at '#{peek(20)}'!"
307
+ end
308
+ end
309
+ result
310
+ end
311
+
312
+ def parse_object
313
+ raise NestingError, "nesting of #@current_nesting is too deep" if
314
+ @max_nesting.nonzero? && @current_nesting > @max_nesting
315
+ result = @object_class.new
316
+ delim = false
317
+ until eos?
318
+ case
319
+ when (string = parse_string) != UNPARSED
320
+ skip(IGNORE)
321
+ unless scan(PAIR_DELIMITER)
322
+ raise ParserError, "expected ':' in object at '#{peek(20)}'!"
323
+ end
324
+ skip(IGNORE)
325
+ unless (value = parse_value).equal? UNPARSED
326
+ result[@symbolize_names ? string.to_sym : string] = value
327
+ delim = false
328
+ skip(IGNORE)
329
+ if scan(COLLECTION_DELIMITER)
330
+ delim = true
331
+ elsif match?(OBJECT_CLOSE)
332
+ ;
333
+ else
334
+ raise ParserError, "expected ',' or '}' in object at '#{peek(20)}'!"
335
+ end
336
+ else
337
+ raise ParserError, "expected value in object at '#{peek(20)}'!"
338
+ end
339
+ when scan(OBJECT_CLOSE)
340
+ if delim
341
+ raise ParserError, "expected next name, value pair in object at '#{peek(20)}'!"
342
+ end
343
+ if @create_additions and klassname = result[@create_id]
344
+ klass = JSON.deep_const_get klassname
345
+ break unless klass and klass.json_creatable?
346
+ result = klass.json_create(result)
347
+ end
348
+ break
349
+ when skip(IGNORE)
350
+ ;
351
+ else
352
+ raise ParserError, "unexpected token in object at '#{peek(20)}'!"
353
+ end
354
+ end
355
+ result
356
+ end
357
+ end
358
+ end
359
+ end
@@ -0,0 +1,8 @@
1
+ module JSON
2
+ # JSON version
3
+ VERSION = '1.8.1'
4
+ VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:
5
+ VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
+ VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
7
+ VERSION_BUILD = VERSION_ARRAY[2] # :nodoc:
8
+ end
@@ -34,6 +34,8 @@ describe EY::Serverside::Deploy::Configuration do
34
34
  expect(@config.extra_bundle_install_options).to eq(%w[--without test development])
35
35
  expect(@config.deployed_by).to eq("Automation (User name not available)")
36
36
  expect(@config.input_ref).to eq(@config.branch)
37
+ expect(@config.keep_releases).to eq(3)
38
+ expect(@config.keep_failed_releases).to eq(3)
37
39
  end
38
40
 
39
41
  it "raises when required options are not given" do
@@ -32,7 +32,7 @@ describe "deploy hooks" do
32
32
 
33
33
  it "prints the failure to the log even when non-verbose" do
34
34
  out = read_output
35
- expect(out).to match(%r|FATAL: Exception raised in deploy hook .*/before_migrate.rb.|)
35
+ expect(out).to match(%r|FATAL: Exception raised in deploy hook .*/before_deploy.rb.|)
36
36
  expect(out).to match(%r|RuntimeError:.*Hook failing in \(eval\)|)
37
37
  expect(out).to match(%r|Please fix this error before retrying.|)
38
38
  end
@@ -53,6 +53,20 @@ describe "deploy hooks" do
53
53
  end
54
54
  end
55
55
 
56
+ context "with a non-executable, but correctly named deploy hook" do
57
+ before(:all) do
58
+ deploy_test_application('executable_hooks_not_executable')
59
+ end
60
+
61
+ it 'does not run the hook' do
62
+ deploy_dir.join('current', 'before_restart.ran').should_not exist
63
+ end
64
+
65
+ it 'outputs a message about the hook not being executable' do
66
+ expect(read_output).to match(%r|Skipping.*deploy hook.*not executable|)
67
+ end
68
+ end
69
+
56
70
  context "deploy hook API" do
57
71
 
58
72
  def deploy_hook(options={})
File without changes
File without changes
@@ -0,0 +1,3 @@
1
+ Use an executable file for a hook, not a ruby one that uses the hook API.
2
+
3
+ Except that the file is not actually executable, so it should not be run.
@@ -0,0 +1,3 @@
1
+ #!/bin/sh
2
+
3
+ touch 'before_restart.ran'
@@ -1 +1 @@
1
- In this app the before migrate hook raises.
1
+ In this app the before hook raises.
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: engineyard-serverside
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.1
5
- prerelease:
4
+ version: 2.4.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - EY Cloud Team
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-06-26 00:00:00.000000000 Z
11
+ date: 2014-07-30 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
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
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
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
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rdoc
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ! '>='
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :development
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
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: timecop
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - '='
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :development
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
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: simplecov
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ! '>='
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :development
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
@@ -94,7 +83,6 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: engineyard-cloud-client
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ~>
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :development
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
@@ -110,7 +97,6 @@ dependencies:
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: engineyard-serverside-adapter
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
101
  - - ~>
116
102
  - !ruby/object:Gem::Version
@@ -118,7 +104,6 @@ dependencies:
118
104
  type: :development
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
@@ -126,7 +111,6 @@ dependencies:
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: sqlite3
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
115
  - - ! '>='
132
116
  - !ruby/object:Gem::Version
@@ -134,7 +118,6 @@ dependencies:
134
118
  type: :development
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
@@ -142,7 +125,6 @@ dependencies:
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: mime-types
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
129
  - - ~>
148
130
  - !ruby/object:Gem::Version
@@ -150,7 +132,6 @@ dependencies:
150
132
  type: :development
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
@@ -198,6 +179,32 @@ files:
198
179
  - lib/vendor/escape/doc_include/template/qualitysmith.rb
199
180
  - lib/vendor/escape/lib/escape.rb
200
181
  - lib/vendor/escape/Readme
182
+ - lib/vendor/json_pure/COPYING
183
+ - lib/vendor/json_pure/GPL
184
+ - lib/vendor/json_pure/json_pure.gemspec
185
+ - lib/vendor/json_pure/lib/json/add/bigdecimal.rb
186
+ - lib/vendor/json_pure/lib/json/add/complex.rb
187
+ - lib/vendor/json_pure/lib/json/add/core.rb
188
+ - lib/vendor/json_pure/lib/json/add/date.rb
189
+ - lib/vendor/json_pure/lib/json/add/date_time.rb
190
+ - lib/vendor/json_pure/lib/json/add/exception.rb
191
+ - lib/vendor/json_pure/lib/json/add/ostruct.rb
192
+ - lib/vendor/json_pure/lib/json/add/range.rb
193
+ - lib/vendor/json_pure/lib/json/add/rational.rb
194
+ - lib/vendor/json_pure/lib/json/add/regexp.rb
195
+ - lib/vendor/json_pure/lib/json/add/struct.rb
196
+ - lib/vendor/json_pure/lib/json/add/symbol.rb
197
+ - lib/vendor/json_pure/lib/json/add/time.rb
198
+ - lib/vendor/json_pure/lib/json/common.rb
199
+ - lib/vendor/json_pure/lib/json/ext.rb
200
+ - lib/vendor/json_pure/lib/json/generic_object.rb
201
+ - lib/vendor/json_pure/lib/json/pure/generator.rb
202
+ - lib/vendor/json_pure/lib/json/pure/parser.rb
203
+ - lib/vendor/json_pure/lib/json/pure.rb
204
+ - lib/vendor/json_pure/lib/json/version.rb
205
+ - lib/vendor/json_pure/lib/json.rb
206
+ - lib/vendor/json_pure/README.rdoc
207
+ - lib/vendor/json_pure/VERSION
201
208
  - lib/vendor/multi_json/CHANGELOG.md
202
209
  - lib/vendor/multi_json/CONTRIBUTING.md
203
210
  - lib/vendor/multi_json/Gemfile
@@ -264,6 +271,8 @@ files:
264
271
  - spec/deploy_hook_spec.rb
265
272
  - spec/deprecation_spec.rb
266
273
  - spec/ey_yml_customized_deploy_spec.rb
274
+ - spec/fixtures/gitrepo/bar
275
+ - spec/fixtures/gitrepo/foo
267
276
  - spec/fixtures/gitrepo.tar.gz
268
277
  - spec/fixtures/invalid_hook.rb
269
278
  - spec/fixtures/lockfiles/0.9-no-bundler
@@ -350,6 +359,8 @@ files:
350
359
  - spec/fixtures/repos/default/README
351
360
  - spec/fixtures/repos/executable_hooks/deploy/before_restart
352
361
  - spec/fixtures/repos/executable_hooks/README
362
+ - spec/fixtures/repos/executable_hooks_not_executable/deploy/before_restart
363
+ - spec/fixtures/repos/executable_hooks_not_executable/README
353
364
  - spec/fixtures/repos/ey_yml/config/ey.yml
354
365
  - spec/fixtures/repos/ey_yml/deploy/before_migrate.rb
355
366
  - spec/fixtures/repos/ey_yml/Gemfile
@@ -360,7 +371,7 @@ files:
360
371
  - spec/fixtures/repos/ey_yml_alt/Gemfile
361
372
  - spec/fixtures/repos/ey_yml_alt/Gemfile.lock
362
373
  - spec/fixtures/repos/ey_yml_alt/README
363
- - spec/fixtures/repos/hook_fails/deploy/before_migrate.rb
374
+ - spec/fixtures/repos/hook_fails/deploy/before_deploy.rb
364
375
  - spec/fixtures/repos/hook_fails/README
365
376
  - spec/fixtures/repos/hooks/deploy/after_bundle.rb
366
377
  - spec/fixtures/repos/hooks/deploy/after_compile_assets.rb
@@ -436,30 +447,26 @@ files:
436
447
  homepage: http://github.com/engineyard/engineyard-serverside
437
448
  licenses:
438
449
  - MIT
450
+ metadata: {}
439
451
  post_install_message:
440
452
  rdoc_options: []
441
453
  require_paths:
442
454
  - lib
443
455
  required_ruby_version: !ruby/object:Gem::Requirement
444
- none: false
445
456
  requirements:
446
457
  - - ! '>='
447
458
  - !ruby/object:Gem::Version
448
459
  version: '0'
449
- segments:
450
- - 0
451
- hash: 3578750318654777423
452
460
  required_rubygems_version: !ruby/object:Gem::Requirement
453
- none: false
454
461
  requirements:
455
462
  - - ! '>='
456
463
  - !ruby/object:Gem::Version
457
464
  version: 1.3.6
458
465
  requirements: []
459
466
  rubyforge_project:
460
- rubygems_version: 1.8.23
467
+ rubygems_version: 2.1.10
461
468
  signing_key:
462
- specification_version: 3
469
+ specification_version: 4
463
470
  summary: A gem that deploys ruby applications on EY Cloud instances
464
471
  test_files:
465
472
  - spec/archive_deploy_spec.rb
@@ -470,6 +477,8 @@ test_files:
470
477
  - spec/deploy_hook_spec.rb
471
478
  - spec/deprecation_spec.rb
472
479
  - spec/ey_yml_customized_deploy_spec.rb
480
+ - spec/fixtures/gitrepo/bar
481
+ - spec/fixtures/gitrepo/foo
473
482
  - spec/fixtures/gitrepo.tar.gz
474
483
  - spec/fixtures/invalid_hook.rb
475
484
  - spec/fixtures/lockfiles/0.9-no-bundler
@@ -556,6 +565,8 @@ test_files:
556
565
  - spec/fixtures/repos/default/README
557
566
  - spec/fixtures/repos/executable_hooks/deploy/before_restart
558
567
  - spec/fixtures/repos/executable_hooks/README
568
+ - spec/fixtures/repos/executable_hooks_not_executable/deploy/before_restart
569
+ - spec/fixtures/repos/executable_hooks_not_executable/README
559
570
  - spec/fixtures/repos/ey_yml/config/ey.yml
560
571
  - spec/fixtures/repos/ey_yml/deploy/before_migrate.rb
561
572
  - spec/fixtures/repos/ey_yml/Gemfile
@@ -566,7 +577,7 @@ test_files:
566
577
  - spec/fixtures/repos/ey_yml_alt/Gemfile
567
578
  - spec/fixtures/repos/ey_yml_alt/Gemfile.lock
568
579
  - spec/fixtures/repos/ey_yml_alt/README
569
- - spec/fixtures/repos/hook_fails/deploy/before_migrate.rb
580
+ - spec/fixtures/repos/hook_fails/deploy/before_deploy.rb
570
581
  - spec/fixtures/repos/hook_fails/README
571
582
  - spec/fixtures/repos/hooks/deploy/after_bundle.rb
572
583
  - spec/fixtures/repos/hooks/deploy/after_compile_assets.rb