engineyard-serverside 2.0.5 → 2.0.6

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.
Files changed (146) hide show
  1. data/lib/engineyard-serverside.rb +3 -3
  2. data/lib/engineyard-serverside/configuration.rb +6 -6
  3. data/lib/engineyard-serverside/deploy.rb +11 -7
  4. data/lib/engineyard-serverside/version.rb +1 -1
  5. data/lib/vendor/multi_json/CHANGELOG.md +121 -0
  6. data/lib/vendor/multi_json/CONTRIBUTING.md +46 -0
  7. data/lib/vendor/multi_json/Gemfile +31 -0
  8. data/lib/vendor/multi_json/LICENSE.md +20 -0
  9. data/lib/vendor/multi_json/README.md +105 -0
  10. data/lib/vendor/multi_json/Rakefile +12 -0
  11. data/lib/vendor/multi_json/lib/multi_json.rb +137 -0
  12. data/lib/vendor/multi_json/lib/multi_json/adapters/gson.rb +20 -0
  13. data/lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb +35 -0
  14. data/lib/vendor/multi_json/lib/multi_json/adapters/json_gem.rb +12 -0
  15. data/lib/vendor/multi_json/lib/multi_json/adapters/json_pure.rb +12 -0
  16. data/lib/vendor/multi_json/lib/multi_json/adapters/nsjsonserialization.rb +35 -0
  17. data/lib/vendor/multi_json/lib/multi_json/adapters/oj.rb +29 -0
  18. data/lib/vendor/multi_json/lib/multi_json/adapters/ok_json.rb +58 -0
  19. data/lib/vendor/multi_json/lib/multi_json/adapters/yajl.rb +20 -0
  20. data/lib/vendor/multi_json/lib/multi_json/vendor/okjson.rb +602 -0
  21. data/lib/vendor/multi_json/lib/multi_json/version.rb +3 -0
  22. data/lib/vendor/multi_json/multi_json.gemspec +22 -0
  23. data/lib/vendor/multi_json/spec/adapter_shared_example.rb +162 -0
  24. data/lib/vendor/multi_json/spec/helper.rb +45 -0
  25. data/lib/vendor/multi_json/spec/json_common_shared_example.rb +36 -0
  26. data/lib/vendor/multi_json/spec/multi_json_spec.rb +151 -0
  27. data/spec/configuration_spec.rb +79 -1
  28. data/spec/deploy_hook_spec.rb +2 -2
  29. data/spec/spec_helper.rb +1 -1
  30. metadata +26 -120
  31. data/lib/vendor/json_pure/CHANGES +0 -166
  32. data/lib/vendor/json_pure/COPYING +0 -58
  33. data/lib/vendor/json_pure/GPL +0 -340
  34. data/lib/vendor/json_pure/README +0 -358
  35. data/lib/vendor/json_pure/Rakefile +0 -292
  36. data/lib/vendor/json_pure/TODO +0 -1
  37. data/lib/vendor/json_pure/VERSION +0 -1
  38. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log +0 -52
  39. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat +0 -1000
  40. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat +0 -1001
  41. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat +0 -900
  42. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat +0 -901
  43. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat +0 -1000
  44. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat +0 -1001
  45. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log +0 -261
  46. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat +0 -1000
  47. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat +0 -1001
  48. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat +0 -1000
  49. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat +0 -1001
  50. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat +0 -1000
  51. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat +0 -1001
  52. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log +0 -262
  53. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat +0 -1000
  54. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat +0 -1001
  55. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log +0 -82
  56. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log +0 -34
  57. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat +0 -900
  58. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat +0 -901
  59. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log +0 -81
  60. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat +0 -1000
  61. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat +0 -1001
  62. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log +0 -82
  63. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat +0 -1000
  64. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat +0 -1001
  65. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log +0 -82
  66. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat +0 -1000
  67. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat +0 -1001
  68. data/lib/vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log +0 -82
  69. data/lib/vendor/json_pure/benchmarks/generator2_benchmark.rb +0 -222
  70. data/lib/vendor/json_pure/benchmarks/generator_benchmark.rb +0 -224
  71. data/lib/vendor/json_pure/benchmarks/ohai.json +0 -1216
  72. data/lib/vendor/json_pure/benchmarks/ohai.ruby +0 -1
  73. data/lib/vendor/json_pure/benchmarks/parser2_benchmark.rb +0 -251
  74. data/lib/vendor/json_pure/benchmarks/parser_benchmark.rb +0 -259
  75. data/lib/vendor/json_pure/bin/edit_json.rb +0 -9
  76. data/lib/vendor/json_pure/bin/prettify_json.rb +0 -75
  77. data/lib/vendor/json_pure/data/example.json +0 -1
  78. data/lib/vendor/json_pure/data/index.html +0 -38
  79. data/lib/vendor/json_pure/data/prototype.js +0 -4184
  80. data/lib/vendor/json_pure/ext/json/ext/generator/extconf.rb +0 -16
  81. data/lib/vendor/json_pure/ext/json/ext/generator/generator.c +0 -1323
  82. data/lib/vendor/json_pure/ext/json/ext/generator/generator.h +0 -170
  83. data/lib/vendor/json_pure/ext/json/ext/parser/extconf.rb +0 -15
  84. data/lib/vendor/json_pure/ext/json/ext/parser/parser.c +0 -1935
  85. data/lib/vendor/json_pure/ext/json/ext/parser/parser.h +0 -71
  86. data/lib/vendor/json_pure/ext/json/ext/parser/parser.rl +0 -792
  87. data/lib/vendor/json_pure/install.rb +0 -26
  88. data/lib/vendor/json_pure/lib/json.rb +0 -10
  89. data/lib/vendor/json_pure/lib/json/Array.xpm +0 -21
  90. data/lib/vendor/json_pure/lib/json/FalseClass.xpm +0 -21
  91. data/lib/vendor/json_pure/lib/json/Hash.xpm +0 -21
  92. data/lib/vendor/json_pure/lib/json/Key.xpm +0 -73
  93. data/lib/vendor/json_pure/lib/json/NilClass.xpm +0 -21
  94. data/lib/vendor/json_pure/lib/json/Numeric.xpm +0 -28
  95. data/lib/vendor/json_pure/lib/json/String.xpm +0 -96
  96. data/lib/vendor/json_pure/lib/json/TrueClass.xpm +0 -21
  97. data/lib/vendor/json_pure/lib/json/add/core.rb +0 -148
  98. data/lib/vendor/json_pure/lib/json/add/rails.rb +0 -58
  99. data/lib/vendor/json_pure/lib/json/common.rb +0 -397
  100. data/lib/vendor/json_pure/lib/json/editor.rb +0 -1371
  101. data/lib/vendor/json_pure/lib/json/ext.rb +0 -15
  102. data/lib/vendor/json_pure/lib/json/json.xpm +0 -1499
  103. data/lib/vendor/json_pure/lib/json/pure.rb +0 -77
  104. data/lib/vendor/json_pure/lib/json/pure/generator.rb +0 -452
  105. data/lib/vendor/json_pure/lib/json/pure/parser.rb +0 -307
  106. data/lib/vendor/json_pure/lib/json/version.rb +0 -8
  107. data/lib/vendor/json_pure/tests/fixtures/fail1.json +0 -1
  108. data/lib/vendor/json_pure/tests/fixtures/fail10.json +0 -1
  109. data/lib/vendor/json_pure/tests/fixtures/fail11.json +0 -1
  110. data/lib/vendor/json_pure/tests/fixtures/fail12.json +0 -1
  111. data/lib/vendor/json_pure/tests/fixtures/fail13.json +0 -1
  112. data/lib/vendor/json_pure/tests/fixtures/fail14.json +0 -1
  113. data/lib/vendor/json_pure/tests/fixtures/fail18.json +0 -1
  114. data/lib/vendor/json_pure/tests/fixtures/fail19.json +0 -1
  115. data/lib/vendor/json_pure/tests/fixtures/fail2.json +0 -1
  116. data/lib/vendor/json_pure/tests/fixtures/fail20.json +0 -1
  117. data/lib/vendor/json_pure/tests/fixtures/fail21.json +0 -1
  118. data/lib/vendor/json_pure/tests/fixtures/fail22.json +0 -1
  119. data/lib/vendor/json_pure/tests/fixtures/fail23.json +0 -1
  120. data/lib/vendor/json_pure/tests/fixtures/fail24.json +0 -1
  121. data/lib/vendor/json_pure/tests/fixtures/fail25.json +0 -1
  122. data/lib/vendor/json_pure/tests/fixtures/fail27.json +0 -2
  123. data/lib/vendor/json_pure/tests/fixtures/fail28.json +0 -2
  124. data/lib/vendor/json_pure/tests/fixtures/fail3.json +0 -1
  125. data/lib/vendor/json_pure/tests/fixtures/fail4.json +0 -1
  126. data/lib/vendor/json_pure/tests/fixtures/fail5.json +0 -1
  127. data/lib/vendor/json_pure/tests/fixtures/fail6.json +0 -1
  128. data/lib/vendor/json_pure/tests/fixtures/fail7.json +0 -1
  129. data/lib/vendor/json_pure/tests/fixtures/fail8.json +0 -1
  130. data/lib/vendor/json_pure/tests/fixtures/fail9.json +0 -1
  131. data/lib/vendor/json_pure/tests/fixtures/pass1.json +0 -56
  132. data/lib/vendor/json_pure/tests/fixtures/pass15.json +0 -1
  133. data/lib/vendor/json_pure/tests/fixtures/pass16.json +0 -1
  134. data/lib/vendor/json_pure/tests/fixtures/pass17.json +0 -1
  135. data/lib/vendor/json_pure/tests/fixtures/pass2.json +0 -1
  136. data/lib/vendor/json_pure/tests/fixtures/pass26.json +0 -1
  137. data/lib/vendor/json_pure/tests/fixtures/pass3.json +0 -6
  138. data/lib/vendor/json_pure/tests/test_json.rb +0 -361
  139. data/lib/vendor/json_pure/tests/test_json_addition.rb +0 -162
  140. data/lib/vendor/json_pure/tests/test_json_encoding.rb +0 -68
  141. data/lib/vendor/json_pure/tests/test_json_fixtures.rb +0 -34
  142. data/lib/vendor/json_pure/tests/test_json_generate.rb +0 -122
  143. data/lib/vendor/json_pure/tests/test_json_rails.rb +0 -144
  144. data/lib/vendor/json_pure/tests/test_json_unicode.rb +0 -76
  145. data/lib/vendor/json_pure/tools/fuzz.rb +0 -139
  146. data/lib/vendor/json_pure/tools/server.rb +0 -61
