cvss-suite 1.0.8 → 1.1.0

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 (821) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CHANGES.md +14 -0
  4. data/README.md +12 -3
  5. data/cvss_suite.gemspec +1 -9
  6. data/lib/cvss_suite.rb +10 -7
  7. data/lib/cvss_suite/cvss.rb +4 -4
  8. data/lib/cvss_suite/cvss2/cvss2.rb +1 -1
  9. data/lib/cvss_suite/cvss3/cvss3.rb +1 -1
  10. data/lib/cvss_suite/errors.rb +28 -0
  11. data/lib/cvss_suite/invalid_cvss.rb +57 -0
  12. data/lib/cvss_suite/version.rb +1 -1
  13. metadata +6 -812
  14. data/vendor/cache/diff-lcs-1.2.5.gem +0 -0
  15. data/vendor/cache/docile-1.1.5.gem +0 -0
  16. data/vendor/cache/json-1.8.3.gem +0 -0
  17. data/vendor/cache/rdoc-4.2.0.gem +0 -0
  18. data/vendor/cache/rspec-3.4.0.gem +0 -0
  19. data/vendor/cache/rspec-core-3.4.0.gem +0 -0
  20. data/vendor/cache/rspec-expectations-3.4.0.gem +0 -0
  21. data/vendor/cache/rspec-its-1.2.0.gem +0 -0
  22. data/vendor/cache/rspec-mocks-3.4.0.gem +0 -0
  23. data/vendor/cache/rspec-support-3.4.0.gem +0 -0
  24. data/vendor/cache/ruby/2.2.0/bin/badger +0 -23
  25. data/vendor/cache/ruby/2.2.0/bin/htmldiff +0 -25
  26. data/vendor/cache/ruby/2.2.0/bin/ldiff +0 -25
  27. data/vendor/cache/ruby/2.2.0/bin/rspec +0 -23
  28. data/vendor/cache/ruby/2.2.0/bin/thor +0 -23
  29. data/vendor/cache/ruby/2.2.0/cache/badgerbadgerbadger-0.14.0.gem +0 -0
  30. data/vendor/cache/ruby/2.2.0/cache/diff-lcs-1.2.5.gem +0 -0
  31. data/vendor/cache/ruby/2.2.0/cache/docile-1.1.5.gem +0 -0
  32. data/vendor/cache/ruby/2.2.0/cache/git-1.3.0.gem +0 -0
  33. data/vendor/cache/ruby/2.2.0/cache/json-1.8.3.gem +0 -0
  34. data/vendor/cache/ruby/2.2.0/cache/rake-10.4.2.gem +0 -0
  35. data/vendor/cache/ruby/2.2.0/cache/rdoc-4.2.0.gem +0 -0
  36. data/vendor/cache/ruby/2.2.0/cache/rspec-3.4.0.gem +0 -0
  37. data/vendor/cache/ruby/2.2.0/cache/rspec-core-3.4.0.gem +0 -0
  38. data/vendor/cache/ruby/2.2.0/cache/rspec-expectations-3.4.0.gem +0 -0
  39. data/vendor/cache/ruby/2.2.0/cache/rspec-its-1.2.0.gem +0 -0
  40. data/vendor/cache/ruby/2.2.0/cache/rspec-mocks-3.4.0.gem +0 -0
  41. data/vendor/cache/ruby/2.2.0/cache/rspec-support-3.4.0.gem +0 -0
  42. data/vendor/cache/ruby/2.2.0/cache/simplecov-0.11.2.gem +0 -0
  43. data/vendor/cache/ruby/2.2.0/cache/simplecov-html-0.10.0.gem +0 -0
  44. data/vendor/cache/ruby/2.2.0/cache/thor-0.19.1.gem +0 -0
  45. data/vendor/cache/ruby/2.2.0/extensions/x86-linux/2.2.0/json-1.8.3/gem.build_complete +0 -0
  46. data/vendor/cache/ruby/2.2.0/extensions/x86-linux/2.2.0/json-1.8.3/gem_make.out +0 -9
  47. data/vendor/cache/ruby/2.2.0/extensions/x86-linux/2.2.0/json-1.8.3/json/ext/generator.so +0 -0
  48. data/vendor/cache/ruby/2.2.0/extensions/x86-linux/2.2.0/json-1.8.3/json/ext/parser.so +0 -0
  49. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/.gitignore +0 -19
  50. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/.rspec +0 -2
  51. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/.travis.yml +0 -15
  52. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/DESC.md +0 -27
  53. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/Gemfile +0 -7
  54. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/Guardfile +0 -30
  55. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/LICENSE.md +0 -22
  56. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/README.md +0 -53
  57. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/Rakefile +0 -10
  58. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/badger.gemspec +0 -34
  59. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/bin/badger +0 -4
  60. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/config/config.yaml +0 -8
  61. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/config/licenses.yaml +0 -25
  62. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/config/services.yaml +0 -40
  63. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/alternative-styles.feature +0 -24
  64. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/badger.feature +0 -50
  65. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/heroku-only-remote.feature +0 -12
  66. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/licenses.feature +0 -61
  67. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/multiple-remotes.feature +0 -18
  68. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/png.feature +0 -17
  69. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/pulls-and-issues.feature +0 -19
  70. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/remote-with-different-name.feature +0 -17
  71. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/rubygems.feature +0 -46
  72. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/services.feature +0 -53
  73. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/size.feature +0 -18
  74. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/ssh-remote.feature +0 -39
  75. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/step_definitions/badger_steps.rb +0 -11
  76. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/support/env.rb +0 -11
  77. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/support/fixtures/licenses/apache.txt +0 -202
  78. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/support/fixtures/licenses/doge.md +0 -1
  79. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/support/fixtures/licenses/gpl-2.0.txt +0 -339
  80. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/support/fixtures/licenses/gpl-3.0.txt +0 -674
  81. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/support/fixtures/licenses/mit.md +0 -22
  82. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/support/hooks/hooks.rb +0 -15
  83. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/support/hooks/licenses.rb +0 -19
  84. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/support/hooks/rubygems.rb +0 -66
  85. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/features/support/hooks/services.rb +0 -17
  86. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/lib/badger.rb +0 -15
  87. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/lib/badger/badge.rb +0 -20
  88. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/lib/badger/badger.rb +0 -61
  89. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/lib/badger/bonus.rb +0 -17
  90. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/lib/badger/cli.rb +0 -56
  91. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/lib/badger/config.rb +0 -49
  92. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/lib/badger/helpers.rb +0 -95
  93. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/lib/badger/license.rb +0 -22
  94. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/lib/badger/rubygem.rb +0 -16
  95. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/lib/badger/service.rb +0 -46
  96. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/lib/badger/version.rb +0 -3
  97. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/spec/badge_types_spec.rb +0 -27
  98. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/spec/badger_spec.rb +0 -62
  99. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/spec/licenses_spec.rb +0 -42
  100. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/spec/services_spec.rb +0 -33
  101. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/spec/size_spec.rb +0 -20
  102. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/spec/spec_helper.rb +0 -22
  103. data/vendor/cache/ruby/2.2.0/gems/badgerbadgerbadger-0.14.0/spec/user_and_repo_spec.rb +0 -33
  104. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/.autotest +0 -3
  105. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/.gemtest +0 -0
  106. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/.hoerc +0 -2
  107. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/.rspec +0 -2
  108. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/.travis.yml +0 -22
  109. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/Contributing.rdoc +0 -64
  110. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/Gemfile +0 -20
  111. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/History.rdoc +0 -152
  112. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/License.rdoc +0 -39
  113. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/Manifest.txt +0 -38
  114. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/README.rdoc +0 -85
  115. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/Rakefile +0 -41
  116. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/autotest/discover.rb +0 -1
  117. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/bin/htmldiff +0 -32
  118. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/bin/ldiff +0 -6
  119. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/docs/COPYING.txt +0 -339
  120. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/docs/artistic.txt +0 -127
  121. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/lib/diff-lcs.rb +0 -3
  122. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/lib/diff/lcs.rb +0 -805
  123. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/lib/diff/lcs/array.rb +0 -7
  124. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/lib/diff/lcs/block.rb +0 -37
  125. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/lib/diff/lcs/callbacks.rb +0 -322
  126. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/lib/diff/lcs/change.rb +0 -177
  127. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/lib/diff/lcs/htmldiff.rb +0 -149
  128. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/lib/diff/lcs/hunk.rb +0 -276
  129. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/lib/diff/lcs/internals.rb +0 -301
  130. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/lib/diff/lcs/ldiff.rb +0 -195
  131. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/lib/diff/lcs/string.rb +0 -5
  132. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/spec/change_spec.rb +0 -65
  133. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/spec/diff_spec.rb +0 -47
  134. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/spec/hunk_spec.rb +0 -72
  135. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/spec/issues_spec.rb +0 -24
  136. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/spec/lcs_spec.rb +0 -54
  137. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/spec/patch_spec.rb +0 -414
  138. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/spec/sdiff_spec.rb +0 -214
  139. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/spec/spec_helper.rb +0 -290
  140. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/spec/traverse_balanced_spec.rb +0 -310
  141. data/vendor/cache/ruby/2.2.0/gems/diff-lcs-1.2.5/spec/traverse_sequences_spec.rb +0 -139
  142. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/.gitignore +0 -9
  143. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/.rspec +0 -2
  144. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/.ruby-gemset +0 -1
  145. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/.ruby-version +0 -1
  146. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/.travis.yml +0 -21
  147. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/.yardopts +0 -7
  148. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/Gemfile +0 -4
  149. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/HISTORY.md +0 -61
  150. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/LICENSE +0 -21
  151. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/README.md +0 -241
  152. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/Rakefile +0 -28
  153. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/docile.gemspec +0 -43
  154. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/lib/docile.rb +0 -84
  155. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/lib/docile/chaining_fallback_context_proxy.rb +0 -20
  156. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/lib/docile/execution.rb +0 -35
  157. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/lib/docile/fallback_context_proxy.rb +0 -63
  158. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/lib/docile/version.rb +0 -4
  159. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/on_what.rb +0 -14
  160. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/spec/docile_spec.rb +0 -339
  161. data/vendor/cache/ruby/2.2.0/gems/docile-1.1.5/spec/spec_helper.rb +0 -30
  162. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/CHANGELOG +0 -84
  163. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/LICENSE +0 -21
  164. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/README.md +0 -297
  165. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/VERSION +0 -2
  166. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git.rb +0 -166
  167. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/author.rb +0 -14
  168. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/base.rb +0 -540
  169. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/base/factory.rb +0 -75
  170. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/branch.rb +0 -122
  171. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/branches.rb +0 -71
  172. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/config.rb +0 -22
  173. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/diff.rb +0 -158
  174. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/index.rb +0 -5
  175. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/lib.rb +0 -1011
  176. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/log.rb +0 -128
  177. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/object.rb +0 -312
  178. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/path.rb +0 -31
  179. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/remote.rb +0 -36
  180. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/repository.rb +0 -6
  181. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/stash.rb +0 -27
  182. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/stashes.rb +0 -44
  183. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/status.rb +0 -117
  184. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/version.rb +0 -7
  185. data/vendor/cache/ruby/2.2.0/gems/git-1.3.0/lib/git/working_directory.rb +0 -4
  186. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/.gitignore +0 -16
  187. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/.travis.yml +0 -26
  188. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/CHANGES +0 -295
  189. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/COPYING +0 -58
  190. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/COPYING-json-jruby +0 -57
  191. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/GPL +0 -340
  192. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/Gemfile +0 -10
  193. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/README-json-jruby.markdown +0 -33
  194. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/README.rdoc +0 -358
  195. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/Rakefile +0 -412
  196. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/TODO +0 -1
  197. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/VERSION +0 -1
  198. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/data/example.json +0 -1
  199. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/data/index.html +0 -38
  200. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/data/prototype.js +0 -4184
  201. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/diagrams/.keep +0 -0
  202. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/ext/json/ext/fbuffer/fbuffer.h +0 -190
  203. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/ext/json/ext/generator/.RUBYARCHDIR.-.json.-.ext.time +0 -0
  204. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/ext/json/ext/generator/depend +0 -1
  205. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/ext/json/ext/generator/extconf.rb +0 -4
  206. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/ext/json/ext/generator/generator.c +0 -1458
  207. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/ext/json/ext/generator/generator.h +0 -166
  208. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/ext/json/ext/generator/generator.so +0 -0
  209. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/ext/json/ext/parser/.RUBYARCHDIR.-.json.-.ext.time +0 -0
  210. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/ext/json/ext/parser/depend +0 -1
  211. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/ext/json/ext/parser/extconf.rb +0 -3
  212. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/ext/json/ext/parser/parser.c +0 -2216
  213. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/ext/json/ext/parser/parser.h +0 -92
  214. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/ext/json/ext/parser/parser.rl +0 -939
  215. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/ext/json/ext/parser/parser.so +0 -0
  216. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/ext/json/extconf.rb +0 -3
  217. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/install.rb +0 -23
  218. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/java/src/json/ext/ByteListTranscoder.java +0 -167
  219. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/java/src/json/ext/Generator.java +0 -444
  220. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/java/src/json/ext/GeneratorMethods.java +0 -232
  221. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/java/src/json/ext/GeneratorService.java +0 -43
  222. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/java/src/json/ext/GeneratorState.java +0 -543
  223. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/java/src/json/ext/OptionsReader.java +0 -114
  224. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/java/src/json/ext/Parser.java +0 -2645
  225. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/java/src/json/ext/Parser.rl +0 -969
  226. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/java/src/json/ext/ParserService.java +0 -35
  227. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/java/src/json/ext/RuntimeInfo.java +0 -121
  228. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/java/src/json/ext/StringDecoder.java +0 -167
  229. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/java/src/json/ext/StringEncoder.java +0 -106
  230. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/java/src/json/ext/Utils.java +0 -89
  231. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/json-java.gemspec +0 -23
  232. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/json.gemspec +0 -0
  233. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/json_pure.gemspec +0 -40
  234. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json.rb +0 -62
  235. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/add/bigdecimal.rb +0 -28
  236. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/add/complex.rb +0 -28
  237. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/add/core.rb +0 -11
  238. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/add/date.rb +0 -34
  239. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/add/date_time.rb +0 -50
  240. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/add/exception.rb +0 -31
  241. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/add/ostruct.rb +0 -31
  242. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/add/range.rb +0 -29
  243. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/add/rational.rb +0 -27
  244. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/add/regexp.rb +0 -30
  245. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/add/struct.rb +0 -30
  246. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/add/symbol.rb +0 -25
  247. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/add/time.rb +0 -38
  248. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/common.rb +0 -484
  249. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/ext.rb +0 -21
  250. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/ext/.keep +0 -0
  251. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/ext/generator.so +0 -0
  252. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/ext/parser.so +0 -0
  253. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/generic_object.rb +0 -70
  254. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/pure.rb +0 -21
  255. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/pure/generator.rb +0 -522
  256. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/pure/parser.rb +0 -359
  257. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/lib/json/version.rb +0 -8
  258. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail1.json +0 -1
  259. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail10.json +0 -1
  260. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail11.json +0 -1
  261. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail12.json +0 -1
  262. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail13.json +0 -1
  263. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail14.json +0 -1
  264. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail18.json +0 -1
  265. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail19.json +0 -1
  266. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail2.json +0 -1
  267. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail20.json +0 -1
  268. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail21.json +0 -1
  269. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail22.json +0 -1
  270. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail23.json +0 -1
  271. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail24.json +0 -1
  272. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail25.json +0 -1
  273. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail27.json +0 -2
  274. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail28.json +0 -2
  275. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail3.json +0 -1
  276. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail4.json +0 -1
  277. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail5.json +0 -1
  278. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail6.json +0 -1
  279. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail7.json +0 -1
  280. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail8.json +0 -1
  281. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/fail9.json +0 -1
  282. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/pass1.json +0 -56
  283. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/pass15.json +0 -1
  284. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/pass16.json +0 -1
  285. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/pass17.json +0 -1
  286. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/pass2.json +0 -1
  287. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/pass26.json +0 -1
  288. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/fixtures/pass3.json +0 -6
  289. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/setup_variant.rb +0 -11
  290. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/test_json.rb +0 -553
  291. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/test_json_addition.rb +0 -196
  292. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/test_json_encoding.rb +0 -65
  293. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/test_json_fixtures.rb +0 -35
  294. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/test_json_generate.rb +0 -337
  295. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/test_json_generic_object.rb +0 -75
  296. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/test_json_string_matching.rb +0 -39
  297. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tests/test_json_unicode.rb +0 -72
  298. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tools/fuzz.rb +0 -139
  299. data/vendor/cache/ruby/2.2.0/gems/json-1.8.3/tools/server.rb +0 -62
  300. data/vendor/cache/ruby/2.2.0/gems/rspec-3.4.0/LICENSE.md +0 -27
  301. data/vendor/cache/ruby/2.2.0/gems/rspec-3.4.0/README.md +0 -39
  302. data/vendor/cache/ruby/2.2.0/gems/rspec-3.4.0/lib/rspec.rb +0 -3
  303. data/vendor/cache/ruby/2.2.0/gems/rspec-3.4.0/lib/rspec/version.rb +0 -5
  304. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/.document +0 -5
  305. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/.yardopts +0 -8
  306. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/Changelog.md +0 -1925
  307. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/LICENSE.md +0 -26
  308. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/README.md +0 -384
  309. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/exe/rspec +0 -4
  310. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/autorun.rb +0 -3
  311. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core.rb +0 -181
  312. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/backtrace_formatter.rb +0 -64
  313. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/bisect/coordinator.rb +0 -66
  314. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/bisect/example_minimizer.rb +0 -169
  315. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/bisect/runner.rb +0 -139
  316. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/bisect/server.rb +0 -61
  317. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/configuration.rb +0 -1869
  318. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/configuration_options.rb +0 -191
  319. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/drb.rb +0 -111
  320. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/dsl.rb +0 -96
  321. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/example.rb +0 -620
  322. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/example_group.rb +0 -816
  323. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/example_status_persister.rb +0 -235
  324. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/filter_manager.rb +0 -231
  325. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/flat_map.rb +0 -20
  326. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters.rb +0 -255
  327. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/base_formatter.rb +0 -70
  328. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/base_text_formatter.rb +0 -77
  329. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/bisect_formatter.rb +0 -68
  330. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/bisect_progress_formatter.rb +0 -144
  331. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/console_codes.rb +0 -65
  332. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/deprecation_formatter.rb +0 -223
  333. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/documentation_formatter.rb +0 -70
  334. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/exception_presenter.rb +0 -480
  335. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/fallback_message_formatter.rb +0 -28
  336. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/helpers.rb +0 -109
  337. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/html_formatter.rb +0 -151
  338. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/html_printer.rb +0 -414
  339. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/html_snippet_extractor.rb +0 -116
  340. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/json_formatter.rb +0 -96
  341. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/profile_formatter.rb +0 -68
  342. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/progress_formatter.rb +0 -28
  343. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/protocol.rb +0 -181
  344. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/formatters/snippet_extractor.rb +0 -143
  345. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/hooks.rb +0 -638
  346. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/memoized_helpers.rb +0 -532
  347. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/metadata.rb +0 -491
  348. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/metadata_filter.rb +0 -240
  349. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/minitest_assertions_adapter.rb +0 -31
  350. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/mocking_adapters/flexmock.rb +0 -31
  351. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/mocking_adapters/mocha.rb +0 -57
  352. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/mocking_adapters/null.rb +0 -14
  353. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/mocking_adapters/rr.rb +0 -31
  354. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/mocking_adapters/rspec.rb +0 -32
  355. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/notifications.rb +0 -499
  356. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/option_parser.rb +0 -319
  357. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/ordering.rb +0 -158
  358. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/pending.rb +0 -165
  359. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/profiler.rb +0 -32
  360. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/project_initializer.rb +0 -48
  361. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/project_initializer/.rspec +0 -2
  362. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/project_initializer/spec/spec_helper.rb +0 -96
  363. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/rake_task.rb +0 -167
  364. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/reporter.rb +0 -236
  365. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/ruby_project.rb +0 -53
  366. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/runner.rb +0 -179
  367. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/sandbox.rb +0 -37
  368. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/set.rb +0 -49
  369. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/shared_context.rb +0 -55
  370. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/shared_example_group.rb +0 -212
  371. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/shell_escape.rb +0 -49
  372. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/source.rb +0 -76
  373. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/source/location.rb +0 -13
  374. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/source/node.rb +0 -93
  375. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/source/syntax_highlighter.rb +0 -71
  376. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/source/token.rb +0 -43
  377. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/test_unit_assertions_adapter.rb +0 -30
  378. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/version.rb +0 -9
  379. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/warnings.rb +0 -40
  380. data/vendor/cache/ruby/2.2.0/gems/rspec-core-3.4.0/lib/rspec/core/world.rb +0 -197
  381. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/.document +0 -5
  382. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/.yardopts +0 -6
  383. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/Changelog.md +0 -979
  384. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/LICENSE.md +0 -25
  385. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/README.md +0 -303
  386. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/expectations.rb +0 -81
  387. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/expectations/configuration.rb +0 -164
  388. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/expectations/expectation_target.rb +0 -113
  389. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/expectations/fail_with.rb +0 -31
  390. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/expectations/failure_aggregator.rb +0 -194
  391. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/expectations/handler.rb +0 -170
  392. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/expectations/minitest_integration.rb +0 -31
  393. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/expectations/syntax.rb +0 -132
  394. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/expectations/version.rb +0 -8
  395. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers.rb +0 -1037
  396. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/aliased_matcher.rb +0 -116
  397. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in.rb +0 -52
  398. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/all.rb +0 -85
  399. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/base_matcher.rb +0 -181
  400. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/be.rb +0 -285
  401. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/be_between.rb +0 -77
  402. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/be_instance_of.rb +0 -22
  403. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/be_kind_of.rb +0 -16
  404. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/be_within.rb +0 -72
  405. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/change.rb +0 -354
  406. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/compound.rb +0 -272
  407. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/contain_exactly.rb +0 -286
  408. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/cover.rb +0 -24
  409. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/eq.rb +0 -40
  410. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/eql.rb +0 -34
  411. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/equal.rb +0 -81
  412. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/exist.rb +0 -86
  413. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/has.rb +0 -103
  414. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/have_attributes.rb +0 -114
  415. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/include.rb +0 -130
  416. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/match.rb +0 -106
  417. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/operators.rb +0 -128
  418. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/output.rb +0 -200
  419. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/raise_error.rb +0 -228
  420. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/respond_to.rb +0 -90
  421. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/satisfy.rb +0 -37
  422. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/start_or_end_with.rb +0 -94
  423. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/throw_symbol.rb +0 -132
  424. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/yield.rb +0 -419
  425. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/composable.rb +0 -185
  426. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/dsl.rb +0 -453
  427. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/english_phrasing.rb +0 -42
  428. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +0 -73
  429. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/fail_matchers.rb +0 -42
  430. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/generated_descriptions.rb +0 -42
  431. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/matcher_delegator.rb +0 -35
  432. data/vendor/cache/ruby/2.2.0/gems/rspec-expectations-3.4.0/lib/rspec/matchers/matcher_protocol.rb +0 -99
  433. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/.gitignore +0 -19
  434. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/.rspec +0 -3
  435. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/.travis.yml +0 -24
  436. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/Changelog.md +0 -49
  437. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/Gemfile +0 -26
  438. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/LICENSE.txt +0 -27
  439. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/README.md +0 -72
  440. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/Rakefile +0 -16
  441. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/cucumber.yml +0 -2
  442. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/features/its.feature +0 -125
  443. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/features/step_definitions/additional_cli_steps.rb +0 -21
  444. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/features/support/env.rb +0 -23
  445. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/lib/rspec/its.rb +0 -149
  446. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/lib/rspec/its/version.rb +0 -5
  447. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/rspec-its.gemspec +0 -28
  448. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/script/test_all +0 -20
  449. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/spec/rspec/its_spec.rb +0 -237
  450. data/vendor/cache/ruby/2.2.0/gems/rspec-its-1.2.0/spec/spec_helper.rb +0 -15
  451. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/.document +0 -5
  452. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/.yardopts +0 -6
  453. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/Changelog.md +0 -984
  454. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/LICENSE.md +0 -25
  455. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/README.md +0 -445
  456. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks.rb +0 -126
  457. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/any_instance.rb +0 -11
  458. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/any_instance/chain.rb +0 -110
  459. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/any_instance/error_generator.rb +0 -31
  460. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/any_instance/expect_chain_chain.rb +0 -35
  461. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/any_instance/expectation_chain.rb +0 -48
  462. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/any_instance/message_chains.rb +0 -83
  463. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/any_instance/proxy.rb +0 -116
  464. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/any_instance/recorder.rb +0 -264
  465. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/any_instance/stub_chain.rb +0 -46
  466. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/any_instance/stub_chain_chain.rb +0 -27
  467. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/argument_list_matcher.rb +0 -100
  468. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/argument_matchers.rb +0 -320
  469. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/configuration.rb +0 -205
  470. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/error_generator.rb +0 -367
  471. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/example_methods.rb +0 -422
  472. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/instance_method_stasher.rb +0 -134
  473. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/marshal_extension.rb +0 -41
  474. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/matchers/expectation_customization.rb +0 -20
  475. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/matchers/have_received.rb +0 -128
  476. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/matchers/receive.rb +0 -130
  477. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/matchers/receive_message_chain.rb +0 -80
  478. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/matchers/receive_messages.rb +0 -75
  479. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/message_chain.rb +0 -87
  480. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/message_expectation.rb +0 -717
  481. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/method_double.rb +0 -287
  482. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/method_reference.rb +0 -192
  483. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/mutate_const.rb +0 -335
  484. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/object_reference.rb +0 -149
  485. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/order_group.rb +0 -81
  486. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/proxy.rb +0 -484
  487. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/space.rb +0 -238
  488. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/standalone.rb +0 -3
  489. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/syntax.rb +0 -325
  490. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/targets.rb +0 -97
  491. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/test_double.rb +0 -170
  492. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/verifying_double.rb +0 -129
  493. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/verifying_message_expectation.rb +0 -54
  494. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/verifying_proxy.rb +0 -213
  495. data/vendor/cache/ruby/2.2.0/gems/rspec-mocks-3.4.0/lib/rspec/mocks/version.rb +0 -9
  496. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/Changelog.md +0 -141
  497. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/LICENSE.md +0 -23
  498. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/README.md +0 -40
  499. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support.rb +0 -139
  500. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/caller_filter.rb +0 -83
  501. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/comparable_version.rb +0 -46
  502. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/differ.rb +0 -215
  503. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/directory_maker.rb +0 -63
  504. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/encoded_string.rb +0 -155
  505. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/fuzzy_matcher.rb +0 -48
  506. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/hunk_generator.rb +0 -47
  507. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/matcher_definition.rb +0 -42
  508. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/method_signature_verifier.rb +0 -290
  509. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/mutex.rb +0 -73
  510. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/object_formatter.rb +0 -108
  511. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/recursive_const_methods.rb +0 -76
  512. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/reentrant_mutex.rb +0 -53
  513. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/ruby_features.rb +0 -147
  514. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/spec.rb +0 -81
  515. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/spec/deprecation_helpers.rb +0 -64
  516. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/spec/formatting_support.rb +0 -9
  517. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/spec/in_sub_process.rb +0 -52
  518. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/spec/library_wide_checks.rb +0 -152
  519. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/spec/shell_out.rb +0 -71
  520. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/spec/stderr_splitter.rb +0 -63
  521. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/spec/string_matcher.rb +0 -46
  522. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/spec/with_isolated_directory.rb +0 -9
  523. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/spec/with_isolated_stderr.rb +0 -13
  524. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/version.rb +0 -7
  525. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/version_checker.rb +0 -53
  526. data/vendor/cache/ruby/2.2.0/gems/rspec-support-3.4.0/lib/rspec/support/warnings.rb +0 -39
  527. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/.gitignore +0 -31
  528. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/.rspec +0 -3
  529. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/.rubocop.yml +0 -73
  530. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/.travis.yml +0 -27
  531. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/.yardopts +0 -1
  532. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/CHANGELOG.md +0 -391
  533. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/CONTRIBUTING.md +0 -48
  534. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/Gemfile +0 -34
  535. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/MIT-LICENSE +0 -20
  536. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/README.md +0 -646
  537. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/Rakefile +0 -36
  538. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/cucumber.yml +0 -13
  539. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/doc/alternate-formatters.md +0 -36
  540. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/doc/commercial-services.md +0 -20
  541. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/doc/editor-integration.md +0 -13
  542. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/config_autoload.feature +0 -46
  543. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/config_command_name.feature +0 -45
  544. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/config_coverage_dir.feature +0 -33
  545. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/config_deactivate_merging.feature +0 -42
  546. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/config_formatters.feature +0 -77
  547. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/config_merge_timeout.feature +0 -39
  548. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/config_nocov_token.feature +0 -79
  549. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/config_profiles.feature +0 -44
  550. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/config_project_name.feature +0 -27
  551. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/config_styles.feature +0 -121
  552. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/config_tracked_files.feature +0 -29
  553. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/cucumber_basic.feature +0 -29
  554. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/maximum_coverage_drop.feature +0 -36
  555. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/merging_test_unit_and_rspec.feature +0 -44
  556. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/minimum_coverage.feature +0 -59
  557. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/refuse_coverage_drop.feature +0 -35
  558. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/rspec_basic.feature +0 -32
  559. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/rspec_fails_on_initialization.feature +0 -14
  560. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/rspec_groups_and_filters_basic.feature +0 -29
  561. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/rspec_groups_and_filters_complex.feature +0 -37
  562. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/rspec_groups_using_filter_class.feature +0 -41
  563. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/rspec_without_simplecov.feature +0 -20
  564. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/skipping_code_blocks_manually.feature +0 -70
  565. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/step_definitions/html_steps.rb +0 -44
  566. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/step_definitions/simplecov_steps.rb +0 -68
  567. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/step_definitions/transformers.rb +0 -13
  568. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/step_definitions/web_steps.rb +0 -64
  569. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/support/env.rb +0 -50
  570. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/test_unit_basic.feature +0 -34
  571. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/test_unit_groups_and_filters_basic.feature +0 -29
  572. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/test_unit_groups_and_filters_complex.feature +0 -35
  573. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/test_unit_groups_using_filter_class.feature +0 -40
  574. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/test_unit_without_simplecov.feature +0 -20
  575. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/features/unicode_compatiblity.feature +0 -67
  576. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov.rb +0 -183
  577. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/command_guesser.rb +0 -59
  578. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/configuration.rb +0 -296
  579. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/defaults.rb +0 -122
  580. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/exit_codes.rb +0 -8
  581. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/file_list.rb +0 -59
  582. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/filter.rb +0 -54
  583. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/formatter.rb +0 -8
  584. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/formatter/multi_formatter.rb +0 -32
  585. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/formatter/simple_formatter.rb +0 -23
  586. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/jruby_fix.rb +0 -42
  587. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/last_run.rb +0 -22
  588. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/merge_helpers.rb +0 -35
  589. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/no_defaults.rb +0 -2
  590. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/profiles.rb +0 -31
  591. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/railtie.rb +0 -7
  592. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/railties/tasks.rake +0 -11
  593. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/result.rb +0 -82
  594. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/result_merger.rb +0 -88
  595. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/source_file.rb +0 -190
  596. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/lib/simplecov/version.rb +0 -25
  597. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/simplecov.gemspec +0 -27
  598. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/1_8_fallbacks_spec.rb +0 -29
  599. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/command_guesser_spec.rb +0 -46
  600. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/deleted_source_spec.rb +0 -12
  601. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/Gemfile +0 -6
  602. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/Rakefile +0 -8
  603. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/cucumber.yml +0 -13
  604. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/features/step_definitions/my_steps.rb +0 -22
  605. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/features/support/env.rb +0 -12
  606. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/features/test_stuff.feature +0 -6
  607. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/lib/faked_project.rb +0 -11
  608. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/lib/faked_project/framework_specific.rb +0 -18
  609. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/lib/faked_project/meta_magic.rb +0 -24
  610. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/lib/faked_project/some_class.rb +0 -28
  611. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/lib/faked_project/untested_class.rb +0 -11
  612. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/spec/faked_spec.rb +0 -11
  613. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/spec/forking_spec.rb +0 -7
  614. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/spec/meta_magic_spec.rb +0 -15
  615. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/spec/some_class_spec.rb +0 -13
  616. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/spec/spec_helper.rb +0 -11
  617. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/test/faked_test.rb +0 -11
  618. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/test/meta_magic_test.rb +0 -13
  619. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/test/some_class_test.rb +0 -15
  620. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/faked_project/test/test_helper.rb +0 -12
  621. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/file_list_spec.rb +0 -48
  622. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/filters_spec.rb +0 -96
  623. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/fixtures/app/controllers/sample_controller.rb +0 -10
  624. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/fixtures/app/models/user.rb +0 -10
  625. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/fixtures/deleted_source_sample.rb +0 -15
  626. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/fixtures/frameworks/rspec_bad.rb +0 -9
  627. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/fixtures/frameworks/rspec_good.rb +0 -9
  628. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/fixtures/frameworks/testunit_bad.rb +0 -9
  629. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/fixtures/frameworks/testunit_good.rb +0 -9
  630. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/fixtures/iso-8859.rb +0 -3
  631. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/fixtures/resultset1.rb +0 -4
  632. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/fixtures/resultset2.rb +0 -4
  633. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/fixtures/sample.rb +0 -16
  634. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/fixtures/utf-8.rb +0 -3
  635. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/helper.rb +0 -24
  636. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/merge_helpers_spec.rb +0 -108
  637. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/multi_formatter_spec.rb +0 -20
  638. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/result_spec.rb +0 -207
  639. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/return_codes_spec.rb +0 -37
  640. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/source_file_line_spec.rb +0 -153
  641. data/vendor/cache/ruby/2.2.0/gems/simplecov-0.11.2/spec/source_file_spec.rb +0 -75
  642. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/.document +0 -5
  643. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/.gitignore +0 -27
  644. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/.rubocop.yml +0 -50
  645. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/.travis.yml +0 -27
  646. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/Gemfile +0 -22
  647. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/Guardfile +0 -12
  648. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/LICENSE +0 -20
  649. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/README.md +0 -30
  650. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/Rakefile +0 -41
  651. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/assets/javascripts/application.js +0 -127
  652. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/assets/javascripts/libraries/jquery-1.6.2.min.js +0 -18
  653. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/assets/javascripts/plugins/highlight.pack.js +0 -1
  654. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/assets/javascripts/plugins/jquery.colorbox.js +0 -1090
  655. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/assets/javascripts/plugins/jquery.dataTables.min.js +0 -152
  656. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/assets/javascripts/plugins/jquery.timeago.js +0 -141
  657. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/assets/javascripts/plugins/jquery.url.js +0 -174
  658. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/assets/stylesheets/application.css +0 -3
  659. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/assets/stylesheets/plugins/highlight.css +0 -129
  660. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/assets/stylesheets/plugins/jquery-ui-1.8.4.custom.css +0 -295
  661. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/assets/stylesheets/plugins/jquery.colorbox.css +0 -52
  662. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/assets/stylesheets/reset.css +0 -103
  663. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/assets/stylesheets/screen.css.sass +0 -220
  664. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/lib/simplecov-html.rb +0 -110
  665. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/lib/simplecov-html/version.rb +0 -27
  666. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/application.css +0 -799
  667. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/application.js +0 -1707
  668. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/colorbox/border.png +0 -0
  669. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/colorbox/controls.png +0 -0
  670. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/colorbox/loading.gif +0 -0
  671. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/colorbox/loading_background.png +0 -0
  672. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/favicon_green.png +0 -0
  673. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/favicon_red.png +0 -0
  674. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/favicon_yellow.png +0 -0
  675. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/loading.gif +0 -0
  676. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/magnify.png +0 -0
  677. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  678. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  679. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  680. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  681. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  682. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  683. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  684. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  685. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/smoothness/images/ui-icons_222222_256x240.png +0 -0
  686. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  687. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/smoothness/images/ui-icons_454545_256x240.png +0 -0
  688. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/smoothness/images/ui-icons_888888_256x240.png +0 -0
  689. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/public/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  690. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/simplecov-html.gemspec +0 -22
  691. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/test/helper.rb +0 -4
  692. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/test/test_simple_cov-html.rb +0 -8
  693. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/views/file_list.erb +0 -45
  694. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/views/layout.erb +0 -41
  695. data/vendor/cache/ruby/2.2.0/gems/simplecov-html-0.10.0/views/source_file.erb +0 -23
  696. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/.document +0 -5
  697. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/CHANGELOG.md +0 -139
  698. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/LICENSE.md +0 -20
  699. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/README.md +0 -41
  700. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/Thorfile +0 -29
  701. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/bin/thor +0 -6
  702. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor.rb +0 -484
  703. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/actions.rb +0 -319
  704. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/actions/create_file.rb +0 -103
  705. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/actions/create_link.rb +0 -59
  706. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/actions/directory.rb +0 -118
  707. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/actions/empty_directory.rb +0 -135
  708. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/actions/file_manipulation.rb +0 -316
  709. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/actions/inject_into_file.rb +0 -107
  710. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/base.rb +0 -656
  711. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/command.rb +0 -133
  712. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/core_ext/hash_with_indifferent_access.rb +0 -77
  713. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/core_ext/io_binary_read.rb +0 -10
  714. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/core_ext/ordered_hash.rb +0 -98
  715. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/error.rb +0 -32
  716. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/group.rb +0 -281
  717. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/invocation.rb +0 -178
  718. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/line_editor.rb +0 -17
  719. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/line_editor/basic.rb +0 -35
  720. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/line_editor/readline.rb +0 -88
  721. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/parser.rb +0 -4
  722. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/parser/argument.rb +0 -73
  723. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/parser/arguments.rb +0 -175
  724. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/parser/option.rb +0 -125
  725. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/parser/options.rb +0 -218
  726. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/rake_compat.rb +0 -71
  727. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/runner.rb +0 -322
  728. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/shell.rb +0 -81
  729. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/shell/basic.rb +0 -421
  730. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/shell/color.rb +0 -149
  731. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/shell/html.rb +0 -126
  732. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/util.rb +0 -267
  733. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/lib/thor/version.rb +0 -3
  734. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/actions/create_file_spec.rb +0 -168
  735. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/actions/create_link_spec.rb +0 -96
  736. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/actions/directory_spec.rb +0 -169
  737. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/actions/empty_directory_spec.rb +0 -129
  738. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/actions/file_manipulation_spec.rb +0 -392
  739. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/actions/inject_into_file_spec.rb +0 -135
  740. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/actions_spec.rb +0 -331
  741. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/base_spec.rb +0 -298
  742. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/command_spec.rb +0 -79
  743. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/core_ext/hash_with_indifferent_access_spec.rb +0 -48
  744. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/core_ext/ordered_hash_spec.rb +0 -115
  745. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/exit_condition_spec.rb +0 -19
  746. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/application.rb +0 -2
  747. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/app{1}/README +0 -3
  748. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/bundle/execute.rb +0 -6
  749. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/bundle/main.thor +0 -1
  750. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/command.thor +0 -10
  751. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/doc/%file_name%.rb.tt +0 -1
  752. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/doc/COMMENTER +0 -11
  753. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/doc/README +0 -3
  754. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/doc/block_helper.rb +0 -3
  755. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/doc/config.rb +0 -1
  756. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/doc/config.yaml.tt +0 -1
  757. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/doc/excluding/%file_name%.rb.tt +0 -1
  758. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/enum.thor +0 -10
  759. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/group.thor +0 -128
  760. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/invoke.thor +0 -131
  761. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/path with spaces b/data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/path with → spaces +0 -0
  762. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/preserve/script.sh +0 -3
  763. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/script.thor +0 -220
  764. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/fixtures/subcommand.thor +0 -17
  765. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/group_spec.rb +0 -222
  766. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/helper.rb +0 -80
  767. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/invocation_spec.rb +0 -120
  768. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/line_editor/basic_spec.rb +0 -28
  769. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/line_editor/readline_spec.rb +0 -69
  770. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/line_editor_spec.rb +0 -43
  771. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/parser/argument_spec.rb +0 -53
  772. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/parser/arguments_spec.rb +0 -66
  773. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/parser/option_spec.rb +0 -210
  774. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/parser/options_spec.rb +0 -414
  775. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/quality_spec.rb +0 -75
  776. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/rake_compat_spec.rb +0 -72
  777. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/register_spec.rb +0 -227
  778. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/runner_spec.rb +0 -246
  779. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/application.rb +0 -2
  780. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/app{1}/README +0 -3
  781. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/bundle/execute.rb +0 -6
  782. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/bundle/main.thor +0 -1
  783. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/command.thor +0 -10
  784. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/doc/%file_name%.rb.tt +0 -1
  785. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/doc/COMMENTER +0 -11
  786. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/doc/README +0 -3
  787. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/doc/block_helper.rb +0 -3
  788. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/doc/config.rb +0 -1
  789. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/doc/config.yaml.tt +0 -1
  790. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/doc/excluding/%file_name%.rb.tt +0 -1
  791. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/enum.thor +0 -10
  792. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/group.thor +0 -128
  793. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/invoke.thor +0 -131
  794. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/path with spaces b/data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/path with → spaces +0 -0
  795. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/preserve/script.sh +0 -3
  796. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/script.thor +0 -220
  797. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/sandbox/subcommand.thor +0 -17
  798. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/shell/basic_spec.rb +0 -337
  799. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/shell/color_spec.rb +0 -119
  800. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/shell/html_spec.rb +0 -31
  801. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/shell_spec.rb +0 -47
  802. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/subcommand_spec.rb +0 -48
  803. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/thor_spec.rb +0 -505
  804. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/spec/util_spec.rb +0 -196
  805. data/vendor/cache/ruby/2.2.0/gems/thor-0.19.1/thor.gemspec +0 -24
  806. data/vendor/cache/ruby/2.2.0/specifications/badgerbadgerbadger-0.14.0.gemspec +0 -70
  807. data/vendor/cache/ruby/2.2.0/specifications/diff-lcs-1.2.5.gemspec +0 -68
  808. data/vendor/cache/ruby/2.2.0/specifications/docile-1.1.5.gemspec +0 -48
  809. data/vendor/cache/ruby/2.2.0/specifications/git-1.3.0.gemspec +0 -42
  810. data/vendor/cache/ruby/2.2.0/specifications/json-1.8.3.gemspec +0 -0
  811. data/vendor/cache/ruby/2.2.0/specifications/rspec-3.4.0.gemspec +0 -42
  812. data/vendor/cache/ruby/2.2.0/specifications/rspec-core-3.4.0.gemspec +0 -68
  813. data/vendor/cache/ruby/2.2.0/specifications/rspec-expectations-3.4.0.gemspec +0 -50
  814. data/vendor/cache/ruby/2.2.0/specifications/rspec-its-1.2.0.gemspec +0 -47
  815. data/vendor/cache/ruby/2.2.0/specifications/rspec-mocks-3.4.0.gemspec +0 -50
  816. data/vendor/cache/ruby/2.2.0/specifications/rspec-support-3.4.0.gemspec +0 -41
  817. data/vendor/cache/ruby/2.2.0/specifications/simplecov-0.11.2.gemspec +0 -42
  818. data/vendor/cache/ruby/2.2.0/specifications/simplecov-html-0.10.0.gemspec +0 -33
  819. data/vendor/cache/ruby/2.2.0/specifications/thor-0.19.1.gemspec +0 -34
  820. data/vendor/cache/simplecov-0.11.2.gem +0 -0
  821. data/vendor/cache/simplecov-html-0.10.0.gem +0 -0
