video_chat_get 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (462) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/README.md +6 -1
  4. data/lib/requests/request.rb +1 -1
  5. data/lib/site_list/mildom_analyze.rb +1 -0
  6. data/lib/site_list/openrec_analyze.rb +1 -0
  7. data/lib/site_list/twitcasting_analyze.rb +1 -0
  8. data/lib/site_list/youtubelive_analyze.rb +60 -52
  9. data/lib/video_chat_get/version.rb +1 -1
  10. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/json-2.3.0/gem 2.build_complete b/data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/json-2.3.0/gem → 2.build_complete +0 -0
  11. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/json-2.3.0/gem.build_complete +0 -0
  12. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/json-2.3.0/gem_make 2.out +13 -0
  13. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/json-2.3.0/gem_make.out +13 -0
  14. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/json-2.3.0/json/ext/generator 2.bundle +0 -0
  15. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/json-2.3.0/json/ext/generator.bundle +0 -0
  16. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/json-2.3.0/json/ext/parser 2.bundle +0 -0
  17. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/json-2.3.0/json/ext/parser.bundle +0 -0
  18. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/json-2.3.0/mkmf 2.log +60 -0
  19. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/json-2.3.0/mkmf.log +60 -0
  20. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/nokogiri-1.10.9/gem 2.build_complete b/data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/nokogiri-1.10.9/gem → 2.build_complete +0 -0
  21. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/nokogiri-1.10.9/gem.build_complete +0 -0
  22. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/nokogiri-1.10.9/gem_make 2.out +155 -0
  23. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/nokogiri-1.10.9/gem_make.out +155 -0
  24. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/nokogiri-1.10.9/mkmf 2.log +542 -0
  25. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/nokogiri-1.10.9/mkmf.log +542 -0
  26. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/nokogiri-1.10.9/nokogiri/nokogiri 2.bundle +0 -0
  27. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-18/2.5.0/nokogiri-1.10.9/nokogiri/nokogiri.bundle +0 -0
  28. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/diagrams/.keep 2 b/data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/diagrams/.keep → 2 +0 -0
  29. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/Makefile 2 +199 -0
  30. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/ext/fbuffer/fbuffer 2.h +187 -0
  31. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/ext/generator/.sitearchdir.-.json.-.ext 2.time b/data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/ext/generator/.sitearchdir.-.json.-.ext → 2.time +0 -0
  32. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/ext/generator/Makefile 2 +265 -0
  33. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/ext/generator/depend 2 +1 -0
  34. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/ext/generator/extconf 2.rb +4 -0
  35. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/ext/generator/generator 2.c +1499 -0
  36. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/ext/generator/generator 2.h +171 -0
  37. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/ext/parser/.sitearchdir.-.json.-.ext 2.time b/data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/ext/parser/.sitearchdir.-.json.-.ext → 2.time +0 -0
  38. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/ext/parser/Makefile 2 +265 -0
  39. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/ext/parser/depend 2 +1 -0
  40. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/ext/parser/extconf 2.rb +6 -0
  41. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/ext/parser/parser 2.c +2136 -0
  42. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/ext/parser/parser 2.h +91 -0
  43. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/ext/parser/parser 2.rl +896 -0
  44. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/ext/json/extconf 2.rb +2 -0
  45. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/install 2.rb +23 -0
  46. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/java/src/json/ext/ByteListTranscoder 2.java +166 -0
  47. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/java/src/json/ext/Generator 2.java +466 -0
  48. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/java/src/json/ext/GeneratorMethods 2.java +231 -0
  49. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/java/src/json/ext/GeneratorService 2.java +42 -0
  50. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/java/src/json/ext/GeneratorState 2.java +490 -0
  51. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/java/src/json/ext/OptionsReader 2.java +113 -0
  52. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/java/src/json/ext/Parser 2.java +2362 -0
  53. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/java/src/json/ext/Parser 2.rl +893 -0
  54. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/java/src/json/ext/ParserService 2.java +34 -0
  55. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/java/src/json/ext/RuntimeInfo 2.java +116 -0
  56. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/java/src/json/ext/StringDecoder 2.java +166 -0
  57. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/java/src/json/ext/StringEncoder 2.java +111 -0
  58. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/java/src/json/ext/Utils 2.java +88 -0
  59. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/json 2.gemspec +0 -0
  60. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/json-java 2.gemspec +37 -0
  61. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/json_pure 2.gemspec +38 -0
  62. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json 2.rb +63 -0
  63. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/add/bigdecimal 2.rb +29 -0
  64. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/add/complex 2.rb +29 -0
  65. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/add/core 2.rb +12 -0
  66. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/add/date 2.rb +34 -0
  67. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/add/date_time 2.rb +50 -0
  68. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/add/exception 2.rb +31 -0
  69. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/add/ostruct 2.rb +31 -0
  70. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/add/range 2.rb +29 -0
  71. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/add/rational 2.rb +28 -0
  72. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/add/regexp 2.rb +30 -0
  73. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/add/set 2.rb +29 -0
  74. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/add/struct 2.rb +30 -0
  75. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/add/symbol 2.rb +25 -0
  76. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/add/time 2.rb +38 -0
  77. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/common 2.rb +456 -0
  78. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/ext 2.rb +15 -0
  79. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/ext/.keep 2 b/data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/ext/.keep → 2 +0 -0
  80. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/generic_object 2.rb +71 -0
  81. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/pure 2.rb +15 -0
  82. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/pure/generator 2.rb +459 -0
  83. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/pure/parser 2.rb +319 -0
  84. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/lib/json/version 2.rb +9 -0
  85. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/references/rfc7159 2.txt +899 -0
  86. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail10 2.json +1 -0
  87. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail11 2.json +1 -0
  88. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail12 2.json +1 -0
  89. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail13 2.json +1 -0
  90. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail14 2.json +1 -0
  91. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail18 2.json +1 -0
  92. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail19 2.json +1 -0
  93. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail2 2.json +1 -0
  94. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail20 2.json +1 -0
  95. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail21 2.json +1 -0
  96. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail22 2.json +1 -0
  97. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail23 2.json +1 -0
  98. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail24 2.json +1 -0
  99. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail25 2.json +1 -0
  100. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail27 2.json +2 -0
  101. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail28 2.json +2 -0
  102. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail3 2.json +1 -0
  103. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail4 2.json +1 -0
  104. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail5 2.json +1 -0
  105. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail6 2.json +1 -0
  106. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail7 2.json +1 -0
  107. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail8 2.json +1 -0
  108. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/fail9 2.json +1 -0
  109. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/obsolete_fail1 2.json +1 -0
  110. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/pass1 2.json +56 -0
  111. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/pass15 2.json +1 -0
  112. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/pass16 2.json +1 -0
  113. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/pass17 2.json +1 -0
  114. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/pass2 2.json +1 -0
  115. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/pass26 2.json +1 -0
  116. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/fixtures/pass3 2.json +6 -0
  117. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/json_addition_test 2.rb +203 -0
  118. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/json_common_interface_test 2.rb +126 -0
  119. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/json_encoding_test 2.rb +107 -0
  120. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/json_ext_parser_test 2.rb +15 -0
  121. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/json_fixtures_test 2.rb +32 -0
  122. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/json_generator_test 2.rb +421 -0
  123. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/json_generic_object_test 2.rb +82 -0
  124. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/json_parser_test 2.rb +472 -0
  125. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/json_string_matching_test 2.rb +38 -0
  126. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tests/test_helper 2.rb +17 -0
  127. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tools/diff 2.sh +18 -0
  128. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tools/fuzz 2.rb +131 -0
  129. data/vendor/bundle/ruby/2.5.0/gems/json-2.3.0/tools/server 2.rb +62 -0
  130. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/LICENSE 2.md +9 -0
  131. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/LICENSE-DEPENDENCIES 2.md +1614 -0
  132. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/README 2.md +198 -0
  133. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/bin/nokogiri 2 +118 -0
  134. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/dependencies 2.yml +74 -0
  135. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/.sitearchdir.-.nokogiri 2.time b/data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/.sitearchdir.-.nokogiri → 2.time +0 -0
  136. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/Makefile +16 -15
  137. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/Makefile 2 +626 -0
  138. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/depend 2 +358 -0
  139. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/extconf 2.rb +686 -0
  140. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_document 2.c +170 -0
  141. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_document 2.h +10 -0
  142. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_document 2.o +0 -0
  143. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_document.o +0 -0
  144. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_element_description 2.c +279 -0
  145. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_element_description 2.h +10 -0
  146. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_element_description 2.o +0 -0
  147. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_element_description.o +0 -0
  148. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_entity_lookup 2.c +32 -0
  149. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_entity_lookup 2.h +8 -0
  150. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_entity_lookup 2.o +0 -0
  151. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_entity_lookup.o +0 -0
  152. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_sax_parser_context 2.c +116 -0
  153. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_sax_parser_context 2.h +11 -0
  154. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_sax_parser_context 2.o +0 -0
  155. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_sax_parser_context.o +0 -0
  156. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_sax_push_parser 2.c +87 -0
  157. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_sax_push_parser 2.h +9 -0
  158. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_sax_push_parser 2.o +0 -0
  159. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/html_sax_push_parser.o +0 -0
  160. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/nokogiri 2.bundle +0 -0
  161. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/nokogiri 2.c +141 -0
  162. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/nokogiri 2.h +121 -0
  163. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/nokogiri 2.o +0 -0
  164. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/nokogiri.bundle +0 -0
  165. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/nokogiri.o +0 -0
  166. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_attr 2.c +103 -0
  167. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_attr 2.h +9 -0
  168. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_attr 2.o +0 -0
  169. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_attr.o +0 -0
  170. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_attribute_decl 2.c +70 -0
  171. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_attribute_decl 2.h +9 -0
  172. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_attribute_decl 2.o +0 -0
  173. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_attribute_decl.o +0 -0
  174. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_cdata 2.c +62 -0
  175. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_cdata 2.h +9 -0
  176. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_cdata 2.o +0 -0
  177. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_cdata.o +0 -0
  178. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_comment 2.c +69 -0
  179. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_comment 2.h +9 -0
  180. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_comment 2.o +0 -0
  181. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_comment.o +0 -0
  182. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_document 2.c +608 -0
  183. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_document 2.h +23 -0
  184. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_document 2.o +0 -0
  185. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_document.o +0 -0
  186. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_document_fragment 2.c +48 -0
  187. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_document_fragment 2.h +10 -0
  188. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_document_fragment 2.o +0 -0
  189. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_document_fragment.o +0 -0
  190. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_dtd 2.c +202 -0
  191. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_dtd 2.h +10 -0
  192. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_dtd 2.o +0 -0
  193. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_dtd.o +0 -0
  194. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_element_content 2.c +123 -0
  195. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_element_content 2.h +10 -0
  196. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_element_content 2.o +0 -0
  197. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_element_content.o +0 -0
  198. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_element_decl 2.c +69 -0
  199. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_element_decl 2.h +9 -0
  200. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_element_decl 2.o +0 -0
  201. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_element_decl 3.h +9 -0
  202. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_element_decl.o +0 -0
  203. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_encoding_handler 2.c +79 -0
  204. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_encoding_handler 2.h +8 -0
  205. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_encoding_handler 2.o +0 -0
  206. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_encoding_handler 3.c +79 -0
  207. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_encoding_handler 3.h +8 -0
  208. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_encoding_handler 3.o +0 -0
  209. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_encoding_handler.o +0 -0
  210. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_entity_decl 2.c +110 -0
  211. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_entity_decl 2.h +10 -0
  212. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_entity_decl 2.o +0 -0
  213. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_entity_decl 3.c +110 -0
  214. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_entity_decl 3.h +10 -0
  215. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_entity_decl.o +0 -0
  216. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_entity_reference 2.c +52 -0
  217. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_entity_reference 2.h +9 -0
  218. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_entity_reference 2.o +0 -0
  219. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_entity_reference 3.c +52 -0
  220. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_entity_reference 3.h +9 -0
  221. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_entity_reference.o +0 -0
  222. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_io 2.c +61 -0
  223. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_io 2.h +11 -0
  224. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_io 2.o +0 -0
  225. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_io 3.c +61 -0
  226. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_io 3.h +11 -0
  227. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_io.o +0 -0
  228. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_libxml2_hacks 2.c +112 -0
  229. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_libxml2_hacks 2.h +12 -0
  230. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_libxml2_hacks 2.o +0 -0
  231. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_libxml2_hacks 3.c +112 -0
  232. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_libxml2_hacks 3.h +12 -0
  233. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_libxml2_hacks 3.o +0 -0
  234. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_namespace 2.c +111 -0
  235. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_namespace 2.h +14 -0
  236. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_namespace 2.o +0 -0
  237. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_namespace 3.c +111 -0
  238. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_namespace 3.h +14 -0
  239. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_namespace 3.o +0 -0
  240. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_namespace.o +0 -0
  241. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_node 2.c +1753 -0
  242. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_node 2.h +13 -0
  243. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_node 2.o +0 -0
  244. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_node 3.h +13 -0
  245. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_node.o +0 -0
  246. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_node_set 2.c +486 -0
  247. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_node_set 2.h +12 -0
  248. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_node_set 2.o +0 -0
  249. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_node_set 3.c +486 -0
  250. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_node_set 3.h +12 -0
  251. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_node_set.o +0 -0
  252. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_processing_instruction 2.c +56 -0
  253. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_processing_instruction 2.h +9 -0
  254. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_processing_instruction 2.o +0 -0
  255. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_processing_instruction 3.c +56 -0
  256. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_processing_instruction 3.h +9 -0
  257. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_processing_instruction.o +0 -0
  258. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_reader 2.c +668 -0
  259. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_reader 2.h +10 -0
  260. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_reader 2.o +0 -0
  261. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_reader 3.h +10 -0
  262. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_reader 3.o +0 -0
  263. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_reader.o +0 -0
  264. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_relax_ng 2.c +161 -0
  265. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_relax_ng 2.h +9 -0
  266. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_relax_ng 2.o +0 -0
  267. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_relax_ng 3.c +161 -0
  268. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_relax_ng 3.h +9 -0
  269. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_relax_ng.o +0 -0
  270. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_parser 2.c +310 -0
  271. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_parser 2.h +39 -0
  272. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_parser 2.o +0 -0
  273. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_parser 3.c +310 -0
  274. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_parser 3.h +39 -0
  275. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_parser.o +0 -0
  276. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_parser_context 2.c +262 -0
  277. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_parser_context 2.h +10 -0
  278. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_parser_context 2.o +0 -0
  279. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_parser_context 3.c +262 -0
  280. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_parser_context 3.h +10 -0
  281. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_parser_context 3.o +0 -0
  282. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_parser_context.o +0 -0
  283. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_push_parser 2.c +159 -0
  284. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_push_parser 2.h +9 -0
  285. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_push_parser 2.o +0 -0
  286. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_push_parser 3.c +159 -0
  287. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_push_parser 3.h +9 -0
  288. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_sax_push_parser.o +0 -0
  289. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_schema 2.c +234 -0
  290. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_schema 2.h +9 -0
  291. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_schema 2.o +0 -0
  292. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_schema 3.c +234 -0
  293. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_schema 3.h +9 -0
  294. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_schema.o +0 -0
  295. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_syntax_error 2.c +64 -0
  296. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_syntax_error 2.h +13 -0
  297. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_syntax_error 2.o +0 -0
  298. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_syntax_error 3.c +64 -0
  299. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_syntax_error 3.h +13 -0
  300. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_syntax_error 3.o +0 -0
  301. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_syntax_error.o +0 -0
  302. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_text 2.c +52 -0
  303. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_text 2.h +9 -0
  304. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_text 2.o +0 -0
  305. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_text 3.c +52 -0
  306. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_text 3.h +9 -0
  307. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_text.o +0 -0
  308. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_xpath_context 2.c +298 -0
  309. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_xpath_context 2.h +10 -0
  310. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_xpath_context 2.o +0 -0
  311. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_xpath_context 3.h +10 -0
  312. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_xpath_context 3.o +0 -0
  313. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xml_xpath_context.o +0 -0
  314. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xslt_stylesheet 2.c +270 -0
  315. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xslt_stylesheet 2.h +14 -0
  316. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xslt_stylesheet 2.o +0 -0
  317. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xslt_stylesheet 3.c +270 -0
  318. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xslt_stylesheet 3.h +14 -0
  319. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xslt_stylesheet 3.o +0 -0
  320. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/ext/nokogiri/xslt_stylesheet.o +0 -0
  321. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri 2.rb +144 -0
  322. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri 3.rb +144 -0
  323. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css 2.rb +27 -0
  324. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css 3.rb +27 -0
  325. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css/node 2.rb +52 -0
  326. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css/node 3.rb +52 -0
  327. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css/parser 2.rb +750 -0
  328. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css/parser 2.y +272 -0
  329. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css/parser 3.rb +750 -0
  330. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css/parser 3.y +272 -0
  331. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css/parser_extras 2.rb +91 -0
  332. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css/parser_extras 3.rb +91 -0
  333. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css/syntax_error 2.rb +7 -0
  334. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css/syntax_error 3.rb +7 -0
  335. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css/tokenizer 2.rb +153 -0
  336. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css/tokenizer 2.rex +55 -0
  337. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css/tokenizer 3.rb +153 -0
  338. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css/tokenizer 3.rex +55 -0
  339. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css/xpath_visitor 2.rb +230 -0
  340. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/css/xpath_visitor 3.rb +230 -0
  341. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/decorators/slop 2.rb +42 -0
  342. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/decorators/slop 3.rb +42 -0
  343. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html 2.rb +37 -0
  344. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html 3.rb +37 -0
  345. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/builder 2.rb +35 -0
  346. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/builder 3.rb +35 -0
  347. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/document 2.rb +335 -0
  348. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/document 3.rb +335 -0
  349. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/document_fragment 2.rb +49 -0
  350. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/document_fragment 3.rb +49 -0
  351. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/element_description 2.rb +23 -0
  352. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/element_description 3.rb +23 -0
  353. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/element_description_defaults 2.rb +671 -0
  354. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/element_description_defaults 3.rb +671 -0
  355. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/entity_lookup 2.rb +13 -0
  356. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/entity_lookup 3.rb +13 -0
  357. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/sax/parser 2.rb +62 -0
  358. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/sax/parser 3.rb +62 -0
  359. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/sax/parser_context 2.rb +16 -0
  360. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/sax/parser_context 3.rb +16 -0
  361. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/sax/push_parser 2.rb +36 -0
  362. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/html/sax/push_parser 3.rb +36 -0
  363. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/nokogiri 2.bundle +0 -0
  364. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/nokogiri 3.bundle +0 -0
  365. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/nokogiri.bundle +0 -0
  366. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/syntax_error 2.rb +4 -0
  367. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/syntax_error 3.rb +4 -0
  368. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/version 2.rb +109 -0
  369. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/version 3.rb +109 -0
  370. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml 2.rb +75 -0
  371. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml 3.rb +75 -0
  372. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/attr 2.rb +14 -0
  373. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/attr 3.rb +14 -0
  374. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/attribute_decl 2.rb +18 -0
  375. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/attribute_decl 3.rb +18 -0
  376. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/builder 2.rb +446 -0
  377. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/builder 3.rb +446 -0
  378. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/cdata 2.rb +11 -0
  379. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/cdata 3.rb +11 -0
  380. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/character_data 2.rb +7 -0
  381. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/character_data 3.rb +7 -0
  382. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/document 2.rb +285 -0
  383. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/document 3.rb +285 -0
  384. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/document_fragment 2.rb +160 -0
  385. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/document_fragment 3.rb +160 -0
  386. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/dtd 2.rb +32 -0
  387. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/dtd 3.rb +32 -0
  388. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/element_content 2.rb +36 -0
  389. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/element_content 3.rb +36 -0
  390. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/element_decl 2.rb +13 -0
  391. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/element_decl 3.rb +13 -0
  392. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/entity_decl 2.rb +19 -0
  393. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/entity_decl 3.rb +19 -0
  394. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/entity_reference 2.rb +18 -0
  395. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/entity_reference 3.rb +18 -0
  396. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/namespace 2.rb +13 -0
  397. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/namespace 3.rb +13 -0
  398. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/node 2.rb +902 -0
  399. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/node 3.rb +902 -0
  400. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/node/save_options 2.rb +61 -0
  401. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/node/save_options 3.rb +61 -0
  402. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/node_set 2.rb +371 -0
  403. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/node_set 3.rb +371 -0
  404. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/notation 2.rb +6 -0
  405. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/notation 3.rb +6 -0
  406. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/parse_options 2.rb +120 -0
  407. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/parse_options 3.rb +120 -0
  408. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/pp 2.rb +2 -0
  409. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/pp 3.rb +2 -0
  410. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/pp/character_data 2.rb +18 -0
  411. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/pp/character_data 3.rb +18 -0
  412. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/pp/node 2.rb +56 -0
  413. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/pp/node 3.rb +56 -0
  414. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/processing_instruction 2.rb +8 -0
  415. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/processing_instruction 3.rb +8 -0
  416. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/reader 2.rb +112 -0
  417. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/reader 3.rb +112 -0
  418. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/relax_ng 2.rb +32 -0
  419. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/relax_ng 3.rb +32 -0
  420. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/sax 2.rb +4 -0
  421. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/sax 3.rb +4 -0
  422. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/sax/document 2.rb +171 -0
  423. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/sax/document 3.rb +171 -0
  424. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/sax/parser 2.rb +122 -0
  425. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/sax/parser 3.rb +122 -0
  426. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/sax/parser_context 2.rb +16 -0
  427. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/sax/parser_context 3.rb +16 -0
  428. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/sax/push_parser 2.rb +60 -0
  429. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/sax/push_parser 3.rb +60 -0
  430. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/schema 2.rb +63 -0
  431. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/schema 3.rb +63 -0
  432. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/searchable 2.rb +230 -0
  433. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/searchable 3.rb +230 -0
  434. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/syntax_error 2.rb +70 -0
  435. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/syntax_error 3.rb +70 -0
  436. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/text 2.rb +9 -0
  437. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/text 3.rb +9 -0
  438. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/xpath 2.rb +10 -0
  439. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/xpath 3.rb +10 -0
  440. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/xpath/syntax_error 2.rb +11 -0
  441. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/xpath/syntax_error 3.rb +11 -0
  442. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/xpath_context 2.rb +16 -0
  443. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xml/xpath_context 3.rb +16 -0
  444. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xslt 2.rb +56 -0
  445. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xslt 3.rb +56 -0
  446. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xslt/stylesheet 2.rb +25 -0
  447. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/nokogiri/xslt/stylesheet 3.rb +25 -0
  448. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/xsd/xmlparser/nokogiri 2.rb +102 -0
  449. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/lib/xsd/xmlparser/nokogiri 3.rb +102 -0
  450. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes 2.patch +78 -0
  451. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes 3.patch +78 -0
  452. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/patches/libxml2/0002-Remove-script-macro-support 2.patch +40 -0
  453. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/patches/libxml2/0002-Remove-script-macro-support 3.patch +40 -0
  454. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/patches/libxml2/0003-Update-entities-to-remove-handling-of-ssi 2.patch +44 -0
  455. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/patches/libxml2/0003-Update-entities-to-remove-handling-of-ssi 3.patch +44 -0
  456. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/patches/libxml2/0004-libxml2.la-is-in-top_builddir 2.patch +25 -0
  457. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/patches/libxml2/0004-libxml2.la-is-in-top_builddir 3.patch +25 -0
  458. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/patches/libxml2/0005-Fix-infinite-loop-in-xmlStringLenDecodeEntities 2.patch +32 -0
  459. data/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.9/patches/libxml2/0005-Fix-infinite-loop-in-xmlStringLenDecodeEntities 3.patch +32 -0
  460. data/vendor/bundle/ruby/2.5.0/specifications/json-2.3.0.gemspec +0 -0
  461. data/vendor/bundle/ruby/2.5.0/specifications/nokogiri-1.10.9.gemspec +2 -2
  462. metadata +493 -3