@@ -10,10 +10,10 @@ end
10
10
  $LOAD_PATH.unshift File.expand_path('vendor/thor/lib', File.dirname(__FILE__))
11
11
  $LOAD_PATH.unshift File.expand_path('vendor/systemu/lib', File.dirname(__FILE__))
12
12
  $LOAD_PATH.unshift File.expand_path('vendor/escape/lib', File.dirname(__FILE__))
13
- $LOAD_PATH.unshift File.expand_path('vendor/json_pure/lib', File.dirname(__FILE__))
13
+ $LOAD_PATH.unshift File.expand_path('vendor/multi_json/lib', File.dirname(__FILE__))
14
14
 
15
15
  require 'escape'
16
- require 'json'
16
+ require 'multi_json'
17
17
 
18
18
  require 'engineyard-serverside/version'
19
19
  require 'engineyard-serverside/about'
@@ -35,7 +35,7 @@ module EY
35
35
  RemoteFailure = Class.new StandardError
36
36
 
37
37
  def self.node
38
- @node ||= deep_indifferentize(JSON.parse(dna_json))
38
+ @node ||= deep_indifferentize(MultiJson.load(dna_json))
39
39
  end
40
40
 
41
41
  def self.dna_json
@@ -1,4 +1,4 @@
1
- require 'json'
1
+ require 'multi_json'
2
2
  require 'thor'
