engineyard-serverside 2.8.0 → 3.0.3
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 +4 -4
- data/lib/engineyard-serverside.rb +2 -5
- data/lib/engineyard-serverside/configuration.rb +3 -3
- data/lib/engineyard-serverside/deploy.rb +2 -1
- data/lib/engineyard-serverside/version.rb +1 -1
- metadata +46 -126
- data/features/enable_maintenance/step_definitions/enable_maintenance_steps.rb +0 -43
- data/features/step_definitions/app_steps.rb +0 -10
- data/features/step_definitions/server_steps.rb +0 -14
- data/lib/vendor/json_pure/COPYING +0 -57
- data/lib/vendor/json_pure/GPL +0 -340
- data/lib/vendor/json_pure/README.rdoc +0 -358
- data/lib/vendor/json_pure/VERSION +0 -1
- data/lib/vendor/json_pure/lib/json.rb +0 -62
- data/lib/vendor/json_pure/lib/json/add/bigdecimal.rb +0 -28
- data/lib/vendor/json_pure/lib/json/add/complex.rb +0 -22
- data/lib/vendor/json_pure/lib/json/add/core.rb +0 -11
- data/lib/vendor/json_pure/lib/json/add/date.rb +0 -34
- data/lib/vendor/json_pure/lib/json/add/date_time.rb +0 -48
- data/lib/vendor/json_pure/lib/json/add/exception.rb +0 -31
- data/lib/vendor/json_pure/lib/json/add/ostruct.rb +0 -31
- data/lib/vendor/json_pure/lib/json/add/range.rb +0 -29
- data/lib/vendor/json_pure/lib/json/add/rational.rb +0 -22
- data/lib/vendor/json_pure/lib/json/add/regexp.rb +0 -30
- data/lib/vendor/json_pure/lib/json/add/struct.rb +0 -30
- data/lib/vendor/json_pure/lib/json/add/symbol.rb +0 -25
- data/lib/vendor/json_pure/lib/json/add/time.rb +0 -38
- data/lib/vendor/json_pure/lib/json/common.rb +0 -484
- data/lib/vendor/json_pure/lib/json/ext.rb +0 -21
- data/lib/vendor/json_pure/lib/json/generic_object.rb +0 -70
- data/lib/vendor/json_pure/lib/json/pure.rb +0 -21
- data/lib/vendor/json_pure/lib/json/pure/generator.rb +0 -522
- data/lib/vendor/json_pure/lib/json/pure/parser.rb +0 -359
- data/lib/vendor/json_pure/lib/json/version.rb +0 -8
- data/lib/vendor/multi_json/CHANGELOG.md +0 -121
- data/lib/vendor/multi_json/CONTRIBUTING.md +0 -46
- data/lib/vendor/multi_json/Gemfile +0 -31
- data/lib/vendor/multi_json/LICENSE.md +0 -20
- data/lib/vendor/multi_json/README.md +0 -105
- data/lib/vendor/multi_json/Rakefile +0 -12
- data/lib/vendor/multi_json/lib/multi_json.rb +0 -137
- data/lib/vendor/multi_json/lib/multi_json/adapters/gson.rb +0 -20
- data/lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb +0 -35
- data/lib/vendor/multi_json/lib/multi_json/adapters/json_gem.rb +0 -12
- data/lib/vendor/multi_json/lib/multi_json/adapters/json_pure.rb +0 -12
- data/lib/vendor/multi_json/lib/multi_json/adapters/nsjsonserialization.rb +0 -35
- data/lib/vendor/multi_json/lib/multi_json/adapters/oj.rb +0 -29
- data/lib/vendor/multi_json/lib/multi_json/adapters/ok_json.rb +0 -58
- data/lib/vendor/multi_json/lib/multi_json/adapters/yajl.rb +0 -20
- data/lib/vendor/multi_json/lib/multi_json/vendor/okjson.rb +0 -602
- data/lib/vendor/multi_json/lib/multi_json/version.rb +0 -3
- data/lib/vendor/multi_json/spec/adapter_shared_example.rb +0 -162
- data/lib/vendor/multi_json/spec/helper.rb +0 -45
- data/lib/vendor/multi_json/spec/json_common_shared_example.rb +0 -36
- data/lib/vendor/multi_json/spec/multi_json_spec.rb +0 -151
@@ -1,162 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
shared_examples_for 'an adapter' do |adapter|
|
4
|
-
|
5
|
-
before do
|
6
|
-
begin
|
7
|
-
MultiJson.use adapter
|
8
|
-
rescue LoadError
|
9
|
-
pending "Adapter #{adapter} couldn't be loaded (not installed?)"
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
describe '.dump' do
|
14
|
-
it 'writes decodable JSON' do
|
15
|
-
[
|
16
|
-
{'abc' => 'def'},
|
17
|
-
[1, 2, 3, '4', true, false, nil]
|
18
|
-
].each do |example|
|
19
|
-
expect(MultiJson.load(MultiJson.dump(example))).to eq example
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
unless 'json_pure' == adapter || 'json_gem' == adapter
|
24
|
-
it 'dumps time in correct format' do
|
25
|
-
time = Time.at(1355218745).utc
|
26
|
-
|
27
|
-
# time does not respond to to_json method
|
28
|
-
class << time
|
29
|
-
undef_method :to_json
|
30
|
-
end
|
31
|
-
|
32
|
-
dumped_json = MultiJson.dump(time)
|
33
|
-
expected = if RUBY_VERSION > '1.9'
|
34
|
-
'2012-12-11 09:39:05 UTC'
|
35
|
-
else
|
36
|
-
'Tue Dec 11 09:39:05 UTC 2012'
|
37
|
-
end
|
38
|
-
expect(MultiJson.load(dumped_json)).to eq expected
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'dumps symbol and fixnum keys as strings' do
|
43
|
-
[
|
44
|
-
[
|
45
|
-
{:foo => {:bar => 'baz'}},
|
46
|
-
{'foo' => {'bar' => 'baz'}},
|
47
|
-
],
|
48
|
-
[
|
49
|
-
[{:foo => {:bar => 'baz'}}],
|
50
|
-
[{'foo' => {'bar' => 'baz'}}],
|
51
|
-
],
|
52
|
-
[
|
53
|
-
{:foo => [{:bar => 'baz'}]},
|
54
|
-
{'foo' => [{'bar' => 'baz'}]},
|
55
|
-
],
|
56
|
-
[
|
57
|
-
{1 => {2 => {3 => 'bar'}}},
|
58
|
-
{'1' => {'2' => {'3' => 'bar'}}}
|
59
|
-
]
|
60
|
-
].each do |example, expected|
|
61
|
-
dumped_json = MultiJson.dump(example)
|
62
|
-
expect(MultiJson.load(dumped_json)).to eq expected
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'dumps rootless JSON' do
|
67
|
-
expect(MultiJson.dump('random rootless string')).to eq '"random rootless string"'
|
68
|
-
expect(MultiJson.dump(123)).to eq '123'
|
69
|
-
end
|
70
|
-
|
71
|
-
it 'passes options to the adapter' do
|
72
|
-
MultiJson.adapter.should_receive(:dump).with('foo', {:bar => :baz})
|
73
|
-
MultiJson.dump('foo', :bar => :baz)
|
74
|
-
end
|
75
|
-
|
76
|
-
# This behavior is currently not supported by gson.rb
|
77
|
-
# See discussion at https://github.com/intridea/multi_json/pull/71
|
78
|
-
unless adapter == 'gson'
|
79
|
-
it 'dumps custom objects that implement to_json' do
|
80
|
-
klass = Class.new do
|
81
|
-
def to_json(*)
|
82
|
-
'"foobar"'
|
83
|
-
end
|
84
|
-
end
|
85
|
-
expect(MultiJson.dump(klass.new)).to eq '"foobar"'
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
it 'allows to dump JSON values' do
|
90
|
-
expect(MultiJson.dump(42)).to eq '42'
|
91
|
-
end
|
92
|
-
|
93
|
-
it 'allows to dump JSON with UTF-8 characters' do
|
94
|
-
expect(MultiJson.dump({'color' => 'żółć'})).to eq('{"color":"żółć"}')
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
describe '.load' do
|
99
|
-
it 'properly loads valid JSON' do
|
100
|
-
expect(MultiJson.load('{"abc":"def"}')).to eq({'abc' => 'def'})
|
101
|
-
end
|
102
|
-
|
103
|
-
it 'raises MultiJson::LoadError on invalid JSON' do
|
104
|
-
expect{MultiJson.load('{"abc"}')}.to raise_error(MultiJson::LoadError)
|
105
|
-
end
|
106
|
-
|
107
|
-
it 'raises MultiJson::LoadError with data on invalid JSON' do
|
108
|
-
data = '{invalid}'
|
109
|
-
begin
|
110
|
-
MultiJson.load(data)
|
111
|
-
rescue MultiJson::LoadError => le
|
112
|
-
expect(le.data).to eq data
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
it 'catches MultiJson::DecodeError for legacy support' do
|
117
|
-
data = '{invalid}'
|
118
|
-
begin
|
119
|
-
MultiJson.load(data)
|
120
|
-
rescue MultiJson::DecodeError => de
|
121
|
-
expect(de.data).to eq data
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
it 'stringifys symbol keys when encoding' do
|
126
|
-
dumped_json = MultiJson.dump(:a => 1, :b => {:c => 2})
|
127
|
-
expect(MultiJson.load(dumped_json)).to eq({'a' => 1, 'b' => {'c' => 2}})
|
128
|
-
end
|
129
|
-
|
130
|
-
it 'properly loads valid JSON in StringIOs' do
|
131
|
-
json = StringIO.new('{"abc":"def"}')
|
132
|
-
expect(MultiJson.load(json)).to eq({'abc' => 'def'})
|
133
|
-
end
|
134
|
-
|
135
|
-
it 'allows for symbolization of keys' do
|
136
|
-
[
|
137
|
-
[
|
138
|
-
'{"abc":{"def":"hgi"}}',
|
139
|
-
{:abc => {:def => 'hgi'}},
|
140
|
-
],
|
141
|
-
[
|
142
|
-
'[{"abc":{"def":"hgi"}}]',
|
143
|
-
[{:abc => {:def => 'hgi'}}],
|
144
|
-
],
|
145
|
-
[
|
146
|
-
'{"abc":[{"def":"hgi"}]}',
|
147
|
-
{:abc => [{:def => 'hgi'}]},
|
148
|
-
],
|
149
|
-
].each do |example, expected|
|
150
|
-
expect(MultiJson.load(example, :symbolize_keys => true)).to eq expected
|
151
|
-
end
|
152
|
-
end
|
153
|
-
|
154
|
-
it 'allows to load JSON values' do
|
155
|
-
expect(MultiJson.load('42')).to eq 42
|
156
|
-
end
|
157
|
-
|
158
|
-
it 'allows to load JSON with UTF-8 characters' do
|
159
|
-
expect(MultiJson.load('{"color":"żółć"}')).to eq({'color' => 'żółć'})
|
160
|
-
end
|
161
|
-
end
|
162
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
if !ENV['CI'] && defined?(RUBY_ENGINE) && RUBY_ENGINE == 'ruby'
|
2
|
-
require 'simplecov'
|
3
|
-
SimpleCov.start do
|
4
|
-
add_filter 'vendor'
|
5
|
-
end
|
6
|
-
end
|
7
|
-
|
8
|
-
require 'multi_json'
|
9
|
-
require 'rspec'
|
10
|
-
|
11
|
-
RSpec.configure do |config|
|
12
|
-
config.expect_with :rspec do |c|
|
13
|
-
c.syntax = :expect
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def macruby?
|
18
|
-
defined?(RUBY_ENGINE) && RUBY_ENGINE == 'macruby'
|
19
|
-
end
|
20
|
-
|
21
|
-
def jruby?
|
22
|
-
defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
|
23
|
-
end
|
24
|
-
|
25
|
-
class MockDecoder
|
26
|
-
def self.load(string, options={})
|
27
|
-
{'abc' => 'def'}
|
28
|
-
end
|
29
|
-
|
30
|
-
def self.dump(string)
|
31
|
-
'{"abc":"def"}'
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
module MockModuleDecoder
|
36
|
-
extend self
|
37
|
-
|
38
|
-
def load(string, options={})
|
39
|
-
{'abc' => 'def'}
|
40
|
-
end
|
41
|
-
|
42
|
-
def dump(string)
|
43
|
-
'{"abc":"def"}'
|
44
|
-
end
|
45
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
shared_examples_for 'JSON-like adapter' do |adapter|
|
2
|
-
before do
|
3
|
-
begin
|
4
|
-
MultiJson.use adapter
|
5
|
-
rescue LoadError
|
6
|
-
pending "Adapter #{adapter} couldn't be loaded (not installed?)"
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
describe '.dump' do
|
11
|
-
describe 'with :pretty option set to true' do
|
12
|
-
it 'passes default pretty options' do
|
13
|
-
object = 'foo'
|
14
|
-
object.should_receive(:to_json).with(JSON::PRETTY_STATE_PROTOTYPE.to_h).and_return('["foo"]')
|
15
|
-
MultiJson.dump(object, :pretty => true)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
describe 'with :indent option' do
|
20
|
-
it 'passes it on dump' do
|
21
|
-
object = 'foo'
|
22
|
-
object.should_receive(:to_json).with(:indent => "\t").and_return('["foo"]')
|
23
|
-
MultiJson.dump(object, :indent => "\t")
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
describe '.load' do
|
29
|
-
describe 'with :quirks_mode option' do
|
30
|
-
it 'passes it on load' do
|
31
|
-
::JSON.should_receive(:parse).with('["foo"]', {:quirks_mode => true, :create_additions => false}).and_return(['foo'])
|
32
|
-
MultiJson.load('"foo"', :quirks_mode => true)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,151 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
require 'adapter_shared_example'
|
3
|
-
require 'json_common_shared_example'
|
4
|
-
require 'stringio'
|
5
|
-
|
6
|
-
describe 'MultiJson' do
|
7
|
-
context 'adapters' do
|
8
|
-
before{ MultiJson.use nil }
|
9
|
-
|
10
|
-
context 'when no other json implementations are available' do
|
11
|
-
before do
|
12
|
-
@old_map = MultiJson::REQUIREMENT_MAP
|
13
|
-
@old_json = Object.const_get :JSON if Object.const_defined?(:JSON)
|
14
|
-
@old_oj = Object.const_get :Oj if Object.const_defined?(:Oj)
|
15
|
-
@old_yajl = Object.const_get :Yajl if Object.const_defined?(:Yajl)
|
16
|
-
@old_gson = Object.const_get :Gson if Object.const_defined?(:Gson)
|
17
|
-
MultiJson::REQUIREMENT_MAP.each_with_index do |(library, adapter), index|
|
18
|
-
MultiJson::REQUIREMENT_MAP[index] = ["foo/#{library}", adapter]
|
19
|
-
end
|
20
|
-
Object.send :remove_const, :JSON if @old_json
|
21
|
-
Object.send :remove_const, :Oj if @old_oj
|
22
|
-
Object.send :remove_const, :Yajl if @old_yajl
|
23
|
-
Object.send :remove_const, :Gson if @old_gson
|
24
|
-
end
|
25
|
-
|
26
|
-
after do
|
27
|
-
@old_map.each_with_index do |(library, adapter), index|
|
28
|
-
MultiJson::REQUIREMENT_MAP[index] = [library, adapter]
|
29
|
-
end
|
30
|
-
Object.const_set :JSON, @old_json if @old_json
|
31
|
-
Object.const_set :Oj, @old_oj if @old_oj
|
32
|
-
Object.const_set :Yajl, @old_yajl if @old_yajl
|
33
|
-
Object.const_set :Gson, @old_gson if @old_gson
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'defaults to ok_json if no other json implementions are available' do
|
37
|
-
Kernel.stub(:warn)
|
38
|
-
expect(MultiJson.default_adapter).to eq :ok_json
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'prints a warning' do
|
42
|
-
Kernel.should_receive(:warn).with(/warning/i)
|
43
|
-
MultiJson.default_adapter
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'defaults to the best available gem' do
|
48
|
-
# Clear cache variable already set by previous tests
|
49
|
-
MultiJson.send(:remove_instance_variable, :@adapter)
|
50
|
-
unless jruby?
|
51
|
-
require 'oj'
|
52
|
-
expect(MultiJson.adapter.name).to eq 'MultiJson::Adapters::Oj'
|
53
|
-
else
|
54
|
-
require 'json'
|
55
|
-
expect(MultiJson.adapter.name).to eq 'MultiJson::Adapters::JsonGem'
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
it 'looks for adapter even if @adapter variable is nil' do
|
60
|
-
MultiJson.send(:instance_variable_set, :@adapter, nil)
|
61
|
-
MultiJson.should_receive(:default_adapter).and_return(:ok_json)
|
62
|
-
expect(MultiJson.adapter.name).to eq 'MultiJson::Adapters::OkJson'
|
63
|
-
end
|
64
|
-
|
65
|
-
it 'is settable via a symbol' do
|
66
|
-
MultiJson.use :json_gem
|
67
|
-
expect(MultiJson.adapter.name).to eq 'MultiJson::Adapters::JsonGem'
|
68
|
-
end
|
69
|
-
|
70
|
-
it 'is settable via a class' do
|
71
|
-
MultiJson.use MockDecoder
|
72
|
-
expect(MultiJson.adapter.name).to eq 'MockDecoder'
|
73
|
-
end
|
74
|
-
|
75
|
-
it 'is settable via a module' do
|
76
|
-
MultiJson.use MockModuleDecoder
|
77
|
-
expect(MultiJson.adapter.name).to eq 'MockModuleDecoder'
|
78
|
-
end
|
79
|
-
|
80
|
-
context 'using one-shot parser' do
|
81
|
-
before do
|
82
|
-
require 'multi_json/adapters/json_pure'
|
83
|
-
MultiJson::Adapters::JsonPure.should_receive(:dump).exactly(1).times.and_return('dump_something')
|
84
|
-
MultiJson::Adapters::JsonPure.should_receive(:load).exactly(1).times.and_return('load_something')
|
85
|
-
end
|
86
|
-
|
87
|
-
it 'should use the defined parser just for the call' do
|
88
|
-
MultiJson.use :json_gem
|
89
|
-
expect(MultiJson.dump('', :adapter => :json_pure)).to eq 'dump_something'
|
90
|
-
expect(MultiJson.load('', :adapter => :json_pure)).to eq 'load_something'
|
91
|
-
expect(MultiJson.adapter.name).to eq 'MultiJson::Adapters::JsonGem'
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
it 'can set adapter for a block' do
|
97
|
-
MultiJson.use :ok_json
|
98
|
-
MultiJson.with_adapter(:json_pure) do
|
99
|
-
MultiJson.with_engine(:json_gem) do
|
100
|
-
expect(MultiJson.adapter.name).to eq 'MultiJson::Adapters::JsonGem'
|
101
|
-
end
|
102
|
-
expect(MultiJson.adapter.name).to eq 'MultiJson::Adapters::JsonPure'
|
103
|
-
end
|
104
|
-
expect(MultiJson.adapter.name).to eq 'MultiJson::Adapters::OkJson'
|
105
|
-
end
|
106
|
-
|
107
|
-
it 'JSON gem does not create symbols on parse' do
|
108
|
-
MultiJson.with_engine(:json_gem) do
|
109
|
-
MultiJson.load('{"json_class":"ZOMG"}') rescue nil
|
110
|
-
|
111
|
-
expect{
|
112
|
-
MultiJson.load('{"json_class":"OMG"}') rescue nil
|
113
|
-
}.to_not change{Symbol.all_symbols.count}
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
unless jruby?
|
118
|
-
it 'Oj does not create symbols on parse' do
|
119
|
-
MultiJson.with_engine(:oj) do
|
120
|
-
MultiJson.load('{"json_class":"ZOMG"}') rescue nil
|
121
|
-
|
122
|
-
expect{
|
123
|
-
MultiJson.load('{"json_class":"OMG"}') rescue nil
|
124
|
-
}.to_not change{Symbol.all_symbols.count}
|
125
|
-
end
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
it 'has default_options setter' do
|
130
|
-
MultiJson.use MockDecoder
|
131
|
-
MockDecoder.should_receive(:dump).with('123', :foo => 'lol', :bar => 'bar', :fizz => 'buzz')
|
132
|
-
MultiJson.default_options = { :foo => 'foo', :bar => 'bar' }
|
133
|
-
MultiJson.dump('123', :fizz => 'buzz', :foo => 'lol')
|
134
|
-
MultiJson.default_options = {}
|
135
|
-
end
|
136
|
-
|
137
|
-
%w(gson json_gem json_pure nsjsonserialization oj ok_json yajl).each do |adapter|
|
138
|
-
next if adapter == 'gson' && !jruby?
|
139
|
-
next if adapter == 'nsjsonserialization' && !macruby?
|
140
|
-
next if jruby? && (adapter == 'oj' || adapter == 'yajl')
|
141
|
-
context adapter do
|
142
|
-
it_behaves_like 'an adapter', adapter
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
146
|
-
%w(json_gem json_pure).each do |adapter|
|
147
|
-
context adapter do
|
148
|
-
it_behaves_like 'JSON-like adapter', adapter
|
149
|
-
end
|
150
|
-
end
|
151
|
-
end
|