@@ -1,190 +0,0 @@
1
-
2
- #ifndef _FBUFFER_H_
3
- #define _FBUFFER_H_
4
-
5
- #include "ruby.h"
6
-
7
- #ifndef RHASH_SIZE
8
- #define RHASH_SIZE(hsh) (RHASH(hsh)->tbl->num_entries)
9
- #endif
10
-
11
- #ifndef RFLOAT_VALUE
12
- #define RFLOAT_VALUE(val) (RFLOAT(val)->value)
13
- #endif
14
-
15
- #ifndef RARRAY_PTR
16
- #define RARRAY_PTR(ARRAY) RARRAY(ARRAY)->ptr
17
- #endif
18
- #ifndef RARRAY_LEN
19
- #define RARRAY_LEN(ARRAY) RARRAY(ARRAY)->len
20
- #endif
21
- #ifndef RSTRING_PTR
22
- #define RSTRING_PTR(string) RSTRING(string)->ptr
23
- #endif
24
- #ifndef RSTRING_LEN
25
- #define RSTRING_LEN(string) RSTRING(string)->len
26
- #endif
27
-
28
- #ifdef PRIsVALUE
29
- # define RB_OBJ_CLASSNAME(obj) rb_obj_class(obj)
30
- # define RB_OBJ_STRING(obj) (obj)
31
- #else
32
- # define PRIsVALUE "s"
33
- # define RB_OBJ_CLASSNAME(obj) rb_obj_classname(obj)
34
- # define RB_OBJ_STRING(obj) StringValueCStr(obj)
35
- #endif
36
-
37
- #ifdef HAVE_RUBY_ENCODING_H
38
- #include "ruby/encoding.h"
39
- #define FORCE_UTF8(obj) rb_enc_associate((obj), rb_utf8_encoding())
40
- #else
41
- #define FORCE_UTF8(obj)
42
- #endif
43
-
44
- /* We don't need to guard objects for rbx, so let's do nothing at all. */
45
- #ifndef RB_GC_GUARD
46
- #define RB_GC_GUARD(object)
47
- #endif
48
-
49
- typedef struct FBufferStruct {
50
- unsigned long initial_length;
51
- char *ptr;
52
- unsigned long len;
53
- unsigned long capa;
54
- } FBuffer;
55
-
56
- #define FBUFFER_INITIAL_LENGTH_DEFAULT 1024
57
-
58
- #define FBUFFER_PTR(fb) (fb->ptr)
59
- #define FBUFFER_LEN(fb) (fb->len)
60
- #define FBUFFER_CAPA(fb) (fb->capa)
61
- #define FBUFFER_PAIR(fb) FBUFFER_PTR(fb), FBUFFER_LEN(fb)
62
-
63
- static FBuffer *fbuffer_alloc(unsigned long initial_length);
64
- static void fbuffer_free(FBuffer *fb);
65
- static void fbuffer_clear(FBuffer *fb);
66
- static void fbuffer_append(FBuffer *fb, const char *newstr, unsigned long len);
67
- #ifdef JSON_GENERATOR
68
- static void fbuffer_append_long(FBuffer *fb, long number);
69
- #endif
70
- static void fbuffer_append_char(FBuffer *fb, char newchr);
71
- #ifdef JSON_GENERATOR
72
- static FBuffer *fbuffer_dup(FBuffer *fb);
73
- static VALUE fbuffer_to_s(FBuffer *fb);
74
- #endif
75
-
76
- static FBuffer *fbuffer_alloc(unsigned long initial_length)
77
- {
78
- FBuffer *fb;
79
- if (initial_length <= 0) initial_length = FBUFFER_INITIAL_LENGTH_DEFAULT;
80
- fb = ALLOC(FBuffer);
81
- memset((void *) fb, 0, sizeof(FBuffer));
82
- fb->initial_length = initial_length;
83
- return fb;
84
- }
85
-
86
- static void fbuffer_free(FBuffer *fb)
87
- {
88
- if (fb->ptr) ruby_xfree(fb->ptr);
89
- ruby_xfree(fb);
90
- }
91
-
92
- static void fbuffer_clear(FBuffer *fb)
93
- {
94
- fb->len = 0;
95
- }
96
-
97
- static void fbuffer_inc_capa(FBuffer *fb, unsigned long requested)
98
- {
99
- unsigned long required;
100
-
101
- if (!fb->ptr) {
102
- fb->ptr = ALLOC_N(char, fb->initial_length);
103
- fb->capa = fb->initial_length;
104
- }
105
-
106
- for (required = fb->capa; requested > required - fb->len; required <<= 1);
107
-
108
- if (required > fb->capa) {
109
- REALLOC_N(fb->ptr, char, required);
110
- fb->capa = required;
111
- }
112
- }
113
-
114
- static void fbuffer_append(FBuffer *fb, const char *newstr, unsigned long len)
115
- {
116
- if (len > 0) {
117
- fbuffer_inc_capa(fb, len);
118
- MEMCPY(fb->ptr + fb->len, newstr, char, len);
119
- fb->len += len;
120
- }
121
- }
122
-
123
- #ifdef JSON_GENERATOR
124
- static void fbuffer_append_str(FBuffer *fb, VALUE str)
125
- {
126
- const char *newstr = StringValuePtr(str);
127
- unsigned long len = RSTRING_LEN(str);
128
-
129
- RB_GC_GUARD(str);
130
-
131
- fbuffer_append(fb, newstr, len);
132
- }
133
- #endif
134
-
135
- static void fbuffer_append_char(FBuffer *fb, char newchr)
136
- {
137
- fbuffer_inc_capa(fb, 1);
138
- *(fb->ptr + fb->len) = newchr;
139
- fb->len++;
140
- }
141
-
142
- #ifdef JSON_GENERATOR
143
- static void freverse(char *start, char *end)
144
- {
145
- char c;
146
-
147
- while (end > start) {
148
- c = *end, *end-- = *start, *start++ = c;
149
- }
150
- }
151
-
152
- static long fltoa(long number, char *buf)
153
- {
154
- static char digits[] = "0123456789";
155
- long sign = number;
156
- char* tmp = buf;
157
-
158
- if (sign < 0) number = -number;
159
- do *tmp++ = digits[number % 10]; while (number /= 10);
160
- if (sign < 0) *tmp++ = '-';
161
- freverse(buf, tmp - 1);
162
- return tmp - buf;
163
- }
164
-
165
- static void fbuffer_append_long(FBuffer *fb, long number)
166
- {
167
- char buf[20];
168
- unsigned long len = fltoa(number, buf);
169
- fbuffer_append(fb, buf, len);
170
- }
171
-
172
- static FBuffer *fbuffer_dup(FBuffer *fb)
173
- {
174
- unsigned long len = fb->len;
175
- FBuffer *result;
176
-
177
- result = fbuffer_alloc(len);
178
- fbuffer_append(result, FBUFFER_PAIR(fb));
179
- return result;
180
- }
181
-
182
- static VALUE fbuffer_to_s(FBuffer *fb)
183
- {
184
- VALUE result = rb_str_new(FBUFFER_PTR(fb), FBUFFER_LEN(fb));
185
- fbuffer_free(fb);
186
- FORCE_UTF8(result);
187
- return result;
188
- }
189
- #endif
190
- #endif
@@ -1 +0,0 @@
1
- generator.o: generator.c generator.h $(srcdir)/../fbuffer/fbuffer.h
@@ -1,4 +0,0 @@
1
- require 'mkmf'
2
-
3
- $defs << "-DJSON_GENERATOR"
4
- create_makefile 'json/ext/generator'
@@ -1,1458 +0,0 @@
1
- #include "../fbuffer/fbuffer.h"
2
- #include "generator.h"
3
-
4
- #ifdef HAVE_RUBY_ENCODING_H
5
- static VALUE CEncoding_UTF_8;
6
- static ID i_encoding, i_encode;
7
- #endif
8
-
9
- static VALUE mJSON, mExt, mGenerator, cState, mGeneratorMethods, mObject,
10
- mHash, mArray, mFixnum, mBignum, mFloat, mString, mString_Extend,
11
- mTrueClass, mFalseClass, mNilClass, eGeneratorError,
12
- eNestingError, CRegexp_MULTILINE, CJSON_SAFE_STATE_PROTOTYPE,
13
- i_SAFE_STATE_PROTOTYPE;
14
-
15
- static ID i_to_s, i_to_json, i_new, i_indent, i_space, i_space_before,
16
- i_object_nl, i_array_nl, i_max_nesting, i_allow_nan, i_ascii_only,
17
- i_quirks_mode, i_pack, i_unpack, i_create_id, i_extend, i_key_p,
18
- i_aref, i_send, i_respond_to_p, i_match, i_keys, i_depth,
19
- i_buffer_initial_length, i_dup;
20
-
21
- /*
22
- * Copyright 2001-2004 Unicode, Inc.
23
- *
24
- * Disclaimer
25
- *
26
- * This source code is provided as is by Unicode, Inc. No claims are
27
- * made as to fitness for any particular purpose. No warranties of any
28
- * kind are expressed or implied. The recipient agrees to determine
29
- * applicability of information provided. If this file has been
30
- * purchased on magnetic or optical media from Unicode, Inc., the
31
- * sole remedy for any claim will be exchange of defective media
32
- * within 90 days of receipt.
33
- *
34
- * Limitations on Rights to Redistribute This Code
35
- *
36
- * Unicode, Inc. hereby grants the right to freely use the information
37
- * supplied in this file in the creation of products supporting the
38
- * Unicode Standard, and to make copies of this file in any form
39
- * for internal or external distribution as long as this notice
40
- * remains attached.
41
- */
42
-
43
- /*
44
- * Index into the table below with the first byte of a UTF-8 sequence to
45
- * get the number of trailing bytes that are supposed to follow it.
46
- * Note that *legal* UTF-8 values can't have 4 or 5-bytes. The table is
47
- * left as-is for anyone who may want to do such conversion, which was
48
- * allowed in earlier algorithms.
49
- */
50
- static const char trailingBytesForUTF8[256] = {
51
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
52
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
53
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
54
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
55
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
56
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
57
- 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
58
- 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5
59
- };
60
-
61
- /*
62
- * Magic values subtracted from a buffer value during UTF8 conversion.
63
- * This table contains as many values as there might be trailing bytes
64
- * in a UTF-8 sequence.
65
- */
66
- static const UTF32 offsetsFromUTF8[6] = { 0x00000000UL, 0x00003080UL, 0x000E2080UL,
67
- 0x03C82080UL, 0xFA082080UL, 0x82082080UL };
68
-
69
- /*
70
- * Utility routine to tell whether a sequence of bytes is legal UTF-8.
71
- * This must be called with the length pre-determined by the first byte.
72
- * If not calling this from ConvertUTF8to*, then the length can be set by:
73
- * length = trailingBytesForUTF8[*source]+1;
74
- * and the sequence is illegal right away if there aren't that many bytes
75
- * available.
76
- * If presented with a length > 4, this returns 0. The Unicode
77
- * definition of UTF-8 goes up to 4-byte sequences.
78
- */
79
- static unsigned char isLegalUTF8(const UTF8 *source, unsigned long length)
80
- {
81
- UTF8 a;
82
- const UTF8 *srcptr = source+length;
83
- switch (length) {
84
- default: return 0;
85
- /* Everything else falls through when "1"... */
86
- case 4: if ((a = (*--srcptr)) < 0x80 || a > 0xBF) return 0;
87
- case 3: if ((a = (*--srcptr)) < 0x80 || a > 0xBF) return 0;
88
- case 2: if ((a = (*--srcptr)) > 0xBF) return 0;
89
-
90
- switch (*source) {
91
- /* no fall-through in this inner switch */
92
- case 0xE0: if (a < 0xA0) return 0; break;
93
- case 0xED: if (a > 0x9F) return 0; break;
94
- case 0xF0: if (a < 0x90) return 0; break;
95
- case 0xF4: if (a > 0x8F) return 0; break;
96
- default: if (a < 0x80) return 0;
97
- }
98
-
99
- case 1: if (*source >= 0x80 && *source < 0xC2) return 0;
100
- }
101
- if (*source > 0xF4) return 0;
102
- return 1;
103
- }
104
-
105
- /* Escapes the UTF16 character and stores the result in the buffer buf. */
106
- static void unicode_escape(char *buf, UTF16 character)
107
- {
108
- const char *digits = "0123456789abcdef";
109
-
110
- buf[2] = digits[character >> 12];
111
- buf[3] = digits[(character >> 8) & 0xf];
112
- buf[4] = digits[(character >> 4) & 0xf];
113
- buf[5] = digits[character & 0xf];
114
- }
115
-
116
- /* Escapes the UTF16 character and stores the result in the buffer buf, then
117
- * the buffer buf is appended to the FBuffer buffer. */
118
- static void unicode_escape_to_buffer(FBuffer *buffer, char buf[6], UTF16
119
- character)
120
- {
121
- unicode_escape(buf, character);
122
- fbuffer_append(buffer, buf, 6);
123
- }
124
-
125
- /* Converts string to a JSON string in FBuffer buffer, where all but the ASCII
126
- * and control characters are JSON escaped. */
127
- static void convert_UTF8_to_JSON_ASCII(FBuffer *buffer, VALUE string)
128
- {
129
- const UTF8 *source = (UTF8 *) RSTRING_PTR(string);
130
- const UTF8 *sourceEnd = source + RSTRING_LEN(string);
131
- char buf[6] = { '\\', 'u' };
132
-
133
- while (source < sourceEnd) {
134
- UTF32 ch = 0;
135
- unsigned short extraBytesToRead = trailingBytesForUTF8[*source];
136
- if (source + extraBytesToRead >= sourceEnd) {
137
- rb_raise(rb_path2class("JSON::GeneratorError"),
138
- "partial character in source, but hit end");
139
- }
140
- if (!isLegalUTF8(source, extraBytesToRead+1)) {
141
- rb_raise(rb_path2class("JSON::GeneratorError"),
142
- "source sequence is illegal/malformed utf-8");
143
- }
144
- /*
145
- * The cases all fall through. See "Note A" below.
146
- */
147
- switch (extraBytesToRead) {
148
- case 5: ch += *source++; ch <<= 6; /* remember, illegal UTF-8 */
149
- case 4: ch += *source++; ch <<= 6; /* remember, illegal UTF-8 */
150
- case 3: ch += *source++; ch <<= 6;
151
- case 2: ch += *source++; ch <<= 6;
152
- case 1: ch += *source++; ch <<= 6;
153
- case 0: ch += *source++;
154
- }
155
- ch -= offsetsFromUTF8[extraBytesToRead];
156
-
157
- if (ch <= UNI_MAX_BMP) { /* Target is a character <= 0xFFFF */
158
- /* UTF-16 surrogate values are illegal in UTF-32 */
159
- if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_LOW_END) {
160
- #if UNI_STRICT_CONVERSION
161
- source -= (extraBytesToRead+1); /* return to the illegal value itself */
162
- rb_raise(rb_path2class("JSON::GeneratorError"),
163
- "source sequence is illegal/malformed utf-8");
164
- #else
165
- unicode_escape_to_buffer(buffer, buf, UNI_REPLACEMENT_CHAR);
166
- #endif
167
- } else {
168
- /* normal case */
169
- if (ch >= 0x20 && ch <= 0x7f) {
170
- switch (ch) {
171
- case '\\':
172
- fbuffer_append(buffer, "\\\\", 2);
173
- break;
174
- case '"':
175
- fbuffer_append(buffer, "\\\"", 2);
176
- break;
177
- default:
178
- fbuffer_append_char(buffer, (char)ch);
179
- break;
180
- }
181
- } else {
182
- switch (ch) {
183
- case '\n':
184
- fbuffer_append(buffer, "\\n", 2);
185
- break;
186
- case '\r':
187
- fbuffer_append(buffer, "\\r", 2);
188
- break;
189
- case '\t':
190
- fbuffer_append(buffer, "\\t", 2);
191
- break;
192
- case '\f':
193
- fbuffer_append(buffer, "\\f", 2);
194
- break;
195
- case '\b':
196
- fbuffer_append(buffer, "\\b", 2);
197
- break;
198
- default:
199
- unicode_escape_to_buffer(buffer, buf, (UTF16) ch);
200
- break;
201
- }
202
- }
203
- }
204
- } else if (ch > UNI_MAX_UTF16) {
205
- #if UNI_STRICT_CONVERSION
206
- source -= (extraBytesToRead+1); /* return to the start */
207
- rb_raise(rb_path2class("JSON::GeneratorError"),
208
- "source sequence is illegal/malformed utf8");
209
- #else
210
- unicode_escape_to_buffer(buffer, buf, UNI_REPLACEMENT_CHAR);
211
- #endif
212
- } else {
213
- /* target is a character in range 0xFFFF - 0x10FFFF. */
214
- ch -= halfBase;
215
- unicode_escape_to_buffer(buffer, buf, (UTF16)((ch >> halfShift) + UNI_SUR_HIGH_START));
216
- unicode_escape_to_buffer(buffer, buf, (UTF16)((ch & halfMask) + UNI_SUR_LOW_START));
217
- }
218
- }
219
- }
220
-
221
- /* Converts string to a JSON string in FBuffer buffer, where only the
222
- * characters required by the JSON standard are JSON escaped. The remaining
223
- * characters (should be UTF8) are just passed through and appended to the
224
- * result. */
225
- static void convert_UTF8_to_JSON(FBuffer *buffer, VALUE string)
226
- {
227
- const char *ptr = RSTRING_PTR(string), *p;
228
- unsigned long len = RSTRING_LEN(string), start = 0, end = 0;
229
- const char *escape = NULL;
230
- int escape_len;
231
- unsigned char c;
232
- char buf[6] = { '\\', 'u' };
233
-
234
- for (start = 0, end = 0; end < len;) {
235
- p = ptr + end;
236
- c = (unsigned char) *p;
237
- if (c < 0x20) {
238
- switch (c) {
239
- case '\n':
240
- escape = "\\n";
241
- escape_len = 2;
242
- break;
243
- case '\r':
244
- escape = "\\r";
245
- escape_len = 2;
246
- break;
247
- case '\t':
248
- escape = "\\t";
249
- escape_len = 2;
250
- break;
251
- case '\f':
252
- escape = "\\f";
253
- escape_len = 2;
254
- break;
255
- case '\b':
256
- escape = "\\b";
257
- escape_len = 2;
258
- break;
259
- default:
260
- unicode_escape(buf, (UTF16) *p);
261
- escape = buf;
262
- escape_len = 6;
263
- break;
264
- }
265
- } else {
266
- switch (c) {
267
- case '\\':
268
- escape = "\\\\";
269
- escape_len = 2;
270
- break;
271
- case '"':
272
- escape = "\\\"";
273
- escape_len = 2;
274
- break;
275
- default:
276
- {
277
- unsigned short clen = trailingBytesForUTF8[c] + 1;
278
- if (end + clen > len) {
279
- rb_raise(rb_path2class("JSON::GeneratorError"),
280
- "partial character in source, but hit end");
281
- }
282
- if (!isLegalUTF8((UTF8 *) p, clen)) {
283
- rb_raise(rb_path2class("JSON::GeneratorError"),
284
- "source sequence is illegal/malformed utf-8");
285
- }
286
- end += clen;
287
- }
288
- continue;
289
- break;
290
- }
291
- }
292
- fbuffer_append(buffer, ptr + start, end - start);
293
- fbuffer_append(buffer, escape, escape_len);
294
- start = ++end;
295
- escape = NULL;
296
- }
297
- fbuffer_append(buffer, ptr + start, end - start);
298
- }
299
-
300
- static char *fstrndup(const char *ptr, unsigned long len) {
301
- char *result;
302
- if (len <= 0) return NULL;
303
- result = ALLOC_N(char, len);
304
- memccpy(result, ptr, 0, len);
305
- return result;
306
- }
307
-
308
- /*
309
- * Document-module: JSON::Ext::Generator
310
- *
311
- * This is the JSON generator implemented as a C extension. It can be
312
- * configured to be used by setting
313
- *
314
- * JSON.generator = JSON::Ext::Generator
315
- *
316
- * with the method generator= in JSON.
317
- *
318
- */
319
-
320
- /*
321
- * call-seq: to_json(state = nil)
322
- *
323
- * Returns a JSON string containing a JSON object, that is generated from
324
- * this Hash instance.
325
- * _state_ is a JSON::State object, that can also be used to configure the
326
- * produced JSON string output further.
327
- */
328
- static VALUE mHash_to_json(int argc, VALUE *argv, VALUE self)
329
- {
330
- GENERATE_JSON(object);
331
- }
332
-
333
- /*
334
- * call-seq: to_json(state = nil)
335
- *
336
- * Returns a JSON string containing a JSON array, that is generated from
337
- * this Array instance.
338
- * _state_ is a JSON::State object, that can also be used to configure the
339
- * produced JSON string output further.
340
- */
341
- static VALUE mArray_to_json(int argc, VALUE *argv, VALUE self) {
342
- GENERATE_JSON(array);
343
- }
344
-
345
- /*
346
- * call-seq: to_json(*)
347
- *
348
- * Returns a JSON string representation for this Integer number.
349
- */
350
- static VALUE mFixnum_to_json(int argc, VALUE *argv, VALUE self)
351
- {
352
- GENERATE_JSON(fixnum);
353
- }
354
-
355
- /*
356
- * call-seq: to_json(*)
357
- *
358
- * Returns a JSON string representation for this Integer number.
359
- */
360
- static VALUE mBignum_to_json(int argc, VALUE *argv, VALUE self)
361
- {
362
- GENERATE_JSON(bignum);
363
- }
364
-
365
- /*
366
- * call-seq: to_json(*)
367
- *
368
- * Returns a JSON string representation for this Float number.
369
- */
370
- static VALUE mFloat_to_json(int argc, VALUE *argv, VALUE self)
371
- {
372
- GENERATE_JSON(float);
373
- }
374
-
375
- /*
376
- * call-seq: String.included(modul)
377
- *
378
- * Extends _modul_ with the String::Extend module.
379
- */
380
- static VALUE mString_included_s(VALUE self, VALUE modul) {
381
- VALUE result = rb_funcall(modul, i_extend, 1, mString_Extend);
382
- return result;
383
- }
384
-
385
- /*
386
- * call-seq: to_json(*)
387
- *
388
- * This string should be encoded with UTF-8 A call to this method
389
- * returns a JSON string encoded with UTF16 big endian characters as
390
- * \u????.
391
- */
392
- static VALUE mString_to_json(int argc, VALUE *argv, VALUE self)
393
- {
394
- GENERATE_JSON(string);
395
- }
396
-
397
- /*
398
- * call-seq: to_json_raw_object()
399
- *
400
- * This method creates a raw object hash, that can be nested into
401
- * other data structures and will be generated as a raw string. This
402
- * method should be used, if you want to convert raw strings to JSON
403
- * instead of UTF-8 strings, e. g. binary data.
404
- */
405
- static VALUE mString_to_json_raw_object(VALUE self)
406
- {
407
- VALUE ary;
408
- VALUE result = rb_hash_new();
409
- rb_hash_aset(result, rb_funcall(mJSON, i_create_id, 0), rb_class_name(rb_obj_class(self)));
410
- ary = rb_funcall(self, i_unpack, 1, rb_str_new2("C*"));
411
- rb_hash_aset(result, rb_str_new2("raw"), ary);
412
- return result;
413
- }
414
-
415
- /*
416
- * call-seq: to_json_raw(*args)
417
- *
418
- * This method creates a JSON text from the result of a call to
419
- * to_json_raw_object of this String.
420
- */
421
- static VALUE mString_to_json_raw(int argc, VALUE *argv, VALUE self)
422
- {
423
- VALUE obj = mString_to_json_raw_object(self);
424
- Check_Type(obj, T_HASH);
425
- return mHash_to_json(argc, argv, obj);
426
- }
427
-
428
- /*
429
- * call-seq: json_create(o)
430
- *
431
- * Raw Strings are JSON Objects (the raw bytes are stored in an array for the
432
- * key "raw"). The Ruby String can be created by this module method.
433
- */
434
- static VALUE mString_Extend_json_create(VALUE self, VALUE o)
435
- {
436
- VALUE ary;
437
- Check_Type(o, T_HASH);
438
- ary = rb_hash_aref(o, rb_str_new2("raw"));
439
- return rb_funcall(ary, i_pack, 1, rb_str_new2("C*"));
440
- }
441
-
442
- /*
443
- * call-seq: to_json(*)
444
- *
445
- * Returns a JSON string for true: 'true'.
446
- */
447
- static VALUE mTrueClass_to_json(int argc, VALUE *argv, VALUE self)
448
- {
449
- GENERATE_JSON(true);
450
- }
451
-
452
- /*
453
- * call-seq: to_json(*)
454
- *
455
- * Returns a JSON string for false: 'false'.
456
- */
457
- static VALUE mFalseClass_to_json(int argc, VALUE *argv, VALUE self)
458
- {
459
- GENERATE_JSON(false);
460
- }
461
-
462
- /*
463
- * call-seq: to_json(*)
464
- *
465
- * Returns a JSON string for nil: 'null'.
466
- */
467
- static VALUE mNilClass_to_json(int argc, VALUE *argv, VALUE self)
468
- {
469
- GENERATE_JSON(null);
470
- }
471
-
472
- /*
473
- * call-seq: to_json(*)
474
- *
475
- * Converts this object to a string (calling #to_s), converts
476
- * it to a JSON string, and returns the result. This is a fallback, if no
477
- * special method #to_json was defined for some object.
478
- */
479
- static VALUE mObject_to_json(int argc, VALUE *argv, VALUE self)
480
- {
481
- VALUE state;
482
- VALUE string = rb_funcall(self, i_to_s, 0);
483
- rb_scan_args(argc, argv, "01", &state);
484
- Check_Type(string, T_STRING);
485
- state = cState_from_state_s(cState, state);
486
- return cState_partial_generate(state, string);
487
- }
488
-
489
- static void State_free(void *ptr)
490
- {
491
- JSON_Generator_State *state = ptr;
492
- if (state->indent) ruby_xfree(state->indent);
493
- if (state->space) ruby_xfree(state->space);
494
- if (state->space_before) ruby_xfree(state->space_before);
495
- if (state->object_nl) ruby_xfree(state->object_nl);
496
- if (state->array_nl) ruby_xfree(state->array_nl);
497
- if (state->array_delim) fbuffer_free(state->array_delim);
498
- if (state->object_delim) fbuffer_free(state->object_delim);
499
- if (state->object_delim2) fbuffer_free(state->object_delim2);
500
- ruby_xfree(state);
501
- }
502
-
503
- static size_t State_memsize(const void *ptr)
504
- {
505
- const JSON_Generator_State *state = ptr;
506
- size_t size = sizeof(*state);
507
- if (state->indent) size += state->indent_len + 1;
508
- if (state->space) size += state->space_len + 1;
509
- if (state->space_before) size += state->space_before_len + 1;
510
- if (state->object_nl) size += state->object_nl_len + 1;
511
- if (state->array_nl) size += state->array_nl_len + 1;
512
- if (state->array_delim) size += FBUFFER_CAPA(state->array_delim);
513
- if (state->object_delim) size += FBUFFER_CAPA(state->object_delim);
514
- if (state->object_delim2) size += FBUFFER_CAPA(state->object_delim2);
515
- return size;
516
- }
517
-
518
- #ifdef NEW_TYPEDDATA_WRAPPER
519
- static const rb_data_type_t JSON_Generator_State_type = {
520
- "JSON/Generator/State",
521
- {NULL, State_free, State_memsize,},
522
- #ifdef RUBY_TYPED_FREE_IMMEDIATELY
523
- 0, 0,
524
- RUBY_TYPED_FREE_IMMEDIATELY,
525
- #endif
526
- };
527
- #endif
528
-
529
- static VALUE cState_s_allocate(VALUE klass)
530
- {
531
- JSON_Generator_State *state;
532
- return TypedData_Make_Struct(klass, JSON_Generator_State,
533
- &JSON_Generator_State_type, state);
534
- }
535
-
536
- /*
537
- * call-seq: configure(opts)
538
- *
539
- * Configure this State instance with the Hash _opts_, and return
540
- * itself.
541
- */
542
- static VALUE cState_configure(VALUE self, VALUE opts)
543
- {
544
- VALUE tmp;
545
- GET_STATE(self);
546
- tmp = rb_check_convert_type(opts, T_HASH, "Hash", "to_hash");
547
- if (NIL_P(tmp)) tmp = rb_convert_type(opts, T_HASH, "Hash", "to_h");
548
- opts = tmp;
549
- tmp = rb_hash_aref(opts, ID2SYM(i_indent));
550
- if (RTEST(tmp)) {
551
- unsigned long len;
552
- Check_Type(tmp, T_STRING);
553
- len = RSTRING_LEN(tmp);
554
- state->indent = fstrndup(RSTRING_PTR(tmp), len + 1);
555
- state->indent_len = len;
556
- }
557
- tmp = rb_hash_aref(opts, ID2SYM(i_space));
558
- if (RTEST(tmp)) {
559
- unsigned long len;
560
- Check_Type(tmp, T_STRING);
561
- len = RSTRING_LEN(tmp);
562
- state->space = fstrndup(RSTRING_PTR(tmp), len + 1);
563
- state->space_len = len;
564
- }
565
- tmp = rb_hash_aref(opts, ID2SYM(i_space_before));
566
- if (RTEST(tmp)) {
567
- unsigned long len;
568
- Check_Type(tmp, T_STRING);
569
- len = RSTRING_LEN(tmp);
570
- state->space_before = fstrndup(RSTRING_PTR(tmp), len + 1);
571
- state->space_before_len = len;
572
- }
573
- tmp = rb_hash_aref(opts, ID2SYM(i_array_nl));
574
- if (RTEST(tmp)) {
575
- unsigned long len;
576
- Check_Type(tmp, T_STRING);
577
- len = RSTRING_LEN(tmp);
578
- state->array_nl = fstrndup(RSTRING_PTR(tmp), len + 1);
579
- state->array_nl_len = len;
580
- }
581
- tmp = rb_hash_aref(opts, ID2SYM(i_object_nl));
582
- if (RTEST(tmp)) {
583
- unsigned long len;
584
- Check_Type(tmp, T_STRING);
585
- len = RSTRING_LEN(tmp);
586
- state->object_nl = fstrndup(RSTRING_PTR(tmp), len + 1);
587
- state->object_nl_len = len;
588
- }
589
- tmp = ID2SYM(i_max_nesting);
590
- state->max_nesting = 100;
591
- if (option_given_p(opts, tmp)) {
592
- VALUE max_nesting = rb_hash_aref(opts, tmp);
593
- if (RTEST(max_nesting)) {
594
- Check_Type(max_nesting, T_FIXNUM);
595
- state->max_nesting = FIX2LONG(max_nesting);
596
- } else {
597
- state->max_nesting = 0;
598
- }
599
- }
600
- tmp = ID2SYM(i_depth);
601
- state->depth = 0;
602
- if (option_given_p(opts, tmp)) {
603
- VALUE depth = rb_hash_aref(opts, tmp);
604
- if (RTEST(depth)) {
605
- Check_Type(depth, T_FIXNUM);
606
- state->depth = FIX2LONG(depth);
607
- } else {
608
- state->depth = 0;
609
- }
610
- }
611
- tmp = ID2SYM(i_buffer_initial_length);
612
- if (option_given_p(opts, tmp)) {
613
- VALUE buffer_initial_length = rb_hash_aref(opts, tmp);
614
- if (RTEST(buffer_initial_length)) {
615
- long initial_length;
616
- Check_Type(buffer_initial_length, T_FIXNUM);
617
- initial_length = FIX2LONG(buffer_initial_length);
618
- if (initial_length > 0) state->buffer_initial_length = initial_length;
619
- }
620
- }
621
- tmp = rb_hash_aref(opts, ID2SYM(i_allow_nan));
622
- state->allow_nan = RTEST(tmp);
623
- tmp = rb_hash_aref(opts, ID2SYM(i_ascii_only));
624
- state->ascii_only = RTEST(tmp);
625
- tmp = rb_hash_aref(opts, ID2SYM(i_quirks_mode));
626
- state->quirks_mode = RTEST(tmp);
627
- return self;
628
- }
629
-
630
- static void set_state_ivars(VALUE hash, VALUE state)
631
- {
632
- VALUE ivars = rb_obj_instance_variables(state);
633
- int i = 0;
634
- for (i = 0; i < RARRAY_LEN(ivars); i++) {
635
- VALUE key = rb_funcall(rb_ary_entry(ivars, i), i_to_s, 0);
636
- long key_len = RSTRING_LEN(key);
637
- VALUE value = rb_iv_get(state, StringValueCStr(key));
638
- rb_hash_aset(hash, rb_str_intern(rb_str_substr(key, 1, key_len - 1)), value);
639
- }
640
- }
641
-
642
- /*
643
- * call-seq: to_h
644
- *
645
- * Returns the configuration instance variables as a hash, that can be
646
- * passed to the configure method.
647
- */
648
- static VALUE cState_to_h(VALUE self)
649
- {
650
- VALUE result = rb_hash_new();
651
- GET_STATE(self);
652
- set_state_ivars(result, self);
653
- rb_hash_aset(result, ID2SYM(i_indent), rb_str_new(state->indent, state->indent_len));
654
- rb_hash_aset(result, ID2SYM(i_space), rb_str_new(state->space, state->space_len));
655
- rb_hash_aset(result, ID2SYM(i_space_before), rb_str_new(state->space_before, state->space_before_len));
656
- rb_hash_aset(result, ID2SYM(i_object_nl), rb_str_new(state->object_nl, state->object_nl_len));
657
- rb_hash_aset(result, ID2SYM(i_array_nl), rb_str_new(state->array_nl, state->array_nl_len));
658
- rb_hash_aset(result, ID2SYM(i_allow_nan), state->allow_nan ? Qtrue : Qfalse);
659
- rb_hash_aset(result, ID2SYM(i_ascii_only), state->ascii_only ? Qtrue : Qfalse);
660
- rb_hash_aset(result, ID2SYM(i_quirks_mode), state->quirks_mode ? Qtrue : Qfalse);
661
- rb_hash_aset(result, ID2SYM(i_max_nesting), LONG2FIX(state->max_nesting));
662
- rb_hash_aset(result, ID2SYM(i_depth), LONG2FIX(state->depth));
663
- rb_hash_aset(result, ID2SYM(i_buffer_initial_length), LONG2FIX(state->buffer_initial_length));
664
- return result;
665
- }
666
-
667
- /*
668
- * call-seq: [](name)
669
- *
670
- * Returns the value returned by method +name+.
671
- */
672
- static VALUE cState_aref(VALUE self, VALUE name)
673
- {
674
- name = rb_funcall(name, i_to_s, 0);
675
- if (RTEST(rb_funcall(self, i_respond_to_p, 1, name))) {
676
- return rb_funcall(self, i_send, 1, name);
677
- } else {
678
- return rb_ivar_get(self, rb_intern_str(rb_str_concat(rb_str_new2("@"), name)));
679
- }
680
- }
681
-
682
- /*
683
- * call-seq: []=(name, value)
684
- *
685
- * Sets the attribute name to value.
686
- */
687
- static VALUE cState_aset(VALUE self, VALUE name, VALUE value)
688
- {
689
- VALUE name_writer;
690
-
691
- name = rb_funcall(name, i_to_s, 0);
692
- name_writer = rb_str_cat2(rb_str_dup(name), "=");
693
- if (RTEST(rb_funcall(self, i_respond_to_p, 1, name_writer))) {
694
- return rb_funcall(self, i_send, 2, name_writer, value);
695
- } else {
696
- rb_ivar_set(self, rb_intern_str(rb_str_concat(rb_str_new2("@"), name)), value);
697
- }
698
- return Qnil;
699
- }
700
-
701
- static void generate_json_object(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj)
702
- {
703
- char *object_nl = state->object_nl;
704
- long object_nl_len = state->object_nl_len;
705
- char *indent = state->indent;
706
- long indent_len = state->indent_len;
707
- long max_nesting = state->max_nesting;
708
- char *delim = FBUFFER_PTR(state->object_delim);
709
- long delim_len = FBUFFER_LEN(state->object_delim);
710
- char *delim2 = FBUFFER_PTR(state->object_delim2);
711
- long delim2_len = FBUFFER_LEN(state->object_delim2);
712
- long depth = ++state->depth;
713
- int i, j;
714
- VALUE key, key_to_s, keys;
715
- if (max_nesting != 0 && depth > max_nesting) {
716
- fbuffer_free(buffer);
717
- rb_raise(eNestingError, "nesting of %ld is too deep", --state->depth);
718
- }
719
- fbuffer_append_char(buffer, '{');
720
- keys = rb_funcall(obj, i_keys, 0);
721
- for(i = 0; i < RARRAY_LEN(keys); i++) {
722
- if (i > 0) fbuffer_append(buffer, delim, delim_len);
723
- if (object_nl) {
724
- fbuffer_append(buffer, object_nl, object_nl_len);
725
- }
726
- if (indent) {
727
- for (j = 0; j < depth; j++) {
728
- fbuffer_append(buffer, indent, indent_len);
729
- }
730
- }
731
- key = rb_ary_entry(keys, i);
732
- key_to_s = rb_funcall(key, i_to_s, 0);
733
- Check_Type(key_to_s, T_STRING);
734
- generate_json(buffer, Vstate, state, key_to_s);
735
- fbuffer_append(buffer, delim2, delim2_len);
736
- generate_json(buffer, Vstate, state, rb_hash_aref(obj, key));
737
- }
738
- depth = --state->depth;
739
- if (object_nl) {
740
- fbuffer_append(buffer, object_nl, object_nl_len);
741
- if (indent) {
742
- for (j = 0; j < depth; j++) {
743
- fbuffer_append(buffer, indent, indent_len);
744
- }
745
- }
746
- }
747
- fbuffer_append_char(buffer, '}');
748
- }
749
-
750
- static void generate_json_array(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj)
751
- {
752
- char *array_nl = state->array_nl;
753
- long array_nl_len = state->array_nl_len;
754
- char *indent = state->indent;
755
- long indent_len = state->indent_len;
756
- long max_nesting = state->max_nesting;
757
- char *delim = FBUFFER_PTR(state->array_delim);
758
- long delim_len = FBUFFER_LEN(state->array_delim);
759
- long depth = ++state->depth;
760
- int i, j;
761
- if (max_nesting != 0 && depth > max_nesting) {
762
- fbuffer_free(buffer);
763
- rb_raise(eNestingError, "nesting of %ld is too deep", --state->depth);
764
- }
765
- fbuffer_append_char(buffer, '[');
766
- if (array_nl) fbuffer_append(buffer, array_nl, array_nl_len);
767
- for(i = 0; i < RARRAY_LEN(obj); i++) {
768
- if (i > 0) fbuffer_append(buffer, delim, delim_len);
769
- if (indent) {
770
- for (j = 0; j < depth; j++) {
771
- fbuffer_append(buffer, indent, indent_len);
772
- }
773
- }
774
- generate_json(buffer, Vstate, state, rb_ary_entry(obj, i));
775
- }
776
- state->depth = --depth;
777
- if (array_nl) {
778
- fbuffer_append(buffer, array_nl, array_nl_len);
779
- if (indent) {
780
- for (j = 0; j < depth; j++) {
781
- fbuffer_append(buffer, indent, indent_len);
782
- }
783
- }
784
- }
785
- fbuffer_append_char(buffer, ']');
786
- }
787
-
788
- static void generate_json_string(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj)
789
- {
790
- fbuffer_append_char(buffer, '"');
791
- #ifdef HAVE_RUBY_ENCODING_H
792
- obj = rb_funcall(obj, i_encode, 1, CEncoding_UTF_8);
793
- #endif
794
- if (state->ascii_only) {
795
- convert_UTF8_to_JSON_ASCII(buffer, obj);
796
- } else {
797
- convert_UTF8_to_JSON(buffer, obj);
798
- }
799
- fbuffer_append_char(buffer, '"');
800
- }
801
-
802
- static void generate_json_null(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj)
803
- {
804
- fbuffer_append(buffer, "null", 4);
805
- }
806
-
807
- static void generate_json_false(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj)
808
- {
809
- fbuffer_append(buffer, "false", 5);
810
- }
811
-
812
- static void generate_json_true(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj)
813
- {
814
- fbuffer_append(buffer, "true", 4);
815
- }
816
-
817
- static void generate_json_fixnum(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj)
818
- {
819
- fbuffer_append_long(buffer, FIX2LONG(obj));
820
- }
821
-
822
- static void generate_json_bignum(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj)
823
- {
824
- VALUE tmp = rb_funcall(obj, i_to_s, 0);
825
- fbuffer_append_str(buffer, tmp);
826
- }
827
-
828
- static void generate_json_float(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj)
829
- {
830
- double value = RFLOAT_VALUE(obj);
831
- char allow_nan = state->allow_nan;
832
- VALUE tmp = rb_funcall(obj, i_to_s, 0);
833
- if (!allow_nan) {
834
- if (isinf(value)) {
835
- fbuffer_free(buffer);
836
- rb_raise(eGeneratorError, "%u: %"PRIsVALUE" not allowed in JSON", __LINE__, RB_OBJ_STRING(tmp));
837
- } else if (isnan(value)) {
838
- fbuffer_free(buffer);
839
- rb_raise(eGeneratorError, "%u: %"PRIsVALUE" not allowed in JSON", __LINE__, RB_OBJ_STRING(tmp));
840
- }
841
- }
842
- fbuffer_append_str(buffer, tmp);
843
- }
844
-
845
- static void generate_json(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj)
846
- {
847
- VALUE tmp;
848
- VALUE klass = CLASS_OF(obj);
849
- if (klass == rb_cHash) {
850
- generate_json_object(buffer, Vstate, state, obj);
851
- } else if (klass == rb_cArray) {
852
- generate_json_array(buffer, Vstate, state, obj);
853
- } else if (klass == rb_cString) {
854
- generate_json_string(buffer, Vstate, state, obj);
855
- } else if (obj == Qnil) {
856
- generate_json_null(buffer, Vstate, state, obj);
857
- } else if (obj == Qfalse) {
858
- generate_json_false(buffer, Vstate, state, obj);
859
- } else if (obj == Qtrue) {
860
- generate_json_true(buffer, Vstate, state, obj);
861
- } else if (klass == rb_cFixnum) {
862
- generate_json_fixnum(buffer, Vstate, state, obj);
863
- } else if (klass == rb_cBignum) {
864
- generate_json_bignum(buffer, Vstate, state, obj);
865
- } else if (klass == rb_cFloat) {
866
- generate_json_float(buffer, Vstate, state, obj);
867
- } else if (rb_respond_to(obj, i_to_json)) {
868
- tmp = rb_funcall(obj, i_to_json, 1, Vstate);
869
- Check_Type(tmp, T_STRING);
870
- fbuffer_append_str(buffer, tmp);
871
- } else {
872
- tmp = rb_funcall(obj, i_to_s, 0);
873
- Check_Type(tmp, T_STRING);
874
- generate_json(buffer, Vstate, state, tmp);
875
- }
876
- }
877
-
878
- static FBuffer *cState_prepare_buffer(VALUE self)
879
- {
880
- FBuffer *buffer;
881
- GET_STATE(self);
882
- buffer = fbuffer_alloc(state->buffer_initial_length);
883
-
884
- if (state->object_delim) {
885
- fbuffer_clear(state->object_delim);
886
- } else {
887
- state->object_delim = fbuffer_alloc(16);
888
- }
889
- fbuffer_append_char(state->object_delim, ',');
890
- if (state->object_delim2) {
891
- fbuffer_clear(state->object_delim2);
892
- } else {
893
- state->object_delim2 = fbuffer_alloc(16);
894
- }
895
- if (state->space_before) fbuffer_append(state->object_delim2, state->space_before, state->space_before_len);
896
- fbuffer_append_char(state->object_delim2, ':');
897
- if (state->space) fbuffer_append(state->object_delim2, state->space, state->space_len);
898
-
899
- if (state->array_delim) {
900
- fbuffer_clear(state->array_delim);
901
- } else {
902
- state->array_delim = fbuffer_alloc(16);
903
- }
904
- fbuffer_append_char(state->array_delim, ',');
905
- if (state->array_nl) fbuffer_append(state->array_delim, state->array_nl, state->array_nl_len);
906
- return buffer;
907
- }
908
-
909
- static VALUE cState_partial_generate(VALUE self, VALUE obj)
910
- {
911
- FBuffer *buffer = cState_prepare_buffer(self);
912
- GET_STATE(self);
913
- generate_json(buffer, self, state, obj);
914
- return fbuffer_to_s(buffer);
915
- }
916
-
917
- /*
918
- * This function returns true if string is either a JSON array or JSON object.
919
- * It might suffer from false positives, e. g. syntactically incorrect JSON in
920
- * the string or certain UTF-8 characters on the right hand side.
921
- */
922
- static int isArrayOrObject(VALUE string)
923
- {
924
- long string_len = RSTRING_LEN(string);
925
- char *p = RSTRING_PTR(string), *q = p + string_len - 1;
926
- if (string_len < 2) return 0;
927
- for (; p < q && isspace((unsigned char)*p); p++);
928
- for (; q > p && isspace((unsigned char)*q); q--);
929
- return (*p == '[' && *q == ']') || (*p == '{' && *q == '}');
930
- }
931
-
932
- /*
933
- * call-seq: generate(obj)
934
- *
935
- * Generates a valid JSON document from object +obj+ and returns the
936
- * result. If no valid JSON document can be created this method raises a
937
- * GeneratorError exception.
938
- */
939
- static VALUE cState_generate(VALUE self, VALUE obj)
940
- {
941
- VALUE result = cState_partial_generate(self, obj);
942
- GET_STATE(self);
943
- if (!state->quirks_mode && !isArrayOrObject(result)) {
944
- rb_raise(eGeneratorError, "only generation of JSON objects or arrays allowed");
945
- }
946
- return result;
947
- }
948
-
949
- /*
950
- * call-seq: new(opts = {})
951
- *
952
- * Instantiates a new State object, configured by _opts_.
953
- *
954
- * _opts_ can have the following keys:
955
- *
956
- * * *indent*: a string used to indent levels (default: ''),
957
- * * *space*: a string that is put after, a : or , delimiter (default: ''),
958
- * * *space_before*: a string that is put before a : pair delimiter (default: ''),
959
- * * *object_nl*: a string that is put at the end of a JSON object (default: ''),
960
- * * *array_nl*: a string that is put at the end of a JSON array (default: ''),
961
- * * *allow_nan*: true if NaN, Infinity, and -Infinity should be
962
- * generated, otherwise an exception is thrown, if these values are
963
- * encountered. This options defaults to false.
964
- * * *quirks_mode*: Enables quirks_mode for parser, that is for example
965
- * generating single JSON values instead of documents is possible.
966
- * * *buffer_initial_length*: sets the initial length of the generator's
967
- * internal buffer.
968
- */
969
- static VALUE cState_initialize(int argc, VALUE *argv, VALUE self)
970
- {
971
- VALUE opts;
972
- GET_STATE(self);
973
- state->max_nesting = 100;
974
- state->buffer_initial_length = FBUFFER_INITIAL_LENGTH_DEFAULT;
975
- rb_scan_args(argc, argv, "01", &opts);
976
- if (!NIL_P(opts)) cState_configure(self, opts);
977
- return self;
978
- }
979
-
980
- /*
981
- * call-seq: initialize_copy(orig)
982
- *
983
- * Initializes this object from orig if it can be duplicated/cloned and returns
984
- * it.
985
- */
986
- static VALUE cState_init_copy(VALUE obj, VALUE orig)
987
- {
988
- JSON_Generator_State *objState, *origState;
989
-
990
- if (obj == orig) return obj;
991
- GET_STATE_TO(obj, objState);
992
- GET_STATE_TO(orig, origState);
993
- if (!objState) rb_raise(rb_eArgError, "unallocated JSON::State");
994
-
995
- MEMCPY(objState, origState, JSON_Generator_State, 1);
996
- objState->indent = fstrndup(origState->indent, origState->indent_len);
997
- objState->space = fstrndup(origState->space, origState->space_len);
998
- objState->space_before = fstrndup(origState->space_before, origState->space_before_len);
999
- objState->object_nl = fstrndup(origState->object_nl, origState->object_nl_len);
1000
- objState->array_nl = fstrndup(origState->array_nl, origState->array_nl_len);
1001
- if (origState->array_delim) objState->array_delim = fbuffer_dup(origState->array_delim);
1002
- if (origState->object_delim) objState->object_delim = fbuffer_dup(origState->object_delim);
1003
- if (origState->object_delim2) objState->object_delim2 = fbuffer_dup(origState->object_delim2);
1004
- return obj;
1005
- }
1006
-
1007
- /*
1008
- * call-seq: from_state(opts)
1009
- *
1010
- * Creates a State object from _opts_, which ought to be Hash to create a
1011
- * new State instance configured by _opts_, something else to create an
1012
- * unconfigured instance. If _opts_ is a State object, it is just returned.
1013
- */
1014
- static VALUE cState_from_state_s(VALUE self, VALUE opts)
1015
- {
1016
- if (rb_obj_is_kind_of(opts, self)) {
1017
- return opts;
1018
- } else if (rb_obj_is_kind_of(opts, rb_cHash)) {
1019
- return rb_funcall(self, i_new, 1, opts);
1020
- } else {
1021
- if (NIL_P(CJSON_SAFE_STATE_PROTOTYPE)) {
1022
- CJSON_SAFE_STATE_PROTOTYPE = rb_const_get(mJSON, i_SAFE_STATE_PROTOTYPE);
1023
- }
1024
- return rb_funcall(CJSON_SAFE_STATE_PROTOTYPE, i_dup, 0);
1025
- }
1026
- }
1027
-
1028
- /*
1029
- * call-seq: indent()
1030
- *
1031
- * Returns the string that is used to indent levels in the JSON text.
1032
- */
1033
- static VALUE cState_indent(VALUE self)
1034
- {
1035
- GET_STATE(self);
1036
- return state->indent ? rb_str_new(state->indent, state->indent_len) : rb_str_new2("");
1037
- }
1038
-
1039
- /*
1040
- * call-seq: indent=(indent)
1041
- *
1042
- * Sets the string that is used to indent levels in the JSON text.
1043
- */
1044
- static VALUE cState_indent_set(VALUE self, VALUE indent)
1045
- {
1046
- unsigned long len;
1047
- GET_STATE(self);
1048
- Check_Type(indent, T_STRING);
1049
- len = RSTRING_LEN(indent);
1050
- if (len == 0) {
1051
- if (state->indent) {
1052
- ruby_xfree(state->indent);
1053
- state->indent = NULL;
1054
- state->indent_len = 0;
1055
- }
1056
- } else {
1057
- if (state->indent) ruby_xfree(state->indent);
1058
- state->indent = strdup(RSTRING_PTR(indent));
1059
- state->indent_len = len;
1060
- }
1061
- return Qnil;
1062
- }
1063
-
1064
- /*
1065
- * call-seq: space()
1066
- *
1067
- * Returns the string that is used to insert a space between the tokens in a JSON
1068
- * string.
1069
- */
1070
- static VALUE cState_space(VALUE self)
1071
- {
1072
- GET_STATE(self);
1073
- return state->space ? rb_str_new(state->space, state->space_len) : rb_str_new2("");
1074
- }
1075
-
1076
- /*
1077
- * call-seq: space=(space)
1078
- *
1079
- * Sets _space_ to the string that is used to insert a space between the tokens in a JSON
1080
- * string.
1081
- */
1082
- static VALUE cState_space_set(VALUE self, VALUE space)
1083
- {
1084
- unsigned long len;
1085
- GET_STATE(self);
1086
- Check_Type(space, T_STRING);
1087
- len = RSTRING_LEN(space);
1088
- if (len == 0) {
1089
- if (state->space) {
1090
- ruby_xfree(state->space);
1091
- state->space = NULL;
1092
- state->space_len = 0;
1093
- }
1094
- } else {
1095
- if (state->space) ruby_xfree(state->space);
1096
- state->space = strdup(RSTRING_PTR(space));
1097
- state->space_len = len;
1098
- }
1099
- return Qnil;
1100
- }
1101
-
1102
- /*
1103
- * call-seq: space_before()
1104
- *
1105
- * Returns the string that is used to insert a space before the ':' in JSON objects.
1106
- */
1107
- static VALUE cState_space_before(VALUE self)
1108
- {
1109
- GET_STATE(self);
1110
- return state->space_before ? rb_str_new(state->space_before, state->space_before_len) : rb_str_new2("");
1111
- }
1112
-
1113
- /*
1114
- * call-seq: space_before=(space_before)
1115
- *
1116
- * Sets the string that is used to insert a space before the ':' in JSON objects.
1117
- */
1118
- static VALUE cState_space_before_set(VALUE self, VALUE space_before)
1119
- {
1120
- unsigned long len;
1121
- GET_STATE(self);
1122
- Check_Type(space_before, T_STRING);
1123
- len = RSTRING_LEN(space_before);
1124
- if (len == 0) {
1125
- if (state->space_before) {
1126
- ruby_xfree(state->space_before);
1127
- state->space_before = NULL;
1128
- state->space_before_len = 0;
1129
- }
1130
- } else {
1131
- if (state->space_before) ruby_xfree(state->space_before);
1132
- state->space_before = strdup(RSTRING_PTR(space_before));
1133
- state->space_before_len = len;
1134
- }
1135
- return Qnil;
1136
- }
1137
-
1138
- /*
1139
- * call-seq: object_nl()
1140
- *
1141
- * This string is put at the end of a line that holds a JSON object (or
1142
- * Hash).
1143
- */
1144
- static VALUE cState_object_nl(VALUE self)
1145
- {
1146
- GET_STATE(self);
1147
- return state->object_nl ? rb_str_new(state->object_nl, state->object_nl_len) : rb_str_new2("");
1148
- }
1149
-
1150
- /*
1151
- * call-seq: object_nl=(object_nl)
1152
- *
1153
- * This string is put at the end of a line that holds a JSON object (or
1154
- * Hash).
1155
- */
1156
- static VALUE cState_object_nl_set(VALUE self, VALUE object_nl)
1157
- {
1158
- unsigned long len;
1159
- GET_STATE(self);
1160
- Check_Type(object_nl, T_STRING);
1161
- len = RSTRING_LEN(object_nl);
1162
- if (len == 0) {
1163
- if (state->object_nl) {
1164
- ruby_xfree(state->object_nl);
1165
- state->object_nl = NULL;
1166
- }
1167
- } else {
1168
- if (state->object_nl) ruby_xfree(state->object_nl);
1169
- state->object_nl = strdup(RSTRING_PTR(object_nl));
1170
- state->object_nl_len = len;
1171
- }
1172
- return Qnil;
1173
- }
1174
-
1175
- /*
1176
- * call-seq: array_nl()
1177
- *
1178
- * This string is put at the end of a line that holds a JSON array.
1179
- */
1180
- static VALUE cState_array_nl(VALUE self)
1181
- {
1182
- GET_STATE(self);
1183
- return state->array_nl ? rb_str_new(state->array_nl, state->array_nl_len) : rb_str_new2("");
1184
- }
1185
-
1186
- /*
1187
- * call-seq: array_nl=(array_nl)
1188
- *
1189
- * This string is put at the end of a line that holds a JSON array.
1190
- */
1191
- static VALUE cState_array_nl_set(VALUE self, VALUE array_nl)
1192
- {
1193
- unsigned long len;
1194
- GET_STATE(self);
1195
- Check_Type(array_nl, T_STRING);
1196
- len = RSTRING_LEN(array_nl);
1197
- if (len == 0) {
1198
- if (state->array_nl) {
1199
- ruby_xfree(state->array_nl);
1200
- state->array_nl = NULL;
1201
- }
1202
- } else {
1203
- if (state->array_nl) ruby_xfree(state->array_nl);
1204
- state->array_nl = strdup(RSTRING_PTR(array_nl));
1205
- state->array_nl_len = len;
1206
- }
1207
- return Qnil;
1208
- }
1209
-
1210
-
1211
- /*
1212
- * call-seq: check_circular?
1213
- *
1214
- * Returns true, if circular data structures should be checked,
1215
- * otherwise returns false.
1216
- */
1217
- static VALUE cState_check_circular_p(VALUE self)
1218
- {
1219
- GET_STATE(self);
1220
- return state->max_nesting ? Qtrue : Qfalse;
1221
- }
1222
-
1223
- /*
1224
- * call-seq: max_nesting
1225
- *
1226
- * This integer returns the maximum level of data structure nesting in
1227
- * the generated JSON, max_nesting = 0 if no maximum is checked.
1228
- */
1229
- static VALUE cState_max_nesting(VALUE self)
1230
- {
1231
- GET_STATE(self);
1232
- return LONG2FIX(state->max_nesting);
1233
- }
1234
-
1235
- /*
1236
- * call-seq: max_nesting=(depth)
1237
- *
1238
- * This sets the maximum level of data structure nesting in the generated JSON
1239
- * to the integer depth, max_nesting = 0 if no maximum should be checked.
1240
- */
1241
- static VALUE cState_max_nesting_set(VALUE self, VALUE depth)
1242
- {
1243
- GET_STATE(self);
1244
- Check_Type(depth, T_FIXNUM);
1245
- return state->max_nesting = FIX2LONG(depth);
1246
- }
1247
-
1248
- /*
1249
- * call-seq: allow_nan?
1250
- *
1251
- * Returns true, if NaN, Infinity, and -Infinity should be generated, otherwise
1252
- * returns false.
1253
- */
1254
- static VALUE cState_allow_nan_p(VALUE self)
1255
- {
1256
- GET_STATE(self);
1257
- return state->allow_nan ? Qtrue : Qfalse;
1258
- }
1259
-
1260
- /*
1261
- * call-seq: ascii_only?
1262
- *
1263
- * Returns true, if NaN, Infinity, and -Infinity should be generated, otherwise
1264
- * returns false.
1265
- */
1266
- static VALUE cState_ascii_only_p(VALUE self)
1267
- {
1268
- GET_STATE(self);
1269
- return state->ascii_only ? Qtrue : Qfalse;
1270
- }
1271
-
1272
- /*
1273
- * call-seq: quirks_mode?
1274
- *
1275
- * Returns true, if quirks mode is enabled. Otherwise returns false.
1276
- */
1277
- static VALUE cState_quirks_mode_p(VALUE self)
1278
- {
1279
- GET_STATE(self);
1280
- return state->quirks_mode ? Qtrue : Qfalse;
1281
- }
1282
-
1283
- /*
1284
- * call-seq: quirks_mode=(enable)
1285
- *
1286
- * If set to true, enables the quirks_mode mode.
1287
- */
1288
- static VALUE cState_quirks_mode_set(VALUE self, VALUE enable)
1289
- {
1290
- GET_STATE(self);
1291
- state->quirks_mode = RTEST(enable);
1292
- return Qnil;
1293
- }
1294
-
1295
- /*
1296
- * call-seq: depth
1297
- *
1298
- * This integer returns the current depth of data structure nesting.
1299
- */
1300
- static VALUE cState_depth(VALUE self)
1301
- {
1302
- GET_STATE(self);
1303
- return LONG2FIX(state->depth);
1304
- }
1305
-
1306
- /*
1307
- * call-seq: depth=(depth)
1308
- *
1309
- * This sets the maximum level of data structure nesting in the generated JSON
1310
- * to the integer depth, max_nesting = 0 if no maximum should be checked.
1311
- */
1312
- static VALUE cState_depth_set(VALUE self, VALUE depth)
1313
- {
1314
- GET_STATE(self);
1315
- Check_Type(depth, T_FIXNUM);
1316
- state->depth = FIX2LONG(depth);
1317
- return Qnil;
1318
- }
1319
-
1320
- /*
1321
- * call-seq: buffer_initial_length
1322
- *
1323
- * This integer returns the current initial length of the buffer.
1324
- */
1325
- static VALUE cState_buffer_initial_length(VALUE self)
1326
- {
1327
- GET_STATE(self);
1328
- return LONG2FIX(state->buffer_initial_length);
1329
- }
1330
-
1331
- /*
1332
- * call-seq: buffer_initial_length=(length)
1333
- *
1334
- * This sets the initial length of the buffer to +length+, if +length+ > 0,
1335
- * otherwise its value isn't changed.
1336
- */
1337
- static VALUE cState_buffer_initial_length_set(VALUE self, VALUE buffer_initial_length)
1338
- {
1339
- long initial_length;
1340
- GET_STATE(self);
1341
- Check_Type(buffer_initial_length, T_FIXNUM);
1342
- initial_length = FIX2LONG(buffer_initial_length);
1343
- if (initial_length > 0) {
1344
- state->buffer_initial_length = initial_length;
1345
- }
1346
- return Qnil;
1347
- }
1348
-
1349
- /*
1350
- *
1351
- */
1352
- void Init_generator(void)
1353
- {
1354
- rb_require("json/common");
1355
-
1356
- mJSON = rb_define_module("JSON");
1357
- mExt = rb_define_module_under(mJSON, "Ext");
1358
- mGenerator = rb_define_module_under(mExt, "Generator");
1359
-
1360
- eGeneratorError = rb_path2class("JSON::GeneratorError");
1361
- eNestingError = rb_path2class("JSON::NestingError");
1362
-
1363
- cState = rb_define_class_under(mGenerator, "State", rb_cObject);
1364
- rb_define_alloc_func(cState, cState_s_allocate);
1365
- rb_define_singleton_method(cState, "from_state", cState_from_state_s, 1);
1366
- rb_define_method(cState, "initialize", cState_initialize, -1);
1367
- rb_define_method(cState, "initialize_copy", cState_init_copy, 1);
1368
- rb_define_method(cState, "indent", cState_indent, 0);
1369
- rb_define_method(cState, "indent=", cState_indent_set, 1);
1370
- rb_define_method(cState, "space", cState_space, 0);
1371
- rb_define_method(cState, "space=", cState_space_set, 1);
1372
- rb_define_method(cState, "space_before", cState_space_before, 0);
1373
- rb_define_method(cState, "space_before=", cState_space_before_set, 1);
1374
- rb_define_method(cState, "object_nl", cState_object_nl, 0);
1375
- rb_define_method(cState, "object_nl=", cState_object_nl_set, 1);
1376
- rb_define_method(cState, "array_nl", cState_array_nl, 0);
1377
- rb_define_method(cState, "array_nl=", cState_array_nl_set, 1);
1378
- rb_define_method(cState, "max_nesting", cState_max_nesting, 0);
1379
- rb_define_method(cState, "max_nesting=", cState_max_nesting_set, 1);
1380
- rb_define_method(cState, "check_circular?", cState_check_circular_p, 0);
1381
- rb_define_method(cState, "allow_nan?", cState_allow_nan_p, 0);
1382
- rb_define_method(cState, "ascii_only?", cState_ascii_only_p, 0);
1383
- rb_define_method(cState, "quirks_mode?", cState_quirks_mode_p, 0);
1384
- rb_define_method(cState, "quirks_mode", cState_quirks_mode_p, 0);
1385
- rb_define_method(cState, "quirks_mode=", cState_quirks_mode_set, 1);
1386
- rb_define_method(cState, "depth", cState_depth, 0);
1387
- rb_define_method(cState, "depth=", cState_depth_set, 1);
1388
- rb_define_method(cState, "buffer_initial_length", cState_buffer_initial_length, 0);
1389
- rb_define_method(cState, "buffer_initial_length=", cState_buffer_initial_length_set, 1);
1390
- rb_define_method(cState, "configure", cState_configure, 1);
1391
- rb_define_alias(cState, "merge", "configure");
1392
- rb_define_method(cState, "to_h", cState_to_h, 0);
1393
- rb_define_alias(cState, "to_hash", "to_h");
1394
- rb_define_method(cState, "[]", cState_aref, 1);
1395
- rb_define_method(cState, "[]=", cState_aset, 2);
1396
- rb_define_method(cState, "generate", cState_generate, 1);
1397
-
1398
- mGeneratorMethods = rb_define_module_under(mGenerator, "GeneratorMethods");
1399
- mObject = rb_define_module_under(mGeneratorMethods, "Object");
1400
- rb_define_method(mObject, "to_json", mObject_to_json, -1);
1401
- mHash = rb_define_module_under(mGeneratorMethods, "Hash");
1402
- rb_define_method(mHash, "to_json", mHash_to_json, -1);
1403
- mArray = rb_define_module_under(mGeneratorMethods, "Array");
1404
- rb_define_method(mArray, "to_json", mArray_to_json, -1);
1405
- mFixnum = rb_define_module_under(mGeneratorMethods, "Fixnum");
1406
- rb_define_method(mFixnum, "to_json", mFixnum_to_json, -1);
1407
- mBignum = rb_define_module_under(mGeneratorMethods, "Bignum");
1408
- rb_define_method(mBignum, "to_json", mBignum_to_json, -1);
1409
- mFloat = rb_define_module_under(mGeneratorMethods, "Float");
1410
- rb_define_method(mFloat, "to_json", mFloat_to_json, -1);
1411
- mString = rb_define_module_under(mGeneratorMethods, "String");
1412
- rb_define_singleton_method(mString, "included", mString_included_s, 1);
1413
- rb_define_method(mString, "to_json", mString_to_json, -1);
1414
- rb_define_method(mString, "to_json_raw", mString_to_json_raw, -1);
1415
- rb_define_method(mString, "to_json_raw_object", mString_to_json_raw_object, 0);
1416
- mString_Extend = rb_define_module_under(mString, "Extend");
1417
- rb_define_method(mString_Extend, "json_create", mString_Extend_json_create, 1);
1418
- mTrueClass = rb_define_module_under(mGeneratorMethods, "TrueClass");
1419
- rb_define_method(mTrueClass, "to_json", mTrueClass_to_json, -1);
1420
- mFalseClass = rb_define_module_under(mGeneratorMethods, "FalseClass");
1421
- rb_define_method(mFalseClass, "to_json", mFalseClass_to_json, -1);
1422
- mNilClass = rb_define_module_under(mGeneratorMethods, "NilClass");
1423
- rb_define_method(mNilClass, "to_json", mNilClass_to_json, -1);
1424
-
1425
- CRegexp_MULTILINE = rb_const_get(rb_cRegexp, rb_intern("MULTILINE"));
1426
- i_to_s = rb_intern("to_s");
1427
- i_to_json = rb_intern("to_json");
1428
- i_new = rb_intern("new");
1429
- i_indent = rb_intern("indent");
1430
- i_space = rb_intern("space");
1431
- i_space_before = rb_intern("space_before");
1432
- i_object_nl = rb_intern("object_nl");
1433
- i_array_nl = rb_intern("array_nl");
1434
- i_max_nesting = rb_intern("max_nesting");
1435
- i_allow_nan = rb_intern("allow_nan");
1436
- i_ascii_only = rb_intern("ascii_only");
1437
- i_quirks_mode = rb_intern("quirks_mode");
1438
- i_depth = rb_intern("depth");
1439
- i_buffer_initial_length = rb_intern("buffer_initial_length");
1440
- i_pack = rb_intern("pack");
1441
- i_unpack = rb_intern("unpack");
1442
- i_create_id = rb_intern("create_id");
1443
- i_extend = rb_intern("extend");
1444
- i_key_p = rb_intern("key?");
1445
- i_aref = rb_intern("[]");
1446
- i_send = rb_intern("__send__");
1447
- i_respond_to_p = rb_intern("respond_to?");
1448
- i_match = rb_intern("match");
1449
- i_keys = rb_intern("keys");
1450
- i_dup = rb_intern("dup");
1451
- #ifdef HAVE_RUBY_ENCODING_H
1452
- CEncoding_UTF_8 = rb_funcall(rb_path2class("Encoding"), rb_intern("find"), 1, rb_str_new2("utf-8"));
1453
- i_encoding = rb_intern("encoding");
1454
- i_encode = rb_intern("encode");
1455
- #endif
1456
- i_SAFE_STATE_PROTOTYPE = rb_intern("SAFE_STATE_PROTOTYPE");
1457
- CJSON_SAFE_STATE_PROTOTYPE = Qnil;
1458
- }