3
3
  require 'pp'
4
4
  require 'engineyard-serverside/paths'
@@ -60,11 +60,11 @@ module EY
60
60
  def_option :stack, nil
61
61
  def_option :strategy, 'Git'
62
62
  def_option :branch, 'master'
63
- def_option :bundle_without, 'test development'
64
63
  def_option :current_roles, []
65
64
  def_option :current_name, nil
66
65
  def_option :asset_roles, [:app_master, :app, :solo]
67
66
  def_option :copy_exclude, []
67
+ def_option(:bundle_without) { (%w[test development] - [framework_env]).join(' ') }
68
68
  def_option(:user) { ENV['USER'] }
69
69
  def_option(:group) { user }
70
70
 
@@ -79,7 +79,7 @@ module EY
79
79
 
80
80
  def initialize(options)
81
81
  opts = string_keys(options)
82
- config = JSON.parse(opts.delete("config") || "{}")
82
+ config = MultiJson.load(opts.delete("config") || "{}")
83
83
  append_config_source opts # high priority
84
84
  append_config_source config # lower priority
85
85
  end
@@ -150,7 +150,7 @@ module EY
150
150
  end
151
151
 
152
152
  def to_json
153
- configuration.to_json
153
+ MultiJson.dump(configuration)
154
154
  end
