engineyard-serverside 2.4.1 → 2.4.2
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.
- checksums.yaml +15 -0
- data/lib/engineyard-serverside.rb +1 -0
- data/lib/engineyard-serverside/configuration.rb +5 -0
- data/lib/engineyard-serverside/deploy.rb +27 -11
- data/lib/engineyard-serverside/maintenance.rb +1 -1
- data/lib/engineyard-serverside/spawner.rb +7 -2
- data/lib/engineyard-serverside/version.rb +1 -1
- data/lib/vendor/json_pure/COPYING +57 -0
- data/lib/vendor/json_pure/GPL +340 -0
- data/lib/vendor/json_pure/README.rdoc +358 -0
- data/lib/vendor/json_pure/VERSION +1 -0
- data/lib/vendor/json_pure/json_pure.gemspec +40 -0
- data/lib/vendor/json_pure/lib/json.rb +62 -0
- data/lib/vendor/json_pure/lib/json/add/bigdecimal.rb +28 -0
- data/lib/vendor/json_pure/lib/json/add/complex.rb +22 -0
- data/lib/vendor/json_pure/lib/json/add/core.rb +11 -0
- data/lib/vendor/json_pure/lib/json/add/date.rb +34 -0
- data/lib/vendor/json_pure/lib/json/add/date_time.rb +48 -0
- data/lib/vendor/json_pure/lib/json/add/exception.rb +31 -0
- data/lib/vendor/json_pure/lib/json/add/ostruct.rb +31 -0
- data/lib/vendor/json_pure/lib/json/add/range.rb +29 -0
- data/lib/vendor/json_pure/lib/json/add/rational.rb +22 -0
- data/lib/vendor/json_pure/lib/json/add/regexp.rb +30 -0
- data/lib/vendor/json_pure/lib/json/add/struct.rb +30 -0
- data/lib/vendor/json_pure/lib/json/add/symbol.rb +25 -0
- data/lib/vendor/json_pure/lib/json/add/time.rb +38 -0
- data/lib/vendor/json_pure/lib/json/common.rb +484 -0
- data/lib/vendor/json_pure/lib/json/ext.rb +21 -0
- data/lib/vendor/json_pure/lib/json/generic_object.rb +70 -0
- data/lib/vendor/json_pure/lib/json/pure.rb +21 -0
- data/lib/vendor/json_pure/lib/json/pure/generator.rb +522 -0
- data/lib/vendor/json_pure/lib/json/pure/parser.rb +359 -0
- data/lib/vendor/json_pure/lib/json/version.rb +8 -0
- data/spec/configuration_spec.rb +2 -0
- data/spec/deploy_hook_spec.rb +15 -1
- data/spec/fixtures/gitrepo/bar +0 -0
- data/spec/fixtures/gitrepo/foo +0 -0
- data/spec/fixtures/repos/executable_hooks_not_executable/README +3 -0
- data/spec/fixtures/repos/executable_hooks_not_executable/deploy/before_restart +3 -0
- data/spec/fixtures/repos/hook_fails/README +1 -1
- data/spec/fixtures/repos/hook_fails/deploy/{before_migrate.rb → before_deploy.rb} +0 -0
- 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
|
data/spec/configuration_spec.rb
CHANGED
@@ -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
|
data/spec/deploy_hook_spec.rb
CHANGED
@@ -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 .*/
|
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
|
@@ -1 +1 @@
|
|
1
|
-
In this app the before
|
1
|
+
In this app the before hook raises.
|
File without changes
|
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.
|
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-
|
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/
|
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.
|
467
|
+
rubygems_version: 2.1.10
|
461
468
|
signing_key:
|
462
|
-
specification_version:
|
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/
|
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
|