@@ -0,0 +1,319 @@
1
+ #frozen_string_literal: false
2
+ require 'strscan'
3
+
4
+ module JSON
5
+ module Pure
6
+ # This class implements the JSON parser that is used to parse a JSON string
7
+ # into a Ruby data structure.
8
+ class Parser < StringScanner
9
+ STRING = /" ((?:[^\x0-\x1f"\\] |
10
+ # escaped special characters:
11
+ \\["\\\/bfnrt] |
12
+ \\u[0-9a-fA-F]{4} |
13
+ # match all but escaped special characters:
14
+ \\[\x20-\x21\x23-\x2e\x30-\x5b\x5d-\x61\x63-\x65\x67-\x6d\x6f-\x71\x73\x75-\xff])*)
15
+ "/nx
16
+ INTEGER = /(-?0|-?[1-9]\d*)/
17
+ FLOAT = /(-?
18
+ (?:0|[1-9]\d*)
19
+ (?:
20
+ \.\d+(?i:e[+-]?\d+) |
21
+ \.\d+ |
22
+ (?i:e[+-]?\d+)
23
+ )
24
+ )/x
25
+ NAN = /NaN/
26
+ INFINITY = /Infinity/
27
+ MINUS_INFINITY = /-Infinity/
28
+ OBJECT_OPEN = /\{/
29
+ OBJECT_CLOSE = /\}/
30
+ ARRAY_OPEN = /\[/
31
+ ARRAY_CLOSE = /\]/
32
+ PAIR_DELIMITER = /:/
33
+ COLLECTION_DELIMITER = /,/
34
+ TRUE = /true/
35
+ FALSE = /false/
36
+ NULL = /null/
37
+ IGNORE = %r(
38
+ (?:
39
+ //[^\n\r]*[\n\r]| # line comments
40
+ /\* # c-style comments
41
+ (?:
42
+ [^*/]| # normal chars
43
+ /[^*]| # slashes that do not start a nested comment
44
+ \*[^/]| # asterisks that do not end this comment
45
+ /(?=\*/) # single slash before this comment's end
46
+ )*
47
+ \*/ # the End of this comment
48
+ |[ \t\r\n]+ # whitespaces: space, horicontal tab, lf, cr
49
+ )+
50
+ )mx
51
+
52
+ UNPARSED = Object.new.freeze
53
+
54
+ # Creates a new JSON::Pure::Parser instance for the string _source_.
55
+ #
56
+ # It will be configured by the _opts_ hash. _opts_ can have the following
57
+ # keys:
58
+ # * *max_nesting*: The maximum depth of nesting allowed in the parsed data
59
+ # structures. Disable depth checking with :max_nesting => false|nil|0,
60
+ # it defaults to 100.
61
+ # * *allow_nan*: If set to true, allow NaN, Infinity and -Infinity in
62
+ # defiance of RFC 7159 to be parsed by the Parser. This option defaults
63
+ # to false.
64
+ # * *symbolize_names*: If set to true, returns symbols for the names
65
+ # (keys) in a JSON object. Otherwise strings are returned, which is
66
+ # also the default. It's not possible to use this option in
67
+ # conjunction with the *create_additions* option.
68
+ # * *create_additions*: If set to true, the Parser creates
69
+ # additions when if a matching class and create_id was found. This
70
+ # option defaults to false.
71
+ # * *object_class*: Defaults to Hash
72
+ # * *array_class*: Defaults to Array
73
+ # * *decimal_class*: Specifies which class to use instead of the default
74
+ # (Float) when parsing decimal numbers. This class must accept a single
75
+ # string argument in its constructor.
76
+ def initialize(source, opts = {})
77
+ opts ||= {}
78
+ source = convert_encoding source
79
+ super source
80
+ if !opts.key?(:max_nesting) # defaults to 100
81
+ @max_nesting = 100
82
+ elsif opts[:max_nesting]
83
+ @max_nesting = opts[:max_nesting]
84
+ else
85
+ @max_nesting = 0
86
+ end
87
+ @allow_nan = !!opts[:allow_nan]
88
+ @symbolize_names = !!opts[:symbolize_names]
89
+ if opts.key?(:create_additions)
90
+ @create_additions = !!opts[:create_additions]
91
+ else
92
+ @create_additions = false
93
+ end
94
+ @symbolize_names && @create_additions and raise ArgumentError,
95
+ 'options :symbolize_names and :create_additions cannot be used '\
96
+ 'in conjunction'
97
+ @create_id = @create_additions ? JSON.create_id : nil
98
+ @object_class = opts[:object_class] || Hash
99
+ @array_class = opts[:array_class] || Array
100
+ @decimal_class = opts[:decimal_class]
101
+ @match_string = opts[:match_string]
102
+ end
103
+
104
+ alias source string
105
+
106
+ def reset
107
+ super
108
+ @current_nesting = 0
109
+ end
110
+
111
+ # Parses the current JSON string _source_ and returns the
112
+ # complete data structure as a result.
113
+ def parse
114
+ reset
115
+ obj = nil
116
+ while !eos? && skip(IGNORE) do end
117
+ if eos?
118
+ raise ParserError, "source is not valid JSON!"
119
+ else
120
+ obj = parse_value
121
+ UNPARSED.equal?(obj) and raise ParserError,
122
+ "source is not valid JSON!"
123
+ end
124
+ while !eos? && skip(IGNORE) do end
125
+ eos? or raise ParserError, "source is not valid JSON!"
126
+ obj
127
+ end
128
+
129
+ private
130
+
131
+ def convert_encoding(source)
132
+ if source.respond_to?(:to_str)
133
+ source = source.to_str
134
+ else
135
+ raise TypeError,
136
+ "#{source.inspect} is not like a string"
137
+ end
138
+ if source.encoding != ::Encoding::ASCII_8BIT
139
+ source = source.encode(::Encoding::UTF_8)
140
+ source.force_encoding(::Encoding::ASCII_8BIT)
141
+ end
142
+ source
143
+ end
144
+
145
+ # Unescape characters in strings.
146
+ UNESCAPE_MAP = Hash.new { |h, k| h[k] = k.chr }
147
+ UNESCAPE_MAP.update({
148
+ ?" => '"',
149
+ ?\\ => '\\',
150
+ ?/ => '/',
151
+ ?b => "\b",
152
+ ?f => "\f",
153
+ ?n => "\n",
154
+ ?r => "\r",
155
+ ?t => "\t",
156
+ ?u => nil,
157
+ })
158
+
159
+ EMPTY_8BIT_STRING = ''
160
+ if ::String.method_defined?(:encode)
161
+ EMPTY_8BIT_STRING.force_encoding Encoding::ASCII_8BIT
162
+ end
163
+
164
+ def parse_string
165
+ if scan(STRING)
166
+ return '' if self[1].empty?
167
+ string = self[1].gsub(%r((?:\\[\\bfnrt"/]|(?:\\u(?:[A-Fa-f\d]{4}))+|\\[\x20-\xff]))n) do |c|
168
+ if u = UNESCAPE_MAP[$&[1]]
169
+ u
170
+ else # \uXXXX
171
+ bytes = EMPTY_8BIT_STRING.dup
172
+ i = 0
173
+ while c[6 * i] == ?\\ && c[6 * i + 1] == ?u
174
+ bytes << c[6 * i + 2, 2].to_i(16) << c[6 * i + 4, 2].to_i(16)
175
+ i += 1
176
+ end
177
+ JSON.iconv('utf-8', 'utf-16be', bytes)
178
+ end
179
+ end
180
+ if string.respond_to?(:force_encoding)
181
+ string.force_encoding(::Encoding::UTF_8)
182
+ end
183
+ if @create_additions and @match_string
184
+ for (regexp, klass) in @match_string
185
+ klass.json_creatable? or next
186
+ string =~ regexp and return klass.json_create(string)
187
+ end
188
+ end
189
+ string
190
+ else
191
+ UNPARSED
192
+ end
193
+ rescue => e
194
+ raise ParserError, "Caught #{e.class} at '#{peek(20)}': #{e}"
195
+ end
196
+
197
+ def parse_value
198
+ case
199
+ when scan(FLOAT)
200
+ if @decimal_class then
201
+ if @decimal_class == BigDecimal then
202
+ BigDecimal(self[1])
203
+ else
204
+ @decimal_class.new(self[1]) || Float(self[1])
205
+ end
206
+ else
207
+ Float(self[1])
208
+ end
209
+ when scan(INTEGER)
210
+ Integer(self[1])
211
+ when scan(TRUE)
212
+ true
213
+ when scan(FALSE)
214
+ false
215
+ when scan(NULL)
216
+ nil
217
+ when !UNPARSED.equal?(string = parse_string)
218
+ string
219
+ when scan(ARRAY_OPEN)
220
+ @current_nesting += 1
221
+ ary = parse_array
222
+ @current_nesting -= 1
223
+ ary
224
+ when scan(OBJECT_OPEN)
225
+ @current_nesting += 1
226
+ obj = parse_object
227
+ @current_nesting -= 1
228
+ obj
229
+ when @allow_nan && scan(NAN)
230
+ NaN
231
+ when @allow_nan && scan(INFINITY)
232
+ Infinity
233
+ when @allow_nan && scan(MINUS_INFINITY)
234
+ MinusInfinity
235
+ else
236
+ UNPARSED
237
+ end
238
+ end
239
+
240
+ def parse_array
241
+ raise NestingError, "nesting of #@current_nesting is too deep" if
242
+ @max_nesting.nonzero? && @current_nesting > @max_nesting
243
+ result = @array_class.new
244
+ delim = false
245
+ until eos?
246
+ case
247
+ when !UNPARSED.equal?(value = parse_value)
248
+ delim = false
249
+ result << value
250
+ skip(IGNORE)
251
+ if scan(COLLECTION_DELIMITER)
252
+ delim = true
253
+ elsif match?(ARRAY_CLOSE)
254
+ ;
255
+ else
256
+ raise ParserError, "expected ',' or ']' in array at '#{peek(20)}'!"
257
+ end
258
+ when scan(ARRAY_CLOSE)
259
+ if delim
260
+ raise ParserError, "expected next element in array at '#{peek(20)}'!"
261
+ end
262
+ break
263
+ when skip(IGNORE)
264
+ ;
265
+ else
266
+ raise ParserError, "unexpected token in array at '#{peek(20)}'!"
267
+ end
268
+ end
269
+ result
270
+ end
271
+
272
+ def parse_object
273
+ raise NestingError, "nesting of #@current_nesting is too deep" if
274
+ @max_nesting.nonzero? && @current_nesting > @max_nesting
275
+ result = @object_class.new
276
+ delim = false
277
+ until eos?
278
+ case
279
+ when !UNPARSED.equal?(string = parse_string)
280
+ skip(IGNORE)
281
+ unless scan(PAIR_DELIMITER)
282
+ raise ParserError, "expected ':' in object at '#{peek(20)}'!"
283
+ end
284
+ skip(IGNORE)
285
+ unless UNPARSED.equal?(value = parse_value)
286
+ result[@symbolize_names ? string.to_sym : string] = value
287
+ delim = false
288
+ skip(IGNORE)
289
+ if scan(COLLECTION_DELIMITER)
290
+ delim = true
291
+ elsif match?(OBJECT_CLOSE)
292
+ ;
293
+ else
294
+ raise ParserError, "expected ',' or '}' in object at '#{peek(20)}'!"
295
+ end
296
+ else
297
+ raise ParserError, "expected value in object at '#{peek(20)}'!"
298
+ end
299
+ when scan(OBJECT_CLOSE)
300
+ if delim
301
+ raise ParserError, "expected next name, value pair in object at '#{peek(20)}'!"
302
+ end
303
+ if @create_additions and klassname = result[@create_id]
304
+ klass = JSON.deep_const_get klassname
305
+ break unless klass and klass.json_creatable?
306
+ result = klass.json_create(result)
307
+ end
308
+ break
309
+ when skip(IGNORE)
310
+ ;
311
+ else
312
+ raise ParserError, "unexpected token in object at '#{peek(20)}'!"
313
+ end
314
+ end
315
+ result
316
+ end
317
+ end
318
+ end
319
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: false
2
+ module JSON
3
+ # JSON version
4
+ VERSION = '2.3.0'
5
+ VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:
6
+ VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
7
+ VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
8
+ VERSION_BUILD = VERSION_ARRAY[2] # :nodoc:
9
+ end
@@ -0,0 +1,899 @@
1
+
2
+
3
+
4
+
5
+
6
+
7
+ Internet Engineering Task Force (IETF) T. Bray, Ed.
8
+ Request for Comments: 7159 Google, Inc.
9
+ Obsoletes: 4627, 7158 March 2014
10
+ Category: Standards Track
11
+ ISSN: 2070-1721
12
+
13
+
14
+ The JavaScript Object Notation (JSON) Data Interchange Format
15
+
16
+ Abstract
17
+
18
+ JavaScript Object Notation (JSON) is a lightweight, text-based,
19
+ language-independent data interchange format. It was derived from
20
+ the ECMAScript Programming Language Standard. JSON defines a small
21
+ set of formatting rules for the portable representation of structured
22
+ data.
23
+
24
+ This document removes inconsistencies with other specifications of
25
+ JSON, repairs specification errors, and offers experience-based
26
+ interoperability guidance.
27
+
28
+ Status of This Memo
29
+
30
+ This is an Internet Standards Track document.
31
+
32
+ This document is a product of the Internet Engineering Task Force
33
+ (IETF). It represents the consensus of the IETF community. It has
34
+ received public review and has been approved for publication by the
35
+ Internet Engineering Steering Group (IESG). Further information on
36
+ Internet Standards is available in Section 2 of RFC 5741.
37
+
38
+ Information about the current status of this document, any errata,
39
+ and how to provide feedback on it may be obtained at
40
+ http://www.rfc-editor.org/info/rfc7159.
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+ Bray Standards Track [Page 1]
59
+
60
+ RFC 7159 JSON March 2014
61
+
62
+
63
+ Copyright Notice
64
+
65
+ Copyright (c) 2014 IETF Trust and the persons identified as the
66
+ document authors. All rights reserved.
67
+
68
+ This document is subject to BCP 78 and the IETF Trust's Legal
69
+ Provisions Relating to IETF Documents
70
+ (http://trustee.ietf.org/license-info) in effect on the date of
71
+ publication of this document. Please review these documents
72
+ carefully, as they describe your rights and restrictions with respect
73
+ to this document. Code Components extracted from this document must
74
+ include Simplified BSD License text as described in Section 4.e of
75
+ the Trust Legal Provisions and are provided without warranty as
76
+ described in the Simplified BSD License.
77
+
78
+ This document may contain material from IETF Documents or IETF
79
+ Contributions published or made publicly available before November
80
+ 10, 2008. The person(s) controlling the copyright in some of this
81
+ material may not have granted the IETF Trust the right to allow
82
+ modifications of such material outside the IETF Standards Process.
83
+ Without obtaining an adequate license from the person(s) controlling
84
+ the copyright in such materials, this document may not be modified
85
+ outside the IETF Standards Process, and derivative works of it may
86
+ not be created outside the IETF Standards Process, except to format
87
+ it for publication as an RFC or to translate it into languages other
88
+ than English.
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+ Bray Standards Track [Page 2]
115
+
116
+ RFC 7159 JSON March 2014
117
+
118
+
119
+ Table of Contents
120
+
121
+ 1. Introduction ....................................................3
122
+ 1.1. Conventions Used in This Document ..........................4
123
+ 1.2. Specifications of JSON .....................................4
124
+ 1.3. Introduction to This Revision ..............................4
125
+ 2. JSON Grammar ....................................................4
126
+ 3. Values ..........................................................5
127
+ 4. Objects .........................................................6
128
+ 5. Arrays ..........................................................6
129
+ 6. Numbers .........................................................6
130
+ 7. Strings .........................................................8
131
+ 8. String and Character Issues .....................................9
132
+ 8.1. Character Encoding .........................................9
133
+ 8.2. Unicode Characters .........................................9
134
+ 8.3. String Comparison ..........................................9
135
+ 9. Parsers ........................................................10
136
+ 10. Generators ....................................................10
137
+ 11. IANA Considerations ...........................................10
138
+ 12. Security Considerations .......................................11
139
+ 13. Examples ......................................................12
140
+ 14. Contributors ..................................................13
141
+ 15. References ....................................................13
142
+ 15.1. Normative References .....................................13
143
+ 15.2. Informative References ...................................13
144
+ Appendix A. Changes from RFC 4627 .................................15
145
+
146
+ 1. Introduction
147
+
148
+ JavaScript Object Notation (JSON) is a text format for the
149
+ serialization of structured data. It is derived from the object
150
+ literals of JavaScript, as defined in the ECMAScript Programming
151
+ Language Standard, Third Edition [ECMA-262].
152
+
153
+ JSON can represent four primitive types (strings, numbers, booleans,
154
+ and null) and two structured types (objects and arrays).
155
+
156
+ A string is a sequence of zero or more Unicode characters [UNICODE].
157
+ Note that this citation references the latest version of Unicode
158
+ rather than a specific release. It is not expected that future
159
+ changes in the UNICODE specification will impact the syntax of JSON.
160
+
161
+ An object is an unordered collection of zero or more name/value
162
+ pairs, where a name is a string and a value is a string, number,
163
+ boolean, null, object, or array.
164
+
165
+ An array is an ordered sequence of zero or more values.
166
+
167
+
168
+
169
+
170
+ Bray Standards Track [Page 3]
171
+
172
+ RFC 7159 JSON March 2014
173
+
174
+
175
+ The terms "object" and "array" come from the conventions of
176
+ JavaScript.
177
+
178
+ JSON's design goals were for it to be minimal, portable, textual, and
179
+ a subset of JavaScript.
180
+
181
+ 1.1. Conventions Used in This Document
182
+
183
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
184
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
185
+ document are to be interpreted as described in [RFC2119].
186
+
187
+ The grammatical rules in this document are to be interpreted as
188
+ described in [RFC5234].
189
+
190
+ 1.2. Specifications of JSON
191
+
192
+ This document updates [RFC4627], which describes JSON and registers
193
+ the media type "application/json".
194
+
195
+ A description of JSON in ECMAScript terms appears in Version 5.1 of
196
+ the ECMAScript specification [ECMA-262], Section 15.12. JSON is also
197
+ described in [ECMA-404].
198
+
199
+ All of the specifications of JSON syntax agree on the syntactic
200
+ elements of the language.
201
+
202
+ 1.3. Introduction to This Revision
203
+
204
+ In the years since the publication of RFC 4627, JSON has found very
205
+ wide use. This experience has revealed certain patterns, which,
206
+ while allowed by its specifications, have caused interoperability
207
+ problems.
208
+
209
+ Also, a small number of errata have been reported (see RFC Errata IDs
210
+ 607 [Err607] and 3607 [Err3607]).
211
+
212
+ This document's goal is to apply the errata, remove inconsistencies
213
+ with other specifications of JSON, and highlight practices that can
214
+ lead to interoperability problems.
215
+
216
+ 2. JSON Grammar
217
+
218
+ A JSON text is a sequence of tokens. The set of tokens includes six
219
+ structural characters, strings, numbers, and three literal names.
220
+
221
+ A JSON text is a serialized value. Note that certain previous
222
+ specifications of JSON constrained a JSON text to be an object or an
223
+
224
+
225
+
226
+ Bray Standards Track [Page 4]
227
+
228
+ RFC 7159 JSON March 2014
229
+
230
+
231
+ array. Implementations that generate only objects or arrays where a
232
+ JSON text is called for will be interoperable in the sense that all
233
+ implementations will accept these as conforming JSON texts.
234
+
235
+ JSON-text = ws value ws
236
+
237
+ These are the six structural characters:
238
+
239
+ begin-array = ws %x5B ws ; [ left square bracket
240
+
241
+ begin-object = ws %x7B ws ; { left curly bracket
242
+
243
+ end-array = ws %x5D ws ; ] right square bracket
244
+
245
+ end-object = ws %x7D ws ; } right curly bracket
246
+
247
+ name-separator = ws %x3A ws ; : colon
248
+
249
+ value-separator = ws %x2C ws ; , comma
250
+
251
+ Insignificant whitespace is allowed before or after any of the six
252
+ structural characters.
253
+
254
+ ws = *(
255
+ %x20 / ; Space
256
+ %x09 / ; Horizontal tab
257
+ %x0A / ; Line feed or New line
258
+ %x0D ) ; Carriage return
259
+
260
+ 3. Values
261
+
262
+ A JSON value MUST be an object, array, number, or string, or one of
263
+ the following three literal names:
264
+
265
+ false null true
266
+
267
+ The literal names MUST be lowercase. No other literal names are
268
+ allowed.
269
+
270
+ value = false / null / true / object / array / number / string
271
+
272
+ false = %x66.61.6c.73.65 ; false
273
+
274
+ null = %x6e.75.6c.6c ; null
275
+
276
+ true = %x74.72.75.65 ; true
277
+
278
+
279
+
280
+
281
+
282
+ Bray Standards Track [Page 5]
283
+
284
+ RFC 7159 JSON March 2014
285
+
286
+
287
+ 4. Objects
288
+
289
+ An object structure is represented as a pair of curly brackets
290
+ surrounding zero or more name/value pairs (or members). A name is a
291
+ string. A single colon comes after each name, separating the name
292
+ from the value. A single comma separates a value from a following
293
+ name. The names within an object SHOULD be unique.
294
+
295
+ object = begin-object [ member *( value-separator member ) ]
296
+ end-object
297
+
298
+ member = string name-separator value
299
+
300
+ An object whose names are all unique is interoperable in the sense
301
+ that all software implementations receiving that object will agree on
302
+ the name-value mappings. When the names within an object are not
303
+ unique, the behavior of software that receives such an object is
304
+ unpredictable. Many implementations report the last name/value pair
305
+ only. Other implementations report an error or fail to parse the
306
+ object, and some implementations report all of the name/value pairs,
307
+ including duplicates.
308
+
309
+ JSON parsing libraries have been observed to differ as to whether or
310
+ not they make the ordering of object members visible to calling
311
+ software. Implementations whose behavior does not depend on member
312
+ ordering will be interoperable in the sense that they will not be
313
+ affected by these differences.
314
+
315
+ 5. Arrays
316
+
317
+ An array structure is represented as square brackets surrounding zero
318
+ or more values (or elements). Elements are separated by commas.
319
+
320
+ array = begin-array [ value *( value-separator value ) ] end-array
321
+
322
+ There is no requirement that the values in an array be of the same
323
+ type.
324
+
325
+ 6. Numbers
326
+
327
+ The representation of numbers is similar to that used in most
328
+ programming languages. A number is represented in base 10 using
329
+ decimal digits. It contains an integer component that may be
330
+ prefixed with an optional minus sign, which may be followed by a
331
+ fraction part and/or an exponent part. Leading zeros are not
332
+ allowed.
333
+
334
+ A fraction part is a decimal point followed by one or more digits.
335
+
336
+
337
+
338
+ Bray Standards Track [Page 6]
339
+
340
+ RFC 7159 JSON March 2014
341
+
342
+
343
+ An exponent part begins with the letter E in upper or lower case,
344
+ which may be followed by a plus or minus sign. The E and optional
345
+ sign are followed by one or more digits.
346
+
347
+ Numeric values that cannot be represented in the grammar below (such
348
+ as Infinity and NaN) are not permitted.
349
+
350
+ number = [ minus ] int [ frac ] [ exp ]
351
+
352
+ decimal-point = %x2E ; .
353
+
354
+ digit1-9 = %x31-39 ; 1-9
355
+
356
+ e = %x65 / %x45 ; e E
357
+
358
+ exp = e [ minus / plus ] 1*DIGIT
359
+
360
+ frac = decimal-point 1*DIGIT
361
+
362
+ int = zero / ( digit1-9 *DIGIT )
363
+
364
+ minus = %x2D ; -
365
+
366
+ plus = %x2B ; +
367
+
368
+ zero = %x30 ; 0
369
+
370
+ This specification allows implementations to set limits on the range
371
+ and precision of numbers accepted. Since software that implements
372
+ IEEE 754-2008 binary64 (double precision) numbers [IEEE754] is
373
+ generally available and widely used, good interoperability can be
374
+ achieved by implementations that expect no more precision or range
375
+ than these provide, in the sense that implementations will
376
+ approximate JSON numbers within the expected precision. A JSON
377
+ number such as 1E400 or 3.141592653589793238462643383279 may indicate
378
+ potential interoperability problems, since it suggests that the
379
+ software that created it expects receiving software to have greater
380
+ capabilities for numeric magnitude and precision than is widely
381
+ available.
382
+
383
+ Note that when such software is used, numbers that are integers and
384
+ are in the range [-(2**53)+1, (2**53)-1] are interoperable in the
385
+ sense that implementations will agree exactly on their numeric
386
+ values.
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+ Bray Standards Track [Page 7]
395
+
396
+ RFC 7159 JSON March 2014
397
+
398
+
399
+ 7. Strings
400
+
401
+ The representation of strings is similar to conventions used in the C
402
+ family of programming languages. A string begins and ends with
403
+ quotation marks. All Unicode characters may be placed within the
404
+ quotation marks, except for the characters that must be escaped:
405
+ quotation mark, reverse solidus, and the control characters (U+0000
406
+ through U+001F).
407
+
408
+ Any character may be escaped. If the character is in the Basic
409
+ Multilingual Plane (U+0000 through U+FFFF), then it may be
410
+ represented as a six-character sequence: a reverse solidus, followed
411
+ by the lowercase letter u, followed by four hexadecimal digits that
412
+ encode the character's code point. The hexadecimal letters A though
413
+ F can be upper or lower case. So, for example, a string containing
414
+ only a single reverse solidus character may be represented as
415
+ "\u005C".
416
+
417
+ Alternatively, there are two-character sequence escape
418
+ representations of some popular characters. So, for example, a
419
+ string containing only a single reverse solidus character may be
420
+ represented more compactly as "\\".
421
+
422
+ To escape an extended character that is not in the Basic Multilingual
423
+ Plane, the character is represented as a 12-character sequence,
424
+ encoding the UTF-16 surrogate pair. So, for example, a string
425
+ containing only the G clef character (U+1D11E) may be represented as
426
+ "\uD834\uDD1E".
427
+
428
+ string = quotation-mark *char quotation-mark
429
+
430
+ char = unescaped /
431
+ escape (
432
+ %x22 / ; " quotation mark U+0022
433
+ %x5C / ; \ reverse solidus U+005C
434
+ %x2F / ; / solidus U+002F
435
+ %x62 / ; b backspace U+0008
436
+ %x66 / ; f form feed U+000C
437
+ %x6E / ; n line feed U+000A
438
+ %x72 / ; r carriage return U+000D
439
+ %x74 / ; t tab U+0009
440
+ %x75 4HEXDIG ) ; uXXXX U+XXXX
441
+
442
+ escape = %x5C ; \
443
+
444
+ quotation-mark = %x22 ; "
445
+
446
+ unescaped = %x20-21 / %x23-5B / %x5D-10FFFF
447
+
448
+
449
+
450
+ Bray Standards Track [Page 8]
451
+
452
+ RFC 7159 JSON March 2014
453
+
454
+
455
+ 8. String and Character Issues
456
+
457
+ 8.1. Character Encoding
458
+
459
+ JSON text SHALL be encoded in UTF-8, UTF-16, or UTF-32. The default
460
+ encoding is UTF-8, and JSON texts that are encoded in UTF-8 are
461
+ interoperable in the sense that they will be read successfully by the
462
+ maximum number of implementations; there are many implementations
463
+ that cannot successfully read texts in other encodings (such as
464
+ UTF-16 and UTF-32).
465
+
466
+ Implementations MUST NOT add a byte order mark to the beginning of a
467
+ JSON text. In the interests of interoperability, implementations
468
+ that parse JSON texts MAY ignore the presence of a byte order mark
469
+ rather than treating it as an error.
470
+
471
+ 8.2. Unicode Characters
472
+
473
+ When all the strings represented in a JSON text are composed entirely
474
+ of Unicode characters [UNICODE] (however escaped), then that JSON
475
+ text is interoperable in the sense that all software implementations
476
+ that parse it will agree on the contents of names and of string
477
+ values in objects and arrays.
478
+
479
+ However, the ABNF in this specification allows member names and
480
+ string values to contain bit sequences that cannot encode Unicode
481
+ characters; for example, "\uDEAD" (a single unpaired UTF-16
482
+ surrogate). Instances of this have been observed, for example, when
483
+ a library truncates a UTF-16 string without checking whether the
484
+ truncation split a surrogate pair. The behavior of software that
485
+ receives JSON texts containing such values is unpredictable; for
486
+ example, implementations might return different values for the length
487
+ of a string value or even suffer fatal runtime exceptions.
488
+
489
+ 8.3. String Comparison
490
+
491
+ Software implementations are typically required to test names of
492
+ object members for equality. Implementations that transform the
493
+ textual representation into sequences of Unicode code units and then
494
+ perform the comparison numerically, code unit by code unit, are
495
+ interoperable in the sense that implementations will agree in all
496
+ cases on equality or inequality of two strings. For example,
497
+ implementations that compare strings with escaped characters
498
+ unconverted may incorrectly find that "a\\b" and "a\u005Cb" are not
499
+ equal.
500
+
501
+
502
+
503
+
504
+
505
+
506
+ Bray Standards Track [Page 9]
507
+
508
+ RFC 7159 JSON March 2014
509
+
510
+
511
+ 9. Parsers
512
+
513
+ A JSON parser transforms a JSON text into another representation. A
514
+ JSON parser MUST accept all texts that conform to the JSON grammar.
515
+ A JSON parser MAY accept non-JSON forms or extensions.
516
+
517
+ An implementation may set limits on the size of texts that it
518
+ accepts. An implementation may set limits on the maximum depth of
519
+ nesting. An implementation may set limits on the range and precision
520
+ of numbers. An implementation may set limits on the length and
521
+ character contents of strings.
522
+
523
+ 10. Generators
524
+
525
+ A JSON generator produces JSON text. The resulting text MUST
526
+ strictly conform to the JSON grammar.
527
+
528
+ 11. IANA Considerations
529
+
530
+ The MIME media type for JSON text is application/json.
531
+
532
+ Type name: application
533
+
534
+ Subtype name: json
535
+
536
+ Required parameters: n/a
537
+
538
+ Optional parameters: n/a
539
+
540
+ Encoding considerations: binary
541
+
542
+ Security considerations: See [RFC7159], Section 12.
543
+
544
+ Interoperability considerations: Described in [RFC7159]
545
+
546
+ Published specification: [RFC7159]
547
+
548
+ Applications that use this media type:
549
+ JSON has been used to exchange data between applications written
550
+ in all of these programming languages: ActionScript, C, C#,
551
+ Clojure, ColdFusion, Common Lisp, E, Erlang, Go, Java, JavaScript,
552
+ Lua, Objective CAML, Perl, PHP, Python, Rebol, Ruby, Scala, and
553
+ Scheme.
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+
562
+ Bray Standards Track [Page 10]
563
+
564
+ RFC 7159 JSON March 2014
565
+
566
+
567
+ Additional information:
568
+ Magic number(s): n/a
569
+ File extension(s): .json
570
+ Macintosh file type code(s): TEXT
571
+
572
+ Person & email address to contact for further information:
573
+ IESG
574
+ <iesg@ietf.org>
575
+
576
+ Intended usage: COMMON
577
+
578
+ Restrictions on usage: none
579
+
580
+ Author:
581
+ Douglas Crockford
582
+ <douglas@crockford.com>
583
+
584
+ Change controller:
585
+ IESG
586
+ <iesg@ietf.org>
587
+
588
+ Note: No "charset" parameter is defined for this registration.
589
+ Adding one really has no effect on compliant recipients.
590
+
591
+ 12. Security Considerations
592
+
593
+ Generally, there are security issues with scripting languages. JSON
594
+ is a subset of JavaScript but excludes assignment and invocation.
595
+
596
+ Since JSON's syntax is borrowed from JavaScript, it is possible to
597
+ use that language's "eval()" function to parse JSON texts. This
598
+ generally constitutes an unacceptable security risk, since the text
599
+ could contain executable code along with data declarations. The same
600
+ consideration applies to the use of eval()-like functions in any
601
+ other programming language in which JSON texts conform to that
602
+ language's syntax.
603
+
604
+
605
+
606
+
607
+
608
+
609
+
610
+
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+ Bray Standards Track [Page 11]
619
+
620
+ RFC 7159 JSON March 2014
621
+
622
+
623
+ 13. Examples
624
+
625
+ This is a JSON object:
626
+
627
+ {
628
+ "Image": {
629
+ "Width": 800,
630
+ "Height": 600,
631
+ "Title": "View from 15th Floor",
632
+ "Thumbnail": {
633
+ "Url": "http://www.example.com/image/481989943",
634
+ "Height": 125,
635
+ "Width": 100
636
+ },
637
+ "Animated" : false,
638
+ "IDs": [116, 943, 234, 38793]
639
+ }
640
+ }
641
+
642
+ Its Image member is an object whose Thumbnail member is an object and
643
+ whose IDs member is an array of numbers.
644
+
645
+ This is a JSON array containing two objects:
646
+
647
+ [
648
+ {
649
+ "precision": "zip",
650
+ "Latitude": 37.7668,
651
+ "Longitude": -122.3959,
652
+ "Address": "",
653
+ "City": "SAN FRANCISCO",
654
+ "State": "CA",
655
+ "Zip": "94107",
656
+ "Country": "US"
657
+ },
658
+ {
659
+ "precision": "zip",
660
+ "Latitude": 37.371991,
661
+ "Longitude": -122.026020,
662
+ "Address": "",
663
+ "City": "SUNNYVALE",
664
+ "State": "CA",
665
+ "Zip": "94085",
666
+ "Country": "US"
667
+ }
668
+ ]
669
+
670
+
671
+
672
+
673
+
674
+ Bray Standards Track [Page 12]
675
+
676
+ RFC 7159 JSON March 2014
677
+
678
+
679
+ Here are three small JSON texts containing only values:
680
+
681
+ "Hello world!"
682
+
683
+ 42
684
+
685
+ true
686
+
687
+ 14. Contributors
688
+
689
+ RFC 4627 was written by Douglas Crockford. This document was
690
+ constructed by making a relatively small number of changes to that
691
+ document; thus, the vast majority of the text here is his.
692
+
693
+ 15. References
694
+
695
+ 15.1. Normative References
696
+
697
+ [IEEE754] IEEE, "IEEE Standard for Floating-Point Arithmetic", IEEE
698
+ Standard 754, August 2008,
699
+ <http://grouper.ieee.org/groups/754/>.
700
+
701
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
702
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
703
+
704
+ [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
705
+ Specifications: ABNF", STD 68, RFC 5234, January 2008.
706
+
707
+ [UNICODE] The Unicode Consortium, "The Unicode Standard",
708
+ <http://www.unicode.org/versions/latest/>.
709
+
710
+ 15.2. Informative References
711
+
712
+ [ECMA-262] Ecma International, "ECMAScript Language Specification
713
+ Edition 5.1", Standard ECMA-262, June 2011,
714
+ <http://www.ecma-international.org/publications/standards/
715
+ Ecma-262.htm>.
716
+
717
+ [ECMA-404] Ecma International, "The JSON Data Interchange Format",
718
+ Standard ECMA-404, October 2013,
719
+ <http://www.ecma-international.org/publications/standards/
720
+ Ecma-404.htm>.
721
+
722
+ [Err3607] RFC Errata, Errata ID 3607, RFC 3607,
723
+ <http://www.rfc-editor.org>.
724
+
725
+
726
+
727
+
728
+
729
+
730
+ Bray Standards Track [Page 13]
731
+
732
+ RFC 7159 JSON March 2014
733
+
734
+
735
+ [Err607] RFC Errata, Errata ID 607, RFC 607,
736
+ <http://www.rfc-editor.org>.
737
+
738
+ [RFC4627] Crockford, D., "The application/json Media Type for
739
+ JavaScript Object Notation (JSON)", RFC 4627, July 2006.
740
+
741
+
742
+
743
+
744
+
745
+
746
+
747
+
748
+
749
+
750
+
751
+
752
+
753
+
754
+
755
+
756
+
757
+
758
+
759
+
760
+
761
+
762
+
763
+
764
+
765
+
766
+
767
+
768
+
769
+
770
+
771
+
772
+
773
+
774
+
775
+
776
+
777
+
778
+
779
+
780
+
781
+
782
+
783
+
784
+
785
+
786
+ Bray Standards Track [Page 14]
787
+
788
+ RFC 7159 JSON March 2014
789
+
790
+
791
+ Appendix A. Changes from RFC 4627
792
+
793
+ This section lists changes between this document and the text in RFC
794
+ 4627.
795
+
796
+ o Changed the title and abstract of the document.
797
+
798
+ o Changed the reference to [UNICODE] to be not version specific.
799
+
800
+ o Added a "Specifications of JSON" section.
801
+
802
+ o Added an "Introduction to This Revision" section.
803
+
804
+ o Changed the definition of "JSON text" so that it can be any JSON
805
+ value, removing the constraint that it be an object or array.
806
+
807
+ o Added language about duplicate object member names, member
808
+ ordering, and interoperability.
809
+
810
+ o Clarified the absence of a requirement that values in an array be
811
+ of the same JSON type.
812
+
813
+ o Applied erratum #607 from RFC 4627 to correctly align the artwork
814
+ for the definition of "object".
815
+
816
+ o Changed "as sequences of digits" to "in the grammar below" in the
817
+ "Numbers" section, and made base-10-ness explicit.
818
+
819
+ o Added language about number interoperability as a function of
820
+ IEEE754, and added an IEEE754 reference.
821
+
822
+ o Added language about interoperability and Unicode characters and
823
+ about string comparisons. To do this, turned the old "Encoding"
824
+ section into a "String and Character Issues" section, with three
825
+ subsections: "Character Encoding", "Unicode Characters", and
826
+ "String Comparison".
827
+
828
+ o Changed guidance in the "Parsers" section to point out that
829
+ implementations may set limits on the range "and precision" of
830
+ numbers.
831
+
832
+ o Updated and tidied the "IANA Considerations" section.
833
+
834
+ o Made a real "Security Considerations" section and lifted the text
835
+ out of the previous "IANA Considerations" section.
836
+
837
+
838
+
839
+
840
+
841
+
842
+ Bray Standards Track [Page 15]
843
+
844
+ RFC 7159 JSON March 2014
845
+
846
+
847
+ o Applied erratum #3607 from RFC 4627 by removing the security
848
+ consideration that begins "A JSON text can be safely passed" and
849
+ the JavaScript code that went with that consideration.
850
+
851
+ o Added a note to the "Security Considerations" section pointing out
852
+ the risks of using the "eval()" function in JavaScript or any
853
+ other language in which JSON texts conform to that language's
854
+ syntax.
855
+
856
+ o Added a note to the "IANA Considerations" clarifying the absence
857
+ of a "charset" parameter for the application/json media type.
858
+
859
+ o Changed "100" to 100 and added a boolean field, both in the first
860
+ example.
861
+
862
+ o Added examples of JSON texts with simple values, neither objects
863
+ nor arrays.
864
+
865
+ o Added a "Contributors" section crediting Douglas Crockford.
866
+
867
+ o Added a reference to RFC 4627.
868
+
869
+ o Moved the ECMAScript reference from Normative to Informative and
870
+ updated it to reference ECMAScript 5.1, and added a reference to
871
+ ECMA 404.
872
+
873
+ Author's Address
874
+
875
+ Tim Bray (editor)
876
+ Google, Inc.
877
+
878
+ EMail: tbray@textuality.com
879
+
880
+
881
+
882
+
883
+
884
+
885
+
886
+
887
+
888
+
889
+
890
+
891
+
892
+
893
+
894
+
895
+
896
+
897
+
898
+ Bray Standards Track [Page 16]
899
+