155
155
 
156
156
  def node
@@ -227,11 +227,11 @@ module EY
227
227
  end
228
228
 
229
229
  def precompile_assets?
230
- precompile_assets == true
230
+ precompile_assets == true || precompile_assets == "true"
231
231
  end
232
232
 
233
233
  def skip_precompile_assets?
234
- precompile_assets == false
234
+ precompile_assets == false || precompile_assets == "false"
235
235
  end
236
236
 
237
237
  # Assume downtime required if stack is not specified (nil) just in case.
@@ -1,7 +1,7 @@
1
1
  # stolen wholesale from capistrano, thanks Jamis!
2
2
  require 'base64'
3
3
  require 'fileutils'
4
- require 'json'
4
+ require 'multi_json'
5
5
  require 'engineyard-serverside/rails_asset_support'
6
6
  require 'engineyard-serverside/maintenance'
7
7
 
@@ -283,7 +283,7 @@ chmod 0700 #{path}
283
283
  end
284
284
 
285
285
  def services_command_check
286
- "which /usr/local/ey_resin/ruby/bin/ey-services-setup"
286
+ "which /usr/local/ey_resin/ruby/bin/ey-services-setup >/dev/null 2>&1"
287
287
  end
288
288
 
289
289
  def services_setup_command
@@ -293,20 +293,24 @@ chmod 0700 #{path}
293
293
  def setup_services
294
294
  shell.status "Setting up external services."
295
295
  previously_configured_services = parse_configured_services
296
+
296
297
  begin
297
298
  sudo(services_command_check)
298
299
  rescue StandardError => e
299
300
  shell.info "Could not setup services. Upgrade your environment to get services configuration."
300
301
  return
301
302
  end
302
- sudo(services_setup_command)
303
- rescue StandardError => e
304
- unless previously_configured_services.empty?
305
- shell.warning <<-WARNING
303
+
304
+ begin
305
+ sudo(services_setup_command)
306
+ rescue StandardError => e
307
+ unless previously_configured_services.empty?
308
+ shell.warning <<-WARNING
306
309
  External services configuration not updated. Using previous version.
307
310
  Deploy again if your services configuration appears incomplete or out of date.
308
311
  #{e}
309
- WARNING
312
+ WARNING
313
+ end
310
314
  end
311
315
  end
312
316
 
@@ -1,5 +1,5 @@
1
1
  module EY
2
2
  module Serverside
3
- VERSION = '2.0.5'
3
+ VERSION = '2.0.6'
4
4
  end
5
5
  end
@@ -0,0 +1,121 @@
1
+ 1.6.1
2
+ -----
3
+ * [Revert "Use JSON.generate instead of #to_json"](https://github.com/intridea/multi_json/issues/86)
4
+
5
+ 1.6.0
6
+ -----
7
+ * [Add gson.rb support](https://github.com/intridea/multi_json/pull/71)
8
+ * [Add MultiJson.default_options](https://github.com/intridea/multi_json/pull/70)
9
+ * [Add MultiJson.with_adapter](https://github.com/intridea/multi_json/pull/67)
10
+ * [Stringify all possible keys for ok_json](https://github.com/intridea/multi_json/pull/66)
11
+ * [Use JSON.generate instead of #to_json](https://github.com/intridea/multi_json/issues/73)
12
+ * [Alias `MultiJson::DecodeError` to `MultiJson::LoadError`](https://github.com/intridea/multi_json/pull/79)
13
+
14
+ 1.5.1
15
+ -----
16
+ * [Do not allow Oj or JSON to create symbols by searching for classes](https://github.com/intridea/multi_json/commit/193e28cf4dc61b6e7b7b7d80f06f74c76df65c41)
17
+
18
+ 1.5.0
19
+ -----
20
+ * [Add `MultiJson.with_adapter` method](https://github.com/intridea/multi_json/commit/d14c5d28cae96557a0421298621b9499e1f28104)
21
+ * [Stringify all possible keys for `ok_json`](https://github.com/intridea/multi_json/commit/73998074058e1e58c557ffa7b9541d486d6041fa)
22
+
23
+ 1.4.0
24
+ -----
25
+ * [Allow `load`/`dump` of JSON fragments](https://github.com/intridea/multi_json/commit/707aae7d48d39c85b38febbd2c210ba87f6e4a36)
26
+
27
+ 1.3.7
28
+ -----
29
+ * [Fix rescue clause for MagLev](https://github.com/intridea/multi_json/commit/39abdf50199828c50e85b2ce8f8ba31fcbbc9332)
30
+ * [Remove unnecessary check for string version of options key](https://github.com/intridea/multi_json/commit/660101b70e962b3c007d0b90d45944fa47d13ec4)
31
+ * [Explicitly set default adapter when adapter is set to `nil` or `false`](https://github.com/intridea/multi_json/commit/a9e587d5a63eafb4baee9fb211265e4dd96a26bc)
32
+ * [Fix Oj `ParseError` mapping for Oj 1.4.0](https://github.com/intridea/multi_json/commit/7d9045338cc9029401c16f3c409d54ce97f275e2)
33
+
34
+ 1.3.6
35
+ -----
36
+ * [Allow adapter-specific options to be passed through to Oj](https://github.com/intridea/multi_json/commit/d0e5feeebcba0bc69400dd203a295f5c30971223)
37
+
38
+ 1.3.5
39
+ -----
40
+ * [Add pretty support to Oj adapter](https://github.com/intridea/multi_json/commit/0c8f75f03020c53bcf4c6be258faf433d24b2c2b)
41
+
42
+ 1.3.4
43
+ -----
44
+ * [Use `class << self` instead of `module_function` to create aliases](https://github.com/intridea/multi_json/commit/ba1451c4c48baa297e049889be241a424cb05980)
45
+
46
+ 1.3.3
47
+ -----
48
+ * [Remove deprecation warnings](https://github.com/intridea/multi_json/commit/36b524e71544eb0186826a891bcc03b2820a008f)
49
+
50
+ 1.3.2
51
+ -----
52
+ * [Add ability to use adapter per call](https://github.com/intridea/multi_json/commit/106bbec469d5d0a832bfa31fffcb8c0f0cdc9bd3)
53
+ * [Add and deprecate `default_engine` method](https://github.com/intridea/multi_json/commit/fc3df0c7a3e2ab9ce0c2c7e7617a4da97dd13f6e)
54
+
55
+ 1.3.1
56
+ -----
57
+ * [Only warn once for each instance a deprecated method is called](https://github.com/intridea/multi_json/commit/e21d6eb7da74b3f283995c1d27d5880e75f0ae84)
58
+
59
+ 1.3.0
60
+ -----
61
+ * [Implement `load`/`dump`; deprecate `decode`/`encode`](https://github.com/intridea/multi_json/commit/e90fd6cb1b0293eb0c73c2f4eb0f7a1764370216)
62
+ * [Rename engines to adapters](https://github.com/intridea/multi_json/commit/ae7fd144a7949a9c221dcaa446196ec23db908df)
63
+
64
+ 1.2.0
65
+ -----
66
+ * [Add support for Oj](https://github.com/intridea/multi_json/commit/acd06b233edabe6c44f226873db7b49dab560c60)
67
+
68
+ 1.1.0
69
+ -----
70
+ * [`NSJSONSerialization` support for MacRuby](https://github.com/intridea/multi_json/commit/f862e2fc966cac8867fe7da3997fc76e8a6cf5d4)
71
+
72
+ 1.0.4
73
+ -----
74
+ * [Set data context to `DecodeError` exception](https://github.com/intridea/multi_json/commit/19ddafd44029c6681f66fae2a0f6eabfd0f85176)
75
+ * [Allow `ok_json` to fallback to `to_json`](https://github.com/intridea/multi_json/commit/c157240b1193b283d06d1bd4d4b5b06bcf3761f8)
76
+ * [Add warning when using `ok_json`](https://github.com/intridea/multi_json/commit/dd4b68810c84f826fb98f9713bfb29ab96888d57)
77
+ * [Options can be passed to an engine on encode](https://github.com/intridea/multi_json/commit/e0a7ff5d5ff621ffccc61617ed8aeec5816e81f7)
78
+
79
+ 1.0.3
80
+ -----
81
+ * [`Array` support for `stringify_keys`](https://github.com/intridea/multi_json/commit/644d1c5c7c7f6a27663b11668527b346094e38b9)
82
+ * [`Array` support for `symbolize_keys`](https://github.com/intridea/multi_json/commit/c885377d47a2aa39cb0d971fea78db2d2fa479a7)
83
+
84
+ 1.0.2
85
+ -----
86
+ * [Allow encoding of rootless JSON when `ok_json` is used](https://github.com/intridea/multi_json/commit/d1cde7de97cb0f6152aef8daf14037521cdce8c6)
87
+
88
+ 1.0.1
89
+ -----
90
+ * [Correct an issue with `ok_json` not being returned as the default engine](https://github.com/intridea/multi_json/commit/d33c141619c54cccd770199694da8fd1bd8f449d)
91
+
92
+ 1.0.0
93
+ -----
94
+ * [Remove `ActiveSupport::JSON` support](https://github.com/intridea/multi_json/commit/c2f4140141d785a24b3f56e58811b0e561b37f6a)
95
+ * [Fix `@engine` ivar warning](https://github.com/intridea/multi_json/commit/3b978a8995721a8dffedc3b75a7f49e5494ec553)
96
+ * [Only `rescue` from parsing errors during decoding, not any `StandardError`](https://github.com/intridea/multi_json/commit/391d00b5e85294d42d41347605d8d46b4a7f66cc)
97
+ * [Rename `okjson` engine and vendored lib to `ok_json`](https://github.com/intridea/multi_json/commit/5bd1afc977a8208ddb0443e1d57cb79665c019f1)
98
+ * [Add `StringIO` support to `json` gem and `ok_json`](https://github.com/intridea/multi_json/commit/1706b11568db7f50af451fce5f4d679aeb3bbe8f)
99
+
100
+ 0.0.5
101
+ -----
102
+ * [Trap all JSON decoding errors; raise `MultiJson::DecodeError`](https://github.com/intridea/multi_json/commit/dea9a1aef6dd1212aa1e5a37ab1669f9b045b732)
103
+
104
+ 0.0.4
105
+ -----
106
+ * [Fix default_engine check for `json` gem](https://github.com/intridea/multi_json/commit/caced0c4e8c795922a109ebc00c3c4fa8635bed8)
107
+ * [Make requirement mapper an `Array` to preserve order in Ruby versions < 1.9](https://github.com/intridea/multi_json/commit/526f5f29a42131574a088ad9bbb43d7f48439b2c)
108
+
109
+ 0.0.3
110
+ -----
111
+ * [Improved defaulting and documentation](https://github.com/sferik/twitter/commit/3a0e41b9e4b0909201045fa47704b78c9d949b73)
112
+
113
+ 0.0.2
114
+ -----
115
+
116
+ * [Rename to `multi_json`](https://github.com/sferik/twitter/commit/461ab89ce071c8c9fabfc183581e0ec523788b62)
117
+
118
+ 0.0.1
119
+ -----
120
+
121
+ * [Initial commit](https://github.com/sferik/twitter/commit/518c21ab299c500527491e6c049ab2229e22a805)
@@ -0,0 +1,46 @@
1
+ ## Contributing
2
+ In the spirit of [free software][free-sw], **everyone** is encouraged to help
3
+ improve this project.
4
+
5
+ [free-sw]: http://www.fsf.org/licensing/essays/free-sw.html
6
+
7
+ Here are some ways *you* can contribute:
8
+
9
+ * by using alpha, beta, and prerelease versions
10
+ * by reporting bugs
11
+ * by suggesting new features
12
+ * by writing or editing documentation
13
+ * by writing specifications
14
+ * by writing code (**no patch is too small**: fix typos, add comments, clean up
15
+ inconsistent whitespace)
16
+ * by refactoring code
17
+ * by closing [issues][]
18
+ * by reviewing patches
19
+
20
+ [issues]: https://github.com/intridea/multi_json/issues
21
+
22
+ ## Submitting an Issue
23
+ We use the [GitHub issue tracker][issues] to track bugs and features. Before
24
+ submitting a bug report or feature request, check to make sure it hasn't
25
+ already been submitted. When submitting a bug report, please include a [Gist][]
26
+ that includes a stack trace and any details that may be necessary to reproduce
27
+ the bug, including your gem version, Ruby version, and operating system.
28
+ Ideally, a bug report should include a pull request with failing specs.
29
+
30
+ [gist]: https://gist.github.com/
31
+
32
+ ## Submitting a Pull Request
33
+ 1. [Fork the repository.][fork]
34
+ 2. [Create a topic branch.][branch]
35
+ 3. Add specs for your unimplemented feature or bug fix.
36
+ 4. Run `bundle exec rake spec`. If your specs pass, return to step 3.
37
+ 5. Implement your feature or bug fix.
38
+ 6. Run `bundle exec rake spec`. If your specs fail, return to step 5.
39
+ 7. Run `open coverage/index.html`. If your changes are not completely covered
40
+ by your tests, return to step 3.
41
+ 8. Add, commit, and push your changes.
42
+ 9. [Submit a pull request.][pr]
43
+
44
+ [fork]: http://help.github.com/fork-a-repo/
45
+ [branch]: http://learn.github.com/p/branching.html
46
+ [pr]: http://help.github.com/send-pull-requests/
@@ -0,0 +1,31 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rake', '>= 0.9'
4
+ gem 'yard', '>= 0.8'
5
+
6
+ platforms :ruby_18 do
7
+ gem 'json', '~> 1.4', :require => nil
8
+ end
9
+
10
+ gem 'json_pure', '~> 1.4', :require => nil
11
+
12
+ platforms :ruby, :mswin, :mingw do
13
+ gem 'oj', '~> 2.0', :require => nil
14
+ gem 'yajl-ruby', '~> 1.0', :require => nil
15
+ end
16
+ platforms :jruby do
17
+ gem 'gson', '>= 0.6', :require => nil
18
+ end
19
+
20
+ group :development do
21
+ gem 'kramdown', '>= 0.14'
22
+ gem 'pry'
23
+ gem 'pry-debugger', :platforms => :mri_19
24
+ end
25
+
26
+ group :test do
27
+ gem 'rspec', '>= 2.11'
28
+ gem 'simplecov', :require => false
29
+ end
30
+
31
+ gemspec
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2010-2013 Michael Bleigh, Josh Kalderimis, Erik Michaels-Ober, Pavel Pravosud
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,105 @@
1
+ # MultiJSON
2
+ [![Gem Version](https://badge.fury.io/rb/multi_json.png)][gem]
3
+ [![Build Status](https://secure.travis-ci.org/intridea/multi_json.png?branch=master)][travis]
4
+ [![Dependency Status](https://gemnasium.com/intridea/multi_json.png?travis)][gemnasium]
5
+ [![Code Climate](https://codeclimate.com/github/intridea/multi_json.png)][codeclimate]
6
+
7
+ [gem]: https://rubygems.org/gems/multi_json
8
+ [travis]: http://travis-ci.org/intridea/multi_json
9
+ [gemnasium]: https://gemnasium.com/intridea/multi_json
10
+ [codeclimate]: https://codeclimate.com/github/intridea/multi_json
11
+
12
+ Lots of Ruby libraries parse JSON and everyone has their favorite JSON coder.
13
+ Instead of choosing a single JSON coder and forcing users of your library to be
14
+ stuck with it, you can use MultiJSON instead, which will simply choose the
15
+ fastest available JSON coder. Here's how to use it:
16
+
17
+ ```ruby
18
+ require 'multi_json'
19
+
20
+ MultiJson.load('{"abc":"def"}') #=> {"abc" => "def"}
21
+ MultiJson.load('{"abc":"def"}', :symbolize_keys => true) #=> {:abc => "def"}
22
+ MultiJson.dump({:abc => 'def'}) # convert Ruby back to JSON
23
+ MultiJson.dump({:abc => 'def'}, :pretty => true) # encoded in a pretty form (if supported by the coder)
24
+ ```
25
+
26
+ When loading invalid JSON, multiJSON will throw a `MultiJson::LoadError`. `MultiJson::DecodeError` is an alias for backwards compatibility.
27
+
28
+ ```ruby
29
+ MultiJson.load('invalid json') #=> MultiJson::LoadError
30
+ ```
31
+
32
+ The `use` method, which sets the MultiJson adapter, takes either a symbol or a
33
+ class (to allow for custom JSON parsers) that responds to both `.load` and `.dump`
34
+ at the class level.
35
+
36
+ MultiJSON tries to have intelligent defaulting. That is, if you have any of the
37
+ supported engines already loaded, it will utilize them before attempting to
38
+ load any. When loading, libraries are ordered by speed. First Oj, then Yajl,
39
+ then the JSON gem, then JSON pure. If no other JSON library is available,
40
+ MultiJSON falls back to [OkJson][], a simple, vendorable JSON parser.
41
+
42
+ [okjson]: https://github.com/kr/okjson
43
+
44
+ ## Supported JSON Engines
45
+
46
+ * [Oj](https://github.com/ohler55/oj) Optimized JSON by Peter Ohler
47
+ * [Yajl](https://github.com/brianmario/yajl-ruby) Yet Another JSON Library by Brian Lopez
48
+ * [JSON](https://github.com/flori/json) The default JSON gem with C-extensions (ships with Ruby 1.9)
49
+ * [JSON Pure](https://github.com/flori/json) A Ruby variant of the JSON gem
50
+ * [NSJSONSerialization](https://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html) Wrapper for Apple's NSJSONSerialization in the Cocoa Framework (MacRuby only)
51
+ * [gson.rb](https://github.com/avsej/gson.rb) A Ruby wrapper for google-gson library (JRuby only)
52
+ * [OkJson][okjson] A simple, vendorable JSON parser
53
+
54
+ ## Supported Ruby Versions
55
+ This library aims to support and is [tested against][travis] the following Ruby
56
+ implementations:
57
+
58
+ * Ruby 1.8.7
59
+ * Ruby 1.9.2
60
+ * Ruby 1.9.3
61
+ * Ruby 2.0.0
62
+ * [JRuby][]
63
+ * [Rubinius][]
64
+ * [MacRuby][] (not tested on Travis CI)
65
+
66
+ [jruby]: http://www.jruby.org/
67
+ [rubinius]: http://rubini.us/
68
+ [macruby]: http://www.macruby.org/
69
+
70
+ If something doesn't work on one of these interpreters, it's a bug.
71
+
72
+ This library may inadvertently work (or seem to work) on other Ruby
73
+ implementations, however support will only be provided for the versions listed
74
+ above.
75
+
76
+ If you would like this library to support another Ruby version, you may
77
+ volunteer to be a maintainer. Being a maintainer entails making sure all tests
78
+ run and pass on that implementation. When something breaks on your
79
+ implementation, you will be responsible for providing patches in a timely
80
+ fashion. If critical issues for a particular implementation exist at the time
81
+ of a major release, support for that Ruby version may be dropped.
82
+
83
+ ## Versioning
84
+
85
+ This library aims to adhere to [Semantic Versioning 2.0.0][semver]. Violations
86
+ of this scheme should be reported as bugs. Specifically, if a minor or patch
87
+ version is released that breaks backward compatibility, that version should be
88
+ immediately yanked and/or a new version should be immediately released that
89
+ restores compatibility. Breaking changes to the public API will only be
90
+ introduced with new major versions. As a result of this policy, you can (and
91
+ should) specify a dependency on this gem using the [Pessimistic Version
92
+ Constraint][pvc] with two digits of precision. For example:
93
+
94
+ ```ruby
95
+ spec.add_dependency 'multi_json', '~> 1.0'
96
+ ```
97
+
98
+ [semver]: http://semver.org/
99
+ [pvc]: http://docs.rubygems.org/read/chapter/16#page74
100
+
101
+ ## Copyright
102
+ Copyright (c) 2010-2013 Michael Bleigh, Josh Kalderimis, Erik Michaels-Ober,
103
+ and Pavel Pravosud. See [LICENSE][] for details.
104
+
105
+ [license]: LICENSE.md