zuora_connect_ui 0.8.1 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1158) hide show
  1. checksums.yaml +4 -4
  2. data/app/helpers/zuora_connect_ui/application_helper.rb +1 -1
  3. data/lib/zuora_connect_ui/version.rb +1 -1
  4. data/vendor/ruby/2.6.0/cache/actionpack-6.0.0.gem +0 -0
  5. data/vendor/ruby/2.6.0/cache/actionview-6.0.0.gem +0 -0
  6. data/vendor/ruby/2.6.0/cache/activesupport-6.0.0.gem +0 -0
  7. data/vendor/ruby/2.6.0/cache/railties-6.0.0.gem +0 -0
  8. data/vendor/ruby/2.6.0/cache/sass-rails-6.0.0.gem +0 -0
  9. data/vendor/ruby/2.6.0/cache/sassc-2.1.0-x86_64-linux.gem +0 -0
  10. data/vendor/ruby/2.6.0/cache/sassc-rails-2.1.2.gem +0 -0
  11. data/vendor/ruby/2.6.0/cache/zeitwerk-2.1.9.gem +0 -0
  12. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/CHANGELOG.md +311 -0
  13. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/MIT-LICENSE +21 -0
  14. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/README.rdoc +58 -0
  15. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/asset_paths.rb +12 -0
  16. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/base.rb +267 -0
  17. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/caching/fragments.rb +150 -0
  18. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/caching.rb +66 -0
  19. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/callbacks.rb +224 -0
  20. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/collector.rb +43 -0
  21. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/error.rb +6 -0
  22. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/helpers.rb +194 -0
  23. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/logger.rb +14 -0
  24. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/railties/routes_helpers.rb +20 -0
  25. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/rendering.rb +127 -0
  26. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/translation.rb +32 -0
  27. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/url_for.rb +35 -0
  28. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller.rb +27 -0
  29. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/api/api_rendering.rb +16 -0
  30. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/api.rb +150 -0
  31. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/base.rb +271 -0
  32. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/caching.rb +46 -0
  33. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/form_builder.rb +50 -0
  34. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/log_subscriber.rb +81 -0
  35. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/basic_implicit_render.rb +13 -0
  36. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/conditional_get.rb +280 -0
  37. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/content_security_policy.rb +52 -0
  38. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/cookies.rb +16 -0
  39. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/data_streaming.rb +151 -0
  40. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/default_headers.rb +17 -0
  41. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/etag_with_flash.rb +18 -0
  42. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/etag_with_template_digest.rb +57 -0
  43. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/exceptions.rb +74 -0
  44. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/flash.rb +61 -0
  45. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/force_ssl.rb +58 -0
  46. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/head.rb +60 -0
  47. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/helpers.rb +122 -0
  48. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/http_authentication.rb +518 -0
  49. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/implicit_render.rb +63 -0
  50. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/instrumentation.rb +105 -0
  51. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/live.rb +314 -0
  52. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/mime_responds.rb +324 -0
  53. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/parameter_encoding.rb +51 -0
  54. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/params_wrapper.rb +297 -0
  55. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/redirecting.rb +133 -0
  56. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/renderers.rb +181 -0
  57. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/rendering.rb +122 -0
  58. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/request_forgery_protection.rb +456 -0
  59. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/rescue.rb +28 -0
  60. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/streaming.rb +223 -0
  61. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/strong_parameters.rb +1105 -0
  62. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/testing.rb +16 -0
  63. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/url_for.rb +58 -0
  64. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal.rb +256 -0
  65. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/railtie.rb +89 -0
  66. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/railties/helpers.rb +24 -0
  67. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/renderer.rb +130 -0
  68. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/template_assertions.rb +11 -0
  69. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/test_case.rb +626 -0
  70. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller.rb +67 -0
  71. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/http/cache.rb +226 -0
  72. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/http/content_disposition.rb +45 -0
  73. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/http/content_security_policy.rb +284 -0
  74. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/http/filter_parameters.rb +86 -0
  75. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/http/filter_redirect.rb +37 -0
  76. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/http/headers.rb +132 -0
  77. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/http/mime_negotiation.rb +177 -0
  78. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/http/mime_type.rb +350 -0
  79. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/http/mime_types.rb +50 -0
  80. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/http/parameter_filter.rb +12 -0
  81. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/http/parameters.rb +136 -0
  82. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/http/rack_cache.rb +63 -0
  83. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/http/request.rb +427 -0
  84. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/http/response.rb +534 -0
  85. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/http/upload.rb +92 -0
  86. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/http/url.rb +350 -0
  87. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/formatter.rb +189 -0
  88. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/gtg/builder.rb +164 -0
  89. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/gtg/simulator.rb +41 -0
  90. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/gtg/transition_table.rb +158 -0
  91. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/nfa/builder.rb +78 -0
  92. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/nfa/dot.rb +36 -0
  93. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/nfa/simulator.rb +47 -0
  94. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/nfa/transition_table.rb +120 -0
  95. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/nodes/node.rb +141 -0
  96. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/parser.rb +199 -0
  97. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/parser.y +50 -0
  98. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/parser_extras.rb +31 -0
  99. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/path/pattern.rb +203 -0
  100. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/route.rb +204 -0
  101. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router/utils.rb +102 -0
  102. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router.rb +153 -0
  103. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/routes.rb +81 -0
  104. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/scanner.rb +71 -0
  105. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/visitors.rb +268 -0
  106. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/visualizer/fsm.css +30 -0
  107. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/visualizer/fsm.js +134 -0
  108. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/visualizer/index.html.erb +52 -0
  109. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey.rb +7 -0
  110. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/actionable_exceptions.rb +39 -0
  111. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/callbacks.rb +34 -0
  112. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/cookies.rb +663 -0
  113. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/debug_exceptions.rb +185 -0
  114. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/debug_locks.rb +124 -0
  115. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/debug_view.rb +68 -0
  116. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/exception_wrapper.rb +181 -0
  117. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/executor.rb +21 -0
  118. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/flash.rb +300 -0
  119. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/host_authorization.rb +103 -0
  120. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/public_exceptions.rb +61 -0
  121. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/reloader.rb +12 -0
  122. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/remote_ip.rb +181 -0
  123. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/request_id.rb +43 -0
  124. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/session/abstract_store.rb +92 -0
  125. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/session/cache_store.rb +54 -0
  126. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/session/cookie_store.rb +113 -0
  127. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/session/mem_cache_store.rb +28 -0
  128. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/show_exceptions.rb +62 -0
  129. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/ssl.rb +150 -0
  130. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/stack.rb +148 -0
  131. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/static.rb +129 -0
  132. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/_actions.html.erb +13 -0
  133. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/_actions.text.erb +0 -0
  134. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb +24 -0
  135. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.text.erb +23 -0
  136. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/_source.html.erb +29 -0
  137. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/_source.text.erb +8 -0
  138. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb +62 -0
  139. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.text.erb +9 -0
  140. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/blocked_host.html.erb +7 -0
  141. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/blocked_host.text.erb +5 -0
  142. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb +38 -0
  143. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.text.erb +9 -0
  144. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/invalid_statement.html.erb +24 -0
  145. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/invalid_statement.text.erb +15 -0
  146. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/layout.erb +165 -0
  147. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/missing_exact_template.html.erb +19 -0
  148. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/missing_exact_template.text.erb +3 -0
  149. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/missing_template.html.erb +11 -0
  150. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/missing_template.text.erb +3 -0
  151. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb +32 -0
  152. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/routing_error.text.erb +11 -0
  153. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/template_error.html.erb +20 -0
  154. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/template_error.text.erb +7 -0
  155. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/unknown_action.html.erb +6 -0
  156. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/rescues/unknown_action.text.erb +3 -0
  157. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/routes/_route.html.erb +16 -0
  158. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/templates/routes/_table.html.erb +203 -0
  159. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/railtie.rb +58 -0
  160. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/request/session.rb +242 -0
  161. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/request/utils.rb +78 -0
  162. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/endpoint.rb +17 -0
  163. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/inspector.rb +274 -0
  164. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/mapper.rb +2289 -0
  165. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/polymorphic_routes.rb +351 -0
  166. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/redirection.rb +201 -0
  167. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/route_set.rb +887 -0
  168. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/routes_proxy.rb +69 -0
  169. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/url_for.rb +237 -0
  170. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing.rb +261 -0
  171. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/system_test_case.rb +168 -0
  172. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/system_testing/browser.rb +80 -0
  173. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/system_testing/driver.rb +68 -0
  174. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/system_testing/server.rb +31 -0
  175. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb +97 -0
  176. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb +33 -0
  177. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/system_testing/test_helpers/undef_methods.rb +26 -0
  178. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/testing/assertion_response.rb +47 -0
  179. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/testing/assertions/response.rb +106 -0
  180. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/testing/assertions/routing.rb +234 -0
  181. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/testing/assertions.rb +24 -0
  182. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/testing/integration.rb +659 -0
  183. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/testing/request_encoder.rb +55 -0
  184. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/testing/test_process.rb +50 -0
  185. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/testing/test_request.rb +71 -0
  186. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/testing/test_response.rb +25 -0
  187. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch.rb +114 -0
  188. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_pack/gem_version.rb +17 -0
  189. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_pack/version.rb +10 -0
  190. data/vendor/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_pack.rb +26 -0
  191. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/CHANGELOG.md +271 -0
  192. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/MIT-LICENSE +21 -0
  193. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/README.rdoc +40 -0
  194. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/base.rb +312 -0
  195. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/buffers.rb +67 -0
  196. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/cache_expiry.rb +54 -0
  197. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/context.rb +32 -0
  198. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/dependency_tracker.rb +175 -0
  199. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/digestor.rb +126 -0
  200. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/flows.rb +76 -0
  201. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/gem_version.rb +17 -0
  202. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/active_model_helper.rb +55 -0
  203. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/asset_tag_helper.rb +488 -0
  204. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/asset_url_helper.rb +470 -0
  205. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/atom_feed_helper.rb +205 -0
  206. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/cache_helper.rb +271 -0
  207. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/capture_helper.rb +216 -0
  208. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/controller_helper.rb +36 -0
  209. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/csp_helper.rb +26 -0
  210. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/csrf_helper.rb +35 -0
  211. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/date_helper.rb +1200 -0
  212. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/debug_helper.rb +36 -0
  213. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/form_helper.rb +2569 -0
  214. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/form_options_helper.rb +896 -0
  215. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/form_tag_helper.rb +920 -0
  216. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/javascript_helper.rb +95 -0
  217. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/number_helper.rb +456 -0
  218. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/output_safety_helper.rb +70 -0
  219. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/rendering_helper.rb +101 -0
  220. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/sanitize_helper.rb +171 -0
  221. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tag_helper.rb +314 -0
  222. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/base.rb +196 -0
  223. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/check_box.rb +66 -0
  224. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/checkable.rb +18 -0
  225. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/collection_check_boxes.rb +36 -0
  226. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/collection_helpers.rb +119 -0
  227. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/collection_radio_buttons.rb +31 -0
  228. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/collection_select.rb +30 -0
  229. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/color_field.rb +27 -0
  230. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/date_field.rb +15 -0
  231. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/date_select.rb +74 -0
  232. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/datetime_field.rb +32 -0
  233. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/datetime_local_field.rb +21 -0
  234. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/datetime_select.rb +10 -0
  235. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/email_field.rb +10 -0
  236. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/file_field.rb +10 -0
  237. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/grouped_collection_select.rb +31 -0
  238. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/hidden_field.rb +10 -0
  239. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/label.rb +81 -0
  240. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/month_field.rb +15 -0
  241. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/number_field.rb +20 -0
  242. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/password_field.rb +14 -0
  243. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/placeholderable.rb +24 -0
  244. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/radio_button.rb +33 -0
  245. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/range_field.rb +10 -0
  246. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/search_field.rb +27 -0
  247. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/select.rb +43 -0
  248. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/tel_field.rb +10 -0
  249. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/text_area.rb +24 -0
  250. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/text_field.rb +34 -0
  251. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/time_field.rb +15 -0
  252. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/time_select.rb +10 -0
  253. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/time_zone_select.rb +22 -0
  254. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/translator.rb +39 -0
  255. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/url_field.rb +10 -0
  256. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags/week_field.rb +15 -0
  257. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/tags.rb +44 -0
  258. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/text_helper.rb +486 -0
  259. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/translation_helper.rb +145 -0
  260. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers/url_helper.rb +676 -0
  261. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/helpers.rb +66 -0
  262. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/layouts.rb +433 -0
  263. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/locale/en.yml +56 -0
  264. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/log_subscriber.rb +96 -0
  265. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/lookup_context.rb +316 -0
  266. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/model_naming.rb +14 -0
  267. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/path_set.rb +95 -0
  268. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/railtie.rb +105 -0
  269. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/record_identifier.rb +112 -0
  270. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/renderer/abstract_renderer.rb +108 -0
  271. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/renderer/partial_renderer/collection_caching.rb +103 -0
  272. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/renderer/partial_renderer.rb +563 -0
  273. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/renderer/renderer.rb +68 -0
  274. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/renderer/streaming_template_renderer.rb +105 -0
  275. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/renderer/template_renderer.rb +108 -0
  276. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/rendering.rb +171 -0
  277. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/routing_url_for.rb +146 -0
  278. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/tasks/cache_digests.rake +25 -0
  279. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/template/error.rb +161 -0
  280. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/template/handlers/builder.rb +25 -0
  281. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/template/handlers/erb/erubi.rb +87 -0
  282. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/template/handlers/erb.rb +84 -0
  283. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/template/handlers/html.rb +11 -0
  284. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/template/handlers/raw.rb +11 -0
  285. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/template/handlers.rb +92 -0
  286. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/template/html.rb +43 -0
  287. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/template/inline.rb +22 -0
  288. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/template/raw_file.rb +28 -0
  289. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/template/resolver.rb +394 -0
  290. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/template/sources/file.rb +17 -0
  291. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/template/sources.rb +13 -0
  292. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/template/text.rb +35 -0
  293. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/template/types.rb +57 -0
  294. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/template.rb +393 -0
  295. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/test_case.rb +300 -0
  296. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/testing/resolvers.rb +67 -0
  297. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/unbound_template.rb +32 -0
  298. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/version.rb +10 -0
  299. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/view_paths.rb +129 -0
  300. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view.rb +98 -0
  301. data/vendor/ruby/2.6.0/gems/actionview-6.0.0/lib/assets/compiled/rails-ujs.js +746 -0
  302. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/CHANGELOG.md +572 -0
  303. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/MIT-LICENSE +20 -0
  304. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/README.rdoc +40 -0
  305. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/actionable_error.rb +48 -0
  306. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/all.rb +5 -0
  307. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/array_inquirer.rb +48 -0
  308. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/backtrace_cleaner.rb +132 -0
  309. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/benchmarkable.rb +51 -0
  310. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/builder.rb +8 -0
  311. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/cache/file_store.rb +196 -0
  312. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/cache/mem_cache_store.rb +212 -0
  313. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/cache/memory_store.rb +174 -0
  314. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/cache/null_store.rb +48 -0
  315. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/cache/redis_cache_store.rb +488 -0
  316. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/cache/strategy/local_cache.rb +194 -0
  317. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/cache/strategy/local_cache_middleware.rb +45 -0
  318. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/cache.rb +830 -0
  319. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/callbacks.rb +856 -0
  320. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/concern.rb +171 -0
  321. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/concurrency/load_interlock_aware_monitor.rb +17 -0
  322. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/concurrency/share_lock.rb +227 -0
  323. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/configurable.rb +146 -0
  324. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/array/access.rb +104 -0
  325. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/array/conversions.rb +213 -0
  326. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/array/extract.rb +21 -0
  327. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/array/extract_options.rb +31 -0
  328. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/array/grouping.rb +109 -0
  329. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/array/inquiry.rb +19 -0
  330. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/array/prepend_and_append.rb +5 -0
  331. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/array/wrap.rb +48 -0
  332. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/array.rb +9 -0
  333. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/benchmark.rb +16 -0
  334. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/big_decimal/conversions.rb +14 -0
  335. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/big_decimal.rb +3 -0
  336. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/class/attribute.rb +141 -0
  337. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/class/attribute_accessors.rb +6 -0
  338. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/class/subclasses.rb +54 -0
  339. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/class.rb +4 -0
  340. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/date/acts_like.rb +10 -0
  341. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/date/blank.rb +14 -0
  342. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/date/calculations.rb +146 -0
  343. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/date/conversions.rb +96 -0
  344. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/date/zones.rb +8 -0
  345. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/date.rb +7 -0
  346. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/date_and_time/calculations.rb +351 -0
  347. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/date_and_time/compatibility.rb +16 -0
  348. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/date_and_time/zones.rb +41 -0
  349. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/date_time/acts_like.rb +16 -0
  350. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/date_time/blank.rb +14 -0
  351. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/date_time/calculations.rb +211 -0
  352. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/date_time/compatibility.rb +18 -0
  353. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/date_time/conversions.rb +107 -0
  354. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/date_time.rb +7 -0
  355. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/digest/uuid.rb +53 -0
  356. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/digest.rb +3 -0
  357. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/enumerable.rb +188 -0
  358. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/file/atomic.rb +70 -0
  359. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/file.rb +3 -0
  360. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/hash/compact.rb +5 -0
  361. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/hash/conversions.rb +263 -0
  362. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/hash/deep_merge.rb +34 -0
  363. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/hash/deep_transform_values.rb +46 -0
  364. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/hash/except.rb +24 -0
  365. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/hash/indifferent_access.rb +24 -0
  366. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/hash/keys.rb +143 -0
  367. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/hash/reverse_merge.rb +25 -0
  368. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/hash/slice.rb +26 -0
  369. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/hash/transform_values.rb +5 -0
  370. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/hash.rb +10 -0
  371. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/integer/inflections.rb +31 -0
  372. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/integer/multiple.rb +12 -0
  373. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/integer/time.rb +22 -0
  374. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/integer.rb +5 -0
  375. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/kernel/concern.rb +14 -0
  376. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/kernel/reporting.rb +45 -0
  377. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/kernel/singleton_class.rb +8 -0
  378. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/kernel.rb +5 -0
  379. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/load_error.rb +9 -0
  380. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/marshal.rb +24 -0
  381. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/module/aliasing.rb +31 -0
  382. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/module/anonymous.rb +30 -0
  383. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/module/attr_internal.rb +38 -0
  384. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/module/attribute_accessors.rb +212 -0
  385. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/module/attribute_accessors_per_thread.rb +144 -0
  386. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/module/concerning.rb +134 -0
  387. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/module/delegation.rb +313 -0
  388. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/module/deprecation.rb +25 -0
  389. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/module/introspection.rb +86 -0
  390. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/module/reachable.rb +6 -0
  391. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/module/redefine_method.rb +40 -0
  392. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/module/remove_method.rb +17 -0
  393. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/module.rb +13 -0
  394. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/name_error.rb +38 -0
  395. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/numeric/bytes.rb +66 -0
  396. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/numeric/conversions.rb +136 -0
  397. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/numeric/inquiry.rb +5 -0
  398. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/numeric/time.rb +66 -0
  399. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/numeric.rb +5 -0
  400. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/object/acts_like.rb +21 -0
  401. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/object/blank.rb +155 -0
  402. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/object/conversions.rb +6 -0
  403. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/object/deep_dup.rb +55 -0
  404. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/object/duplicable.rb +49 -0
  405. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/object/inclusion.rb +29 -0
  406. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/object/instance_variables.rb +30 -0
  407. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/object/json.rb +228 -0
  408. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/object/to_param.rb +3 -0
  409. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/object/to_query.rb +89 -0
  410. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/object/try.rb +156 -0
  411. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/object/with_options.rb +82 -0
  412. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/object.rb +16 -0
  413. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/range/compare_range.rb +70 -0
  414. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/range/conversions.rb +41 -0
  415. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/range/each.rb +25 -0
  416. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/range/include_range.rb +9 -0
  417. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/range/include_time_with_zone.rb +23 -0
  418. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/range/overlaps.rb +10 -0
  419. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/range.rb +7 -0
  420. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/regexp.rb +7 -0
  421. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/securerandom.rb +45 -0
  422. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/string/access.rb +114 -0
  423. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/string/behavior.rb +8 -0
  424. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/string/conversions.rb +59 -0
  425. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/string/exclude.rb +13 -0
  426. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/string/filters.rb +145 -0
  427. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/string/indent.rb +45 -0
  428. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/string/inflections.rb +259 -0
  429. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/string/inquiry.rb +15 -0
  430. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/string/multibyte.rb +58 -0
  431. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/string/output_safety.rb +314 -0
  432. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/string/starts_ends_with.rb +6 -0
  433. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/string/strip.rb +27 -0
  434. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/string/zones.rb +16 -0
  435. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/string.rb +15 -0
  436. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/time/acts_like.rb +10 -0
  437. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/time/calculations.rb +344 -0
  438. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/time/compatibility.rb +16 -0
  439. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/time/conversions.rb +72 -0
  440. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/time/zones.rb +113 -0
  441. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/time.rb +7 -0
  442. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/uri.rb +25 -0
  443. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext.rb +5 -0
  444. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/current_attributes.rb +203 -0
  445. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/dependencies/autoload.rb +79 -0
  446. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/dependencies/interlock.rb +57 -0
  447. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/dependencies/zeitwerk_integration.rb +110 -0
  448. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/dependencies.rb +806 -0
  449. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/deprecation/behaviors.rb +109 -0
  450. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/deprecation/constant_accessor.rb +52 -0
  451. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/deprecation/instance_delegator.rb +39 -0
  452. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/deprecation/method_wrappers.rb +78 -0
  453. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/deprecation/proxy_wrappers.rb +173 -0
  454. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/deprecation/reporting.rb +114 -0
  455. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/deprecation.rb +46 -0
  456. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/descendants_tracker.rb +109 -0
  457. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/digest.rb +20 -0
  458. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/duration/iso8601_parser.rb +124 -0
  459. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/duration/iso8601_serializer.rb +54 -0
  460. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/duration.rb +433 -0
  461. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/encrypted_configuration.rb +45 -0
  462. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/encrypted_file.rb +100 -0
  463. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/evented_file_update_checker.rb +235 -0
  464. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/execution_wrapper.rb +129 -0
  465. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/executor.rb +8 -0
  466. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/file_update_checker.rb +163 -0
  467. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/gem_version.rb +17 -0
  468. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/gzip.rb +38 -0
  469. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/hash_with_indifferent_access.rb +399 -0
  470. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/i18n.rb +16 -0
  471. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/i18n_railtie.rb +126 -0
  472. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/inflections.rb +72 -0
  473. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/inflector/inflections.rb +257 -0
  474. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/inflector/methods.rb +398 -0
  475. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/inflector/transliterate.rb +147 -0
  476. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/inflector.rb +9 -0
  477. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/json/decoding.rb +76 -0
  478. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/json/encoding.rb +134 -0
  479. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/json.rb +4 -0
  480. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/key_generator.rb +41 -0
  481. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/lazy_load_hooks.rb +82 -0
  482. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/locale/en.rb +31 -0
  483. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/locale/en.yml +135 -0
  484. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/log_subscriber/test_helper.rb +106 -0
  485. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/log_subscriber.rb +135 -0
  486. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/logger.rb +93 -0
  487. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/logger_silence.rb +45 -0
  488. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/logger_thread_safe_level.rb +56 -0
  489. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/message_encryptor.rb +227 -0
  490. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/message_verifier.rb +205 -0
  491. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/messages/metadata.rb +71 -0
  492. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/messages/rotation_configuration.rb +22 -0
  493. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/messages/rotator.rb +56 -0
  494. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/multibyte/chars.rb +216 -0
  495. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/multibyte/unicode.rb +157 -0
  496. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/multibyte.rb +23 -0
  497. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications/fanout.rb +244 -0
  498. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications/instrumenter.rb +164 -0
  499. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications.rb +253 -0
  500. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/number_helper/number_converter.rb +184 -0
  501. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/number_helper/number_to_currency_converter.rb +46 -0
  502. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/number_helper/number_to_delimited_converter.rb +31 -0
  503. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/number_helper/number_to_human_converter.rb +70 -0
  504. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/number_helper/number_to_human_size_converter.rb +61 -0
  505. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/number_helper/number_to_percentage_converter.rb +16 -0
  506. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/number_helper/number_to_phone_converter.rb +60 -0
  507. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/number_helper/number_to_rounded_converter.rb +56 -0
  508. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/number_helper/rounding_helper.rb +66 -0
  509. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/number_helper.rb +378 -0
  510. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/option_merger.rb +27 -0
  511. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/ordered_hash.rb +50 -0
  512. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/ordered_options.rb +85 -0
  513. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/parameter_filter.rb +129 -0
  514. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/per_thread_registry.rb +60 -0
  515. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/proxy_object.rb +15 -0
  516. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/rails.rb +29 -0
  517. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/railtie.rb +80 -0
  518. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/reloader.rb +130 -0
  519. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/rescuable.rb +174 -0
  520. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/security_utils.rb +31 -0
  521. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/string_inquirer.rb +34 -0
  522. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/subscriber.rb +169 -0
  523. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/tagged_logging.rb +88 -0
  524. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/test_case.rb +163 -0
  525. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/testing/assertions.rb +228 -0
  526. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/testing/autorun.rb +7 -0
  527. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/testing/constant_lookup.rb +51 -0
  528. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/testing/declarative.rb +28 -0
  529. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/testing/deprecation.rb +38 -0
  530. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/testing/file_fixtures.rb +38 -0
  531. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/testing/isolation.rb +110 -0
  532. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/testing/method_call_assertions.rb +70 -0
  533. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/testing/parallelization.rb +128 -0
  534. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/testing/setup_and_teardown.rb +55 -0
  535. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/testing/stream.rb +44 -0
  536. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/testing/tagged_logging.rb +27 -0
  537. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/testing/time_helpers.rb +200 -0
  538. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/time.rb +20 -0
  539. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/time_with_zone.rb +561 -0
  540. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/values/time_zone.rb +570 -0
  541. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/version.rb +10 -0
  542. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/xml_mini/jdom.rb +183 -0
  543. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/xml_mini/libxml.rb +80 -0
  544. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/xml_mini/libxmlsax.rb +83 -0
  545. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/xml_mini/nokogiri.rb +83 -0
  546. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/xml_mini/nokogirisax.rb +86 -0
  547. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/xml_mini/rexml.rb +130 -0
  548. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/xml_mini.rb +202 -0
  549. data/vendor/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support.rb +96 -0
  550. data/vendor/ruby/2.6.0/gems/railties-6.0.0/CHANGELOG.md +429 -0
  551. data/vendor/ruby/2.6.0/gems/railties-6.0.0/MIT-LICENSE +20 -0
  552. data/vendor/ruby/2.6.0/gems/railties-6.0.0/RDOC_MAIN.rdoc +98 -0
  553. data/vendor/ruby/2.6.0/gems/railties-6.0.0/README.rdoc +40 -0
  554. data/vendor/ruby/2.6.0/gems/railties-6.0.0/exe/rails +10 -0
  555. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/minitest/rails_plugin.rb +59 -0
  556. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/all.rb +24 -0
  557. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/api/generator.rb +38 -0
  558. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/api/task.rb +201 -0
  559. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/app_loader.rb +77 -0
  560. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/app_updater.rb +37 -0
  561. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/application/bootstrap.rb +81 -0
  562. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/application/configuration.rb +370 -0
  563. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/application/default_middleware_stack.rb +110 -0
  564. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/application/dummy_erb_compiler.rb +18 -0
  565. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/application/finisher.rb +250 -0
  566. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/application/routes_reloader.rb +55 -0
  567. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/application.rb +660 -0
  568. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/application_controller.rb +29 -0
  569. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/autoloaders.rb +48 -0
  570. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/backtrace_cleaner.rb +22 -0
  571. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/cli.rb +19 -0
  572. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/code_statistics.rb +115 -0
  573. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/code_statistics_calculator.rb +88 -0
  574. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/command/actions.rb +54 -0
  575. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/command/base.rb +165 -0
  576. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/command/behavior.rb +84 -0
  577. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/command/environment_argument.rb +40 -0
  578. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/command/helpers/editor.rb +35 -0
  579. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/command/spellchecker.rb +58 -0
  580. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/command.rb +114 -0
  581. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/application/application_command.rb +31 -0
  582. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/console/console_command.rb +106 -0
  583. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/credentials/USAGE +58 -0
  584. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/credentials/credentials_command.rb +112 -0
  585. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/db/system/change/change_command.rb +20 -0
  586. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/dbconsole/dbconsole_command.rb +182 -0
  587. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/destroy/destroy_command.rb +28 -0
  588. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/dev/dev_command.rb +19 -0
  589. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/encrypted/USAGE +28 -0
  590. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/encrypted/encrypted_command.rb +87 -0
  591. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/generate/generate_command.rb +30 -0
  592. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/help/USAGE +16 -0
  593. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/help/help_command.rb +15 -0
  594. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/initializers/initializers_command.rb +23 -0
  595. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/new/new_command.rb +19 -0
  596. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/notes/notes_command.rb +39 -0
  597. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/plugin/plugin_command.rb +45 -0
  598. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/rake/rake_command.rb +51 -0
  599. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/routes/routes_command.rb +37 -0
  600. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/runner/USAGE +20 -0
  601. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/runner/runner_command.rb +57 -0
  602. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/secrets/USAGE +60 -0
  603. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/secrets/secrets_command.rb +65 -0
  604. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/server/server_command.rb +312 -0
  605. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/test/test_command.rb +37 -0
  606. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands/version/version_command.rb +11 -0
  607. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/commands.rb +18 -0
  608. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/configuration.rb +131 -0
  609. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/console/app.rb +38 -0
  610. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/console/helpers.rb +19 -0
  611. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/dev_caching.rb +44 -0
  612. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/engine/commands.rb +9 -0
  613. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/engine/configuration.rb +91 -0
  614. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/engine/railties.rb +23 -0
  615. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/engine/updater.rb +21 -0
  616. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/engine.rb +731 -0
  617. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/gem_version.rb +17 -0
  618. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/actions/create_migration.rb +71 -0
  619. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/actions.rb +350 -0
  620. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/active_model.rb +80 -0
  621. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/app_base.rb +440 -0
  622. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/app_name.rb +50 -0
  623. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/base.rb +417 -0
  624. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/css/assets/assets_generator.rb +15 -0
  625. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/css/assets/templates/stylesheet.css +4 -0
  626. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/css/scaffold/scaffold_generator.rb +18 -0
  627. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/database.rb +58 -0
  628. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/erb/controller/controller_generator.rb +24 -0
  629. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/erb/controller/templates/view.html.erb.tt +2 -0
  630. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/erb/mailer/mailer_generator.rb +42 -0
  631. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/erb/mailer/templates/layout.html.erb.tt +13 -0
  632. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/erb/mailer/templates/layout.text.erb.tt +1 -0
  633. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/erb/mailer/templates/view.html.erb.tt +5 -0
  634. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/erb/mailer/templates/view.text.erb.tt +3 -0
  635. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/erb/scaffold/scaffold_generator.rb +33 -0
  636. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/erb/scaffold/templates/_form.html.erb.tt +37 -0
  637. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/erb/scaffold/templates/edit.html.erb.tt +6 -0
  638. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/erb/scaffold/templates/index.html.erb.tt +31 -0
  639. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/erb/scaffold/templates/new.html.erb.tt +5 -0
  640. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/erb/scaffold/templates/show.html.erb.tt +19 -0
  641. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/erb.rb +27 -0
  642. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/generated_attribute.rb +203 -0
  643. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/migration.rb +75 -0
  644. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/model_helpers.rb +37 -0
  645. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/named_base.rb +227 -0
  646. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/USAGE +14 -0
  647. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/app_generator.rb +588 -0
  648. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/Gemfile.tt +78 -0
  649. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/README.md.tt +24 -0
  650. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/Rakefile.tt +6 -0
  651. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/app/assets/config/manifest.js.tt +2 -0
  652. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/app/assets/stylesheets/application.css.tt +15 -0
  653. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/app/channels/application_cable/channel.rb.tt +4 -0
  654. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/app/channels/application_cable/connection.rb.tt +4 -0
  655. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb.tt +2 -0
  656. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/app/helpers/application_helper.rb.tt +2 -0
  657. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/app/javascript/channels/consumer.js +6 -0
  658. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/app/javascript/channels/index.js +5 -0
  659. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/app/javascript/packs/application.js.tt +23 -0
  660. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/app/jobs/application_job.rb.tt +7 -0
  661. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/app/mailers/application_mailer.rb.tt +4 -0
  662. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/app/models/application_record.rb.tt +3 -0
  663. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +24 -0
  664. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/app/views/layouts/mailer.html.erb.tt +13 -0
  665. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/app/views/layouts/mailer.text.erb.tt +1 -0
  666. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/bin/rails.tt +3 -0
  667. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/bin/rake.tt +3 -0
  668. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/bin/setup.tt +39 -0
  669. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/bin/yarn.tt +10 -0
  670. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/application.rb.tt +47 -0
  671. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/boot.rb.tt +6 -0
  672. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/cable.yml.tt +10 -0
  673. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/databases/frontbase.yml.tt +50 -0
  674. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/databases/ibm_db.yml.tt +86 -0
  675. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/databases/jdbc.yml.tt +69 -0
  676. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/databases/jdbcmysql.yml.tt +53 -0
  677. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml.tt +69 -0
  678. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/databases/jdbcsqlite3.yml.tt +24 -0
  679. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/databases/mysql.yml.tt +58 -0
  680. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/databases/oracle.yml.tt +61 -0
  681. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml.tt +85 -0
  682. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml.tt +25 -0
  683. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/databases/sqlserver.yml.tt +52 -0
  684. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/environment.rb.tt +5 -0
  685. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +72 -0
  686. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +124 -0
  687. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +56 -0
  688. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/initializers/application_controller_renderer.rb.tt +8 -0
  689. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/initializers/assets.rb.tt +16 -0
  690. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/initializers/backtrace_silencers.rb.tt +7 -0
  691. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/initializers/content_security_policy.rb.tt +32 -0
  692. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/initializers/cookies_serializer.rb.tt +5 -0
  693. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/initializers/cors.rb.tt +16 -0
  694. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb.tt +4 -0
  695. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/initializers/inflections.rb.tt +16 -0
  696. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/initializers/mime_types.rb.tt +4 -0
  697. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_6_0.rb.tt +45 -0
  698. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/initializers/wrap_parameters.rb.tt +16 -0
  699. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/locales/en.yml +33 -0
  700. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/puma.rb.tt +38 -0
  701. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/routes.rb.tt +3 -0
  702. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/spring.rb.tt +6 -0
  703. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config/storage.yml.tt +34 -0
  704. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/config.ru.tt +5 -0
  705. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/db/seeds.rb.tt +7 -0
  706. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/gitignore.tt +35 -0
  707. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/package.json.tt +11 -0
  708. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/public/404.html +67 -0
  709. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/public/422.html +67 -0
  710. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/public/500.html +66 -0
  711. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/public/apple-touch-icon-precomposed.png +0 -0
  712. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/public/apple-touch-icon.png +0 -0
  713. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/public/favicon.ico +0 -0
  714. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/public/robots.txt +1 -0
  715. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/ruby-version.tt +1 -0
  716. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/test/application_system_test_case.rb.tt +5 -0
  717. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/test/channels/application_cable/connection_test.rb.tt +11 -0
  718. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/app/templates/test/test_helper.rb.tt +19 -0
  719. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/application_record/application_record_generator.rb +9 -0
  720. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/assets/USAGE +17 -0
  721. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/assets/assets_generator.rb +26 -0
  722. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/assets/templates/stylesheet.css +4 -0
  723. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/controller/USAGE +18 -0
  724. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/controller/controller_generator.rb +77 -0
  725. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/controller/templates/controller.rb.tt +13 -0
  726. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/credentials/credentials_generator.rb +56 -0
  727. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/db/system/change/change_generator.rb +65 -0
  728. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/encrypted_file/encrypted_file_generator.rb +27 -0
  729. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/encryption_key_file/encryption_key_file_generator.rb +58 -0
  730. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/generator/USAGE +13 -0
  731. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/generator/generator_generator.rb +28 -0
  732. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/generator/templates/%file_name%_generator.rb.tt +3 -0
  733. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/generator/templates/USAGE.tt +8 -0
  734. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/helper/USAGE +13 -0
  735. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/helper/helper_generator.rb +20 -0
  736. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/helper/templates/helper.rb.tt +4 -0
  737. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/integration_test/USAGE +10 -0
  738. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/integration_test/integration_test_generator.rb +9 -0
  739. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/master_key/master_key_generator.rb +53 -0
  740. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/migration/USAGE +35 -0
  741. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/migration/migration_generator.rb +10 -0
  742. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/model/USAGE +114 -0
  743. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/model/model_generator.rb +14 -0
  744. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/USAGE +10 -0
  745. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/plugin_generator.rb +430 -0
  746. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/%name%.gemspec.tt +33 -0
  747. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/Gemfile.tt +48 -0
  748. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/MIT-LICENSE.tt +20 -0
  749. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/README.md.tt +28 -0
  750. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/Rakefile.tt +28 -0
  751. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/app/controllers/%namespaced_name%/application_controller.rb.tt +6 -0
  752. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/app/helpers/%namespaced_name%/application_helper.rb.tt +5 -0
  753. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/app/jobs/%namespaced_name%/application_job.rb.tt +5 -0
  754. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/app/mailers/%namespaced_name%/application_mailer.rb.tt +7 -0
  755. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/app/models/%namespaced_name%/application_record.rb.tt +6 -0
  756. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/app/views/layouts/%namespaced_name%/application.html.erb.tt +18 -0
  757. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/bin/rails.tt +30 -0
  758. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/bin/test.tt +4 -0
  759. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/config/routes.rb.tt +6 -0
  760. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/gitignore.tt +18 -0
  761. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/engine.rb.tt +7 -0
  762. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/railtie.rb.tt +5 -0
  763. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/version.rb.tt +1 -0
  764. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%.rb.tt +7 -0
  765. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/lib/tasks/%namespaced_name%_tasks.rake.tt +4 -0
  766. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/rails/application.rb.tt +23 -0
  767. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/rails/boot.rb.tt +5 -0
  768. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/rails/dummy_manifest.js.tt +10 -0
  769. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/rails/engine_manifest.js.tt +6 -0
  770. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/rails/javascripts.js.tt +17 -0
  771. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/rails/routes.rb.tt +3 -0
  772. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/rails/stylesheets.css +15 -0
  773. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/test/%namespaced_name%_test.rb.tt +7 -0
  774. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/test/application_system_test_case.rb.tt +5 -0
  775. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/test/integration/navigation_test.rb.tt +7 -0
  776. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/plugin/templates/test/test_helper.rb.tt +29 -0
  777. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/resource/USAGE +23 -0
  778. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/resource/resource_generator.rb +21 -0
  779. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/resource_route/resource_route_generator.rb +48 -0
  780. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/scaffold/USAGE +41 -0
  781. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/scaffold/scaffold_generator.rb +36 -0
  782. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/scaffold/templates/scaffold.css +80 -0
  783. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/scaffold_controller/USAGE +19 -0
  784. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb +51 -0
  785. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb.tt +61 -0
  786. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/scaffold_controller/templates/controller.rb.tt +68 -0
  787. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/system_test/USAGE +10 -0
  788. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/system_test/system_test_generator.rb +9 -0
  789. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/task/USAGE +9 -0
  790. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/task/task_generator.rb +13 -0
  791. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/rails/task/templates/task.rb.tt +8 -0
  792. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/resource_helpers.rb +82 -0
  793. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_case.rb +37 -0
  794. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/controller/controller_generator.rb +17 -0
  795. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/controller/templates/functional_test.rb.tt +23 -0
  796. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/generator/generator_generator.rb +28 -0
  797. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/generator/templates/generator_test.rb.tt +16 -0
  798. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/helper/helper_generator.rb +11 -0
  799. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/integration/integration_generator.rb +21 -0
  800. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/integration/templates/integration_test.rb.tt +9 -0
  801. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/job/job_generator.rb +20 -0
  802. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/job/templates/unit_test.rb.tt +9 -0
  803. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/mailer/mailer_generator.rb +28 -0
  804. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/mailer/templates/functional_test.rb.tt +21 -0
  805. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/mailer/templates/preview.rb.tt +13 -0
  806. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/model/model_generator.rb +37 -0
  807. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/model/templates/fixtures.yml.tt +29 -0
  808. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/model/templates/unit_test.rb.tt +9 -0
  809. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/plugin/plugin_generator.rb +15 -0
  810. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/plugin/templates/%file_name%_test.rb.tt +7 -0
  811. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/plugin/templates/test_helper.rb +2 -0
  812. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +69 -0
  813. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/scaffold/templates/api_functional_test.rb.tt +44 -0
  814. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb.tt +54 -0
  815. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/scaffold/templates/system_test.rb.tt +57 -0
  816. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/system/system_generator.rb +24 -0
  817. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/system/templates/application_system_test_case.rb.tt +5 -0
  818. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit/system/templates/system_test.rb.tt +9 -0
  819. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/test_unit.rb +10 -0
  820. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/testing/assertions.rb +127 -0
  821. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/testing/behaviour.rb +114 -0
  822. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators/testing/setup_and_teardown.rb +20 -0
  823. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/generators.rb +325 -0
  824. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/info.rb +105 -0
  825. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/info_controller.rb +46 -0
  826. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/initializable.rb +95 -0
  827. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/mailers_controller.rb +100 -0
  828. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/paths.rb +237 -0
  829. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/plugin/test.rb +9 -0
  830. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/rack/logger.rb +80 -0
  831. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/rack.rb +7 -0
  832. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/railtie/configurable.rb +37 -0
  833. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/railtie/configuration.rb +102 -0
  834. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/railtie.rb +260 -0
  835. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/ruby_version_check.rb +15 -0
  836. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/secrets.rb +105 -0
  837. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/source_annotation_extractor.rb +162 -0
  838. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/tasks/annotations.rake +22 -0
  839. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/tasks/dev.rake +11 -0
  840. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/tasks/engine.rake +88 -0
  841. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/tasks/framework.rake +62 -0
  842. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/tasks/initializers.rake +9 -0
  843. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/tasks/log.rake +41 -0
  844. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/tasks/middleware.rake +9 -0
  845. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/tasks/misc.rake +79 -0
  846. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/tasks/restart.rake +9 -0
  847. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/tasks/routes.rake +9 -0
  848. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/tasks/statistics.rake +35 -0
  849. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/tasks/tmp.rake +44 -0
  850. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/tasks/yarn.rake +18 -0
  851. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/tasks/zeitwerk.rake +66 -0
  852. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/tasks.rb +23 -0
  853. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/templates/layouts/application.html.erb +36 -0
  854. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/templates/rails/info/properties.html.erb +1 -0
  855. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/templates/rails/info/routes.html.erb +9 -0
  856. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/templates/rails/mailers/email.html.erb +162 -0
  857. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/templates/rails/mailers/index.html.erb +8 -0
  858. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/templates/rails/mailers/mailer.html.erb +6 -0
  859. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/templates/rails/welcome/index.html.erb +74 -0
  860. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/test_help.rb +50 -0
  861. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/test_unit/line_filtering.rb +13 -0
  862. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/test_unit/railtie.rb +29 -0
  863. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/test_unit/reporter.rb +110 -0
  864. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/test_unit/runner.rb +143 -0
  865. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/test_unit/testing.rake +58 -0
  866. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/version.rb +10 -0
  867. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails/welcome_controller.rb +10 -0
  868. data/vendor/ruby/2.6.0/gems/railties-6.0.0/lib/rails.rb +119 -0
  869. data/vendor/ruby/2.6.0/gems/sass-rails-6.0.0/MIT-LICENSE +21 -0
  870. data/vendor/ruby/2.6.0/gems/sass-rails-6.0.0/README.md +103 -0
  871. data/vendor/ruby/2.6.0/gems/sass-rails-6.0.0/lib/sass/rails/importer.rb +5 -0
  872. data/vendor/ruby/2.6.0/gems/sass-rails-6.0.0/lib/sass/rails/logger.rb +5 -0
  873. data/vendor/ruby/2.6.0/gems/sass-rails-6.0.0/lib/sass/rails/railtie.rb +1 -0
  874. data/vendor/ruby/2.6.0/gems/sass-rails-6.0.0/lib/sass/rails/version.rb +5 -0
  875. data/vendor/ruby/2.6.0/gems/sass-rails-6.0.0/lib/sass/rails.rb +1 -0
  876. data/vendor/ruby/2.6.0/gems/sass-rails-6.0.0/lib/sass-rails.rb +1 -0
  877. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/CHANGELOG.md +75 -0
  878. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/CODE_OF_CONDUCT.md +10 -0
  879. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/Gemfile +2 -0
  880. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/LICENSE.txt +22 -0
  881. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/README.md +68 -0
  882. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/Rakefile +53 -0
  883. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/depend +4 -0
  884. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/extconf.rb +84 -0
  885. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/VERSION +1 -0
  886. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/contrib/plugin.cpp +60 -0
  887. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/include/sass/base.h +96 -0
  888. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/include/sass/context.h +170 -0
  889. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/include/sass/functions.h +139 -0
  890. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/include/sass/values.h +145 -0
  891. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/include/sass/version.h +12 -0
  892. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/include/sass.h +15 -0
  893. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/include/sass2scss.h +120 -0
  894. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/ast.cpp +963 -0
  895. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/ast.hpp +905 -0
  896. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/ast2c.cpp +80 -0
  897. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/ast2c.hpp +39 -0
  898. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/ast_def_macros.hpp +132 -0
  899. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/ast_fwd_decl.cpp +30 -0
  900. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/ast_fwd_decl.hpp +341 -0
  901. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/ast_sel_cmp.cpp +909 -0
  902. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/ast_sel_unify.cpp +280 -0
  903. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/ast_selectors.cpp +1475 -0
  904. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/ast_selectors.hpp +568 -0
  905. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/ast_supports.cpp +130 -0
  906. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/ast_supports.hpp +121 -0
  907. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/ast_values.cpp +967 -0
  908. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/ast_values.hpp +489 -0
  909. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/b64/cencode.h +32 -0
  910. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/b64/encode.h +79 -0
  911. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/backtrace.cpp +50 -0
  912. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/backtrace.hpp +29 -0
  913. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/base64vlq.cpp +47 -0
  914. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/base64vlq.hpp +30 -0
  915. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/bind.cpp +312 -0
  916. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/bind.hpp +15 -0
  917. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/c2ast.cpp +64 -0
  918. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/c2ast.hpp +14 -0
  919. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/c99func.c +54 -0
  920. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/cencode.c +108 -0
  921. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/check_nesting.cpp +394 -0
  922. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/check_nesting.hpp +66 -0
  923. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/color_maps.cpp +651 -0
  924. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/color_maps.hpp +331 -0
  925. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/constants.cpp +194 -0
  926. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/constants.hpp +194 -0
  927. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/context.cpp +890 -0
  928. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/context.hpp +152 -0
  929. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/cssize.cpp +604 -0
  930. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/cssize.hpp +77 -0
  931. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/debug.hpp +43 -0
  932. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/debugger.hpp +807 -0
  933. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/emitter.cpp +298 -0
  934. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/emitter.hpp +103 -0
  935. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/environment.cpp +260 -0
  936. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/environment.hpp +119 -0
  937. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/error_handling.cpp +212 -0
  938. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/error_handling.hpp +229 -0
  939. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/eval.cpp +1657 -0
  940. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/eval.hpp +112 -0
  941. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/expand.cpp +822 -0
  942. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/expand.hpp +78 -0
  943. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/extend.cpp +2132 -0
  944. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/extend.hpp +86 -0
  945. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/file.cpp +522 -0
  946. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/file.hpp +133 -0
  947. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/fn_colors.cpp +594 -0
  948. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/fn_colors.hpp +85 -0
  949. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/fn_lists.cpp +284 -0
  950. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/fn_lists.hpp +34 -0
  951. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/fn_maps.cpp +94 -0
  952. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/fn_maps.hpp +30 -0
  953. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/fn_miscs.cpp +256 -0
  954. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/fn_miscs.hpp +40 -0
  955. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/fn_numbers.cpp +220 -0
  956. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/fn_numbers.hpp +45 -0
  957. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/fn_selectors.cpp +235 -0
  958. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/fn_selectors.hpp +35 -0
  959. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/fn_strings.cpp +254 -0
  960. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/fn_strings.hpp +34 -0
  961. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/fn_utils.cpp +156 -0
  962. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/fn_utils.hpp +56 -0
  963. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/inspect.cpp +1087 -0
  964. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/inspect.hpp +99 -0
  965. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/json.cpp +1436 -0
  966. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/json.hpp +117 -0
  967. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/kwd_arg_macros.hpp +28 -0
  968. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/lexer.cpp +184 -0
  969. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/lexer.hpp +315 -0
  970. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/listize.cpp +84 -0
  971. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/listize.hpp +38 -0
  972. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/mapping.hpp +18 -0
  973. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/memory/SharedPtr.cpp +33 -0
  974. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/memory/SharedPtr.hpp +286 -0
  975. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/node.cpp +322 -0
  976. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/node.hpp +118 -0
  977. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/operation.hpp +213 -0
  978. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/operators.cpp +266 -0
  979. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/operators.hpp +30 -0
  980. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/output.cpp +339 -0
  981. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/output.hpp +47 -0
  982. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/parser.cpp +3153 -0
  983. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/parser.hpp +402 -0
  984. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/paths.hpp +71 -0
  985. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/plugins.cpp +188 -0
  986. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/plugins.hpp +57 -0
  987. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/position.cpp +184 -0
  988. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/position.hpp +124 -0
  989. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/prelexer.cpp +1780 -0
  990. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/prelexer.hpp +484 -0
  991. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/remove_placeholders.cpp +87 -0
  992. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/remove_placeholders.hpp +34 -0
  993. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/sass.cpp +155 -0
  994. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/sass.hpp +142 -0
  995. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/sass2scss.cpp +895 -0
  996. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/sass_context.cpp +772 -0
  997. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/sass_context.hpp +129 -0
  998. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/sass_functions.cpp +210 -0
  999. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/sass_functions.hpp +50 -0
  1000. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/sass_util.cpp +152 -0
  1001. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/sass_util.hpp +256 -0
  1002. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/sass_values.cpp +365 -0
  1003. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/sass_values.hpp +82 -0
  1004. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/source_map.cpp +198 -0
  1005. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/source_map.hpp +62 -0
  1006. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/subset_map.cpp +58 -0
  1007. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/subset_map.hpp +76 -0
  1008. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/to_value.cpp +114 -0
  1009. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/to_value.hpp +46 -0
  1010. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/units.cpp +505 -0
  1011. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/units.hpp +110 -0
  1012. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/utf8/checked.h +336 -0
  1013. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/utf8/core.h +332 -0
  1014. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/utf8/unchecked.h +235 -0
  1015. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/utf8.h +34 -0
  1016. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/utf8_string.cpp +105 -0
  1017. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/utf8_string.hpp +37 -0
  1018. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/util.cpp +725 -0
  1019. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/util.hpp +106 -0
  1020. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/util_string.cpp +75 -0
  1021. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/util_string.hpp +19 -0
  1022. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/values.cpp +140 -0
  1023. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/ext/libsass/src/values.hpp +12 -0
  1024. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/dependency.rb +17 -0
  1025. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/engine.rb +139 -0
  1026. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/error.rb +37 -0
  1027. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/functions_handler.rb +75 -0
  1028. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/import_handler.rb +50 -0
  1029. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/importer.rb +31 -0
  1030. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/libsass.so +0 -0
  1031. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/native/lib_c.rb +21 -0
  1032. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/native/native_context_api.rb +147 -0
  1033. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/native/native_functions_api.rb +159 -0
  1034. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/native/sass2scss_api.rb +10 -0
  1035. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/native/sass_input_style.rb +13 -0
  1036. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/native/sass_output_style.rb +12 -0
  1037. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/native/sass_value.rb +97 -0
  1038. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/native/string_list.rb +10 -0
  1039. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/native.rb +62 -0
  1040. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/sass_2_scss.rb +9 -0
  1041. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script/functions.rb +8 -0
  1042. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script/value/bool.rb +32 -0
  1043. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script/value/color.rb +95 -0
  1044. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script/value/list.rb +136 -0
  1045. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script/value/map.rb +69 -0
  1046. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script/value/number.rb +389 -0
  1047. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script/value/string.rb +96 -0
  1048. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script/value.rb +137 -0
  1049. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script/value_conversion/base.rb +13 -0
  1050. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script/value_conversion/bool.rb +13 -0
  1051. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script/value_conversion/color.rb +18 -0
  1052. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script/value_conversion/list.rb +25 -0
  1053. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script/value_conversion/map.rb +21 -0
  1054. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script/value_conversion/number.rb +13 -0
  1055. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script/value_conversion/string.rb +17 -0
  1056. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script/value_conversion.rb +69 -0
  1057. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/script.rb +19 -0
  1058. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/util/normalized_map.rb +117 -0
  1059. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/util.rb +231 -0
  1060. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc/version.rb +5 -0
  1061. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/lib/sassc.rb +57 -0
  1062. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/sassc.gemspec +69 -0
  1063. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/test/custom_importer_test.rb +127 -0
  1064. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/test/engine_test.rb +314 -0
  1065. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/test/error_test.rb +29 -0
  1066. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/test/fixtures/paths.scss +10 -0
  1067. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/test/functions_test.rb +303 -0
  1068. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/test/native_test.rb +213 -0
  1069. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/test/output_style_test.rb +107 -0
  1070. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/test/sass_2_scss_test.rb +14 -0
  1071. data/vendor/ruby/2.6.0/gems/sassc-2.1.0-x86_64-linux/test/test_helper.rb +45 -0
  1072. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/CODE_OF_CONDUCT.md +10 -0
  1073. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/Gemfile +7 -0
  1074. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/LICENSE.txt +22 -0
  1075. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/README.md +124 -0
  1076. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/Rakefile +33 -0
  1077. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/gemfiles/rails_4_2.gemfile +6 -0
  1078. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/gemfiles/rails_5_2.gemfile +6 -0
  1079. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/gemfiles/sprockets-rails_2_3.gemfile +6 -0
  1080. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/gemfiles/sprockets-rails_3_0.gemfile +6 -0
  1081. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/gemfiles/sprockets_3_0.gemfile +6 -0
  1082. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/gemfiles/sprockets_4_0.gemfile +6 -0
  1083. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/lib/rails/generators/sass/assets/assets_generator.rb +13 -0
  1084. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/lib/rails/generators/sass/assets/templates/stylesheet.sass +3 -0
  1085. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/lib/rails/generators/sass/scaffold/scaffold_generator.rb +9 -0
  1086. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/lib/rails/generators/sass_scaffold.rb +15 -0
  1087. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/lib/rails/generators/scss/assets/assets_generator.rb +13 -0
  1088. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/lib/rails/generators/scss/assets/templates/stylesheet.scss +3 -0
  1089. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/lib/rails/generators/scss/scaffold/scaffold_generator.rb +10 -0
  1090. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/lib/sassc/rails/compressor.rb +34 -0
  1091. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/lib/sassc/rails/functions.rb +13 -0
  1092. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/lib/sassc/rails/importer.rb +181 -0
  1093. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/lib/sassc/rails/railtie.rb +81 -0
  1094. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/lib/sassc/rails/template.rb +113 -0
  1095. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/lib/sassc/rails/version.rb +7 -0
  1096. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/lib/sassc/rails.rb +10 -0
  1097. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/lib/sassc-rails.rb +4 -0
  1098. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/sassc-rails.gemspec +32 -0
  1099. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/config/manifest.js +3 -0
  1100. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/fonts/fake-font.ttf +0 -0
  1101. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/images/1x1.png +0 -0
  1102. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/images/rails.png +0 -0
  1103. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/_top_level_partial.scss +3 -0
  1104. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/application.scss +5 -0
  1105. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/css_application.css +11 -0
  1106. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/css_erb_handler.css.erb +3 -0
  1107. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/css_sass_erb_handler.sass.erb +2 -0
  1108. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/css_sass_handler.css.sass +2 -0
  1109. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/css_scss_erb_handler.scss.erb +3 -0
  1110. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/css_scss_handler.css.scss +3 -0
  1111. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/erb_render_with_context.css.erb +1804 -0
  1112. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/glob_multiple_extensions_test.scss +1 -0
  1113. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/glob_test.scss +1 -0
  1114. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/globbed/globbed.scss +3 -0
  1115. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/globbed/nested/nested_glob.scss +3 -0
  1116. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/globbed_multiple_extensions/glob.scss.erb +3 -0
  1117. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/helpers_test.scss +18 -0
  1118. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/imports_test.scss +23 -0
  1119. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/in_load_paths/partial_in_load_paths.scss +3 -0
  1120. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/partials/_css_sass_import.sass +5 -0
  1121. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/partials/_explicit_extension_import.foo +3 -0
  1122. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/partials/_sass_import.sass +2 -0
  1123. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/partials/_scss_import.scss +9 -0
  1124. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/partials/_without_css_ext.scss +3 -0
  1125. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/partials/subfolder/_relative_sass.sass +2 -0
  1126. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/partials/subfolder/_relative_scss.scss +3 -0
  1127. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/partials/subfolder/relative_not_a_partial.scss +3 -0
  1128. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/sass_erb_handler.sass.erb +2 -0
  1129. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/scss_erb_handler.scss.erb +3 -0
  1130. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/special_characters.scss +5 -0
  1131. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/subfolder/_defaults.scss +3 -0
  1132. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/subfolder/another_plain.css +3 -0
  1133. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/subfolder/plain.css +3 -0
  1134. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/subfolder/second_level.scss +2 -0
  1135. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/dummy/app/assets/stylesheets/syntax_error.scss +3 -0
  1136. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/sassc_rails_test.rb +334 -0
  1137. data/vendor/ruby/2.6.0/gems/sassc-rails-2.1.2/test/test_helper.rb +17 -0
  1138. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.9/README.md +533 -0
  1139. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.9/lib/zeitwerk/error.rb +7 -0
  1140. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.9/lib/zeitwerk/explicit_namespace.rb +80 -0
  1141. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.9/lib/zeitwerk/gem_inflector.rb +19 -0
  1142. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.9/lib/zeitwerk/inflector.rb +19 -0
  1143. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.9/lib/zeitwerk/kernel.rb +33 -0
  1144. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.9/lib/zeitwerk/loader/callbacks.rb +71 -0
  1145. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.9/lib/zeitwerk/loader.rb +742 -0
  1146. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.9/lib/zeitwerk/real_mod_name.rb +15 -0
  1147. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.9/lib/zeitwerk/registry.rb +147 -0
  1148. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.9/lib/zeitwerk/version.rb +5 -0
  1149. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.9/lib/zeitwerk.rb +12 -0
  1150. data/vendor/ruby/2.6.0/specifications/actionpack-6.0.0.gemspec +53 -0
  1151. data/vendor/ruby/2.6.0/specifications/actionview-6.0.0.gemspec +53 -0
  1152. data/vendor/ruby/2.6.0/specifications/activesupport-6.0.0.gemspec +47 -0
  1153. data/vendor/ruby/2.6.0/specifications/railties-6.0.0.gemspec +53 -0
  1154. data/vendor/ruby/2.6.0/specifications/sass-rails-6.0.0.gemspec +32 -0
  1155. data/vendor/ruby/2.6.0/specifications/sassc-2.1.0-x86_64-linux.gemspec +58 -0
  1156. data/vendor/ruby/2.6.0/specifications/sassc-rails-2.1.2.gemspec +56 -0
  1157. data/vendor/ruby/2.6.0/specifications/zeitwerk-2.1.9.gemspec +21 -0
  1158. metadata +1156 -2
@@ -0,0 +1,1436 @@
1
+ /*
2
+ Copyright (C) 2011 Joseph A. Adams (joeyadams3.14159@gmail.com)
3
+ All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
22
+ */
23
+
24
+ #ifdef _MSC_VER
25
+ #define _CRT_SECURE_NO_WARNINGS
26
+ #define _CRT_NONSTDC_NO_DEPRECATE
27
+ #endif
28
+
29
+ #include "json.hpp"
30
+
31
+ // include utf8 library used by libsass
32
+ // ToDo: replace internal json utf8 code
33
+ #include "utf8.h"
34
+
35
+ #include <assert.h>
36
+ #include <stdint.h>
37
+ #include <stdio.h>
38
+ #include <stdlib.h>
39
+ #include <string.h>
40
+
41
+ #if defined(_MSC_VER) && _MSC_VER < 1900
42
+ #include <stdarg.h>
43
+ #ifdef snprintf
44
+ #undef snprintf
45
+ #endif
46
+ extern "C" int snprintf(char *, size_t, const char *, ...);
47
+ #endif
48
+
49
+ #define out_of_memory() do { \
50
+ fprintf(stderr, "Out of memory.\n"); \
51
+ exit(EXIT_FAILURE); \
52
+ } while (0)
53
+
54
+ /* Sadly, strdup is not portable. */
55
+ static char *json_strdup(const char *str)
56
+ {
57
+ char *ret = (char*) malloc(strlen(str) + 1);
58
+ if (ret == NULL)
59
+ out_of_memory();
60
+ strcpy(ret, str);
61
+ return ret;
62
+ }
63
+
64
+ /* String buffer */
65
+
66
+ typedef struct
67
+ {
68
+ char *cur;
69
+ char *end;
70
+ char *start;
71
+ } SB;
72
+
73
+ static void sb_init(SB *sb)
74
+ {
75
+ sb->start = (char*) malloc(17);
76
+ if (sb->start == NULL)
77
+ out_of_memory();
78
+ sb->cur = sb->start;
79
+ sb->end = sb->start + 16;
80
+ }
81
+
82
+ /* sb and need may be evaluated multiple times. */
83
+ #define sb_need(sb, need) do { \
84
+ if ((sb)->end - (sb)->cur < (need)) \
85
+ sb_grow(sb, need); \
86
+ } while (0)
87
+
88
+ static void sb_grow(SB *sb, int need)
89
+ {
90
+ size_t length = sb->cur - sb->start;
91
+ size_t alloc = sb->end - sb->start;
92
+
93
+ do {
94
+ alloc *= 2;
95
+ } while (alloc < length + need);
96
+
97
+ sb->start = (char*) realloc(sb->start, alloc + 1);
98
+ if (sb->start == NULL)
99
+ out_of_memory();
100
+ sb->cur = sb->start + length;
101
+ sb->end = sb->start + alloc;
102
+ }
103
+
104
+ static void sb_put(SB *sb, const char *bytes, int count)
105
+ {
106
+ sb_need(sb, count);
107
+ memcpy(sb->cur, bytes, count);
108
+ sb->cur += count;
109
+ }
110
+
111
+ #define sb_putc(sb, c) do { \
112
+ if ((sb)->cur >= (sb)->end) \
113
+ sb_grow(sb, 1); \
114
+ *(sb)->cur++ = (c); \
115
+ } while (0)
116
+
117
+ static void sb_puts(SB *sb, const char *str)
118
+ {
119
+ sb_put(sb, str, (int)strlen(str));
120
+ }
121
+
122
+ static char *sb_finish(SB *sb)
123
+ {
124
+ *sb->cur = 0;
125
+ assert(sb->start <= sb->cur && strlen(sb->start) == (size_t)(sb->cur - sb->start));
126
+ return sb->start;
127
+ }
128
+
129
+ static void sb_free(SB *sb)
130
+ {
131
+ free(sb->start);
132
+ }
133
+
134
+ /*
135
+ * Unicode helper functions
136
+ *
137
+ * These are taken from the ccan/charset module and customized a bit.
138
+ * Putting them here means the compiler can (choose to) inline them,
139
+ * and it keeps ccan/json from having a dependency.
140
+ *
141
+ * We use uint32_t Type for Unicode codepoints.
142
+ * We need our own because wchar_t might be 16 bits.
143
+ */
144
+
145
+ /*
146
+ * Validate a single UTF-8 character starting at @s.
147
+ * The string must be null-terminated.
148
+ *
149
+ * If it's valid, return its length (1 thru 4).
150
+ * If it's invalid or clipped, return 0.
151
+ *
152
+ * This function implements the syntax given in RFC3629, which is
153
+ * the same as that given in The Unicode Standard, Version 6.0.
154
+ *
155
+ * It has the following properties:
156
+ *
157
+ * * All codepoints U+0000..U+10FFFF may be encoded,
158
+ * except for U+D800..U+DFFF, which are reserved
159
+ * for UTF-16 surrogate pair encoding.
160
+ * * UTF-8 byte sequences longer than 4 bytes are not permitted,
161
+ * as they exceed the range of Unicode.
162
+ * * The sixty-six Unicode "non-characters" are permitted
163
+ * (namely, U+FDD0..U+FDEF, U+xxFFFE, and U+xxFFFF).
164
+ */
165
+ static int utf8_validate_cz(const char *s)
166
+ {
167
+ unsigned char c = *s++;
168
+
169
+ if (c <= 0x7F) { /* 00..7F */
170
+ return 1;
171
+ } else if (c <= 0xC1) { /* 80..C1 */
172
+ /* Disallow overlong 2-byte sequence. */
173
+ return 0;
174
+ } else if (c <= 0xDF) { /* C2..DF */
175
+ /* Make sure subsequent byte is in the range 0x80..0xBF. */
176
+ if (((unsigned char)*s++ & 0xC0) != 0x80)
177
+ return 0;
178
+
179
+ return 2;
180
+ } else if (c <= 0xEF) { /* E0..EF */
181
+ /* Disallow overlong 3-byte sequence. */
182
+ if (c == 0xE0 && (unsigned char)*s < 0xA0)
183
+ return 0;
184
+
185
+ /* Disallow U+D800..U+DFFF. */
186
+ if (c == 0xED && (unsigned char)*s > 0x9F)
187
+ return 0;
188
+
189
+ /* Make sure subsequent bytes are in the range 0x80..0xBF. */
190
+ if (((unsigned char)*s++ & 0xC0) != 0x80)
191
+ return 0;
192
+ if (((unsigned char)*s++ & 0xC0) != 0x80)
193
+ return 0;
194
+
195
+ return 3;
196
+ } else if (c <= 0xF4) { /* F0..F4 */
197
+ /* Disallow overlong 4-byte sequence. */
198
+ if (c == 0xF0 && (unsigned char)*s < 0x90)
199
+ return 0;
200
+
201
+ /* Disallow codepoints beyond U+10FFFF. */
202
+ if (c == 0xF4 && (unsigned char)*s > 0x8F)
203
+ return 0;
204
+
205
+ /* Make sure subsequent bytes are in the range 0x80..0xBF. */
206
+ if (((unsigned char)*s++ & 0xC0) != 0x80)
207
+ return 0;
208
+ if (((unsigned char)*s++ & 0xC0) != 0x80)
209
+ return 0;
210
+ if (((unsigned char)*s++ & 0xC0) != 0x80)
211
+ return 0;
212
+
213
+ return 4;
214
+ } else { /* F5..FF */
215
+ return 0;
216
+ }
217
+ }
218
+
219
+ /* Validate a null-terminated UTF-8 string. */
220
+ static bool utf8_validate(const char *s)
221
+ {
222
+ int len;
223
+
224
+ for (; *s != 0; s += len) {
225
+ len = utf8_validate_cz(s);
226
+ if (len == 0)
227
+ return false;
228
+ }
229
+
230
+ return true;
231
+ }
232
+
233
+ /*
234
+ * Read a single UTF-8 character starting at @s,
235
+ * returning the length, in bytes, of the character read.
236
+ *
237
+ * This function assumes input is valid UTF-8,
238
+ * and that there are enough characters in front of @s.
239
+ */
240
+ static int utf8_read_char(const char *s, uint32_t *out)
241
+ {
242
+ const unsigned char *c = (const unsigned char*) s;
243
+
244
+ assert(utf8_validate_cz(s));
245
+
246
+ if (c[0] <= 0x7F) {
247
+ /* 00..7F */
248
+ *out = c[0];
249
+ return 1;
250
+ } else if (c[0] <= 0xDF) {
251
+ /* C2..DF (unless input is invalid) */
252
+ *out = ((uint32_t)c[0] & 0x1F) << 6 |
253
+ ((uint32_t)c[1] & 0x3F);
254
+ return 2;
255
+ } else if (c[0] <= 0xEF) {
256
+ /* E0..EF */
257
+ *out = ((uint32_t)c[0] & 0xF) << 12 |
258
+ ((uint32_t)c[1] & 0x3F) << 6 |
259
+ ((uint32_t)c[2] & 0x3F);
260
+ return 3;
261
+ } else {
262
+ /* F0..F4 (unless input is invalid) */
263
+ *out = ((uint32_t)c[0] & 0x7) << 18 |
264
+ ((uint32_t)c[1] & 0x3F) << 12 |
265
+ ((uint32_t)c[2] & 0x3F) << 6 |
266
+ ((uint32_t)c[3] & 0x3F);
267
+ return 4;
268
+ }
269
+ }
270
+
271
+ /*
272
+ * Write a single UTF-8 character to @s,
273
+ * returning the length, in bytes, of the character written.
274
+ *
275
+ * @unicode must be U+0000..U+10FFFF, but not U+D800..U+DFFF.
276
+ *
277
+ * This function will write up to 4 bytes to @out.
278
+ */
279
+ static int utf8_write_char(uint32_t unicode, char *out)
280
+ {
281
+ unsigned char *o = (unsigned char*) out;
282
+
283
+ assert(unicode <= 0x10FFFF && !(unicode >= 0xD800 && unicode <= 0xDFFF));
284
+
285
+ if (unicode <= 0x7F) {
286
+ /* U+0000..U+007F */
287
+ *o++ = unicode;
288
+ return 1;
289
+ } else if (unicode <= 0x7FF) {
290
+ /* U+0080..U+07FF */
291
+ *o++ = 0xC0 | unicode >> 6;
292
+ *o++ = 0x80 | (unicode & 0x3F);
293
+ return 2;
294
+ } else if (unicode <= 0xFFFF) {
295
+ /* U+0800..U+FFFF */
296
+ *o++ = 0xE0 | unicode >> 12;
297
+ *o++ = 0x80 | (unicode >> 6 & 0x3F);
298
+ *o++ = 0x80 | (unicode & 0x3F);
299
+ return 3;
300
+ } else {
301
+ /* U+10000..U+10FFFF */
302
+ *o++ = 0xF0 | unicode >> 18;
303
+ *o++ = 0x80 | (unicode >> 12 & 0x3F);
304
+ *o++ = 0x80 | (unicode >> 6 & 0x3F);
305
+ *o++ = 0x80 | (unicode & 0x3F);
306
+ return 4;
307
+ }
308
+ }
309
+
310
+ /*
311
+ * Compute the Unicode codepoint of a UTF-16 surrogate pair.
312
+ *
313
+ * @uc should be 0xD800..0xDBFF, and @lc should be 0xDC00..0xDFFF.
314
+ * If they aren't, this function returns false.
315
+ */
316
+ static bool from_surrogate_pair(uint16_t uc, uint16_t lc, uint32_t *unicode)
317
+ {
318
+ if (uc >= 0xD800 && uc <= 0xDBFF && lc >= 0xDC00 && lc <= 0xDFFF) {
319
+ *unicode = 0x10000 + ((((uint32_t)uc & 0x3FF) << 10) | (lc & 0x3FF));
320
+ return true;
321
+ } else {
322
+ return false;
323
+ }
324
+ }
325
+
326
+ /*
327
+ * Construct a UTF-16 surrogate pair given a Unicode codepoint.
328
+ *
329
+ * @unicode must be U+10000..U+10FFFF.
330
+ */
331
+ static void to_surrogate_pair(uint32_t unicode, uint16_t *uc, uint16_t *lc)
332
+ {
333
+ uint32_t n;
334
+
335
+ assert(unicode >= 0x10000 && unicode <= 0x10FFFF);
336
+
337
+ n = unicode - 0x10000;
338
+ *uc = ((n >> 10) & 0x3FF) | 0xD800;
339
+ *lc = (n & 0x3FF) | 0xDC00;
340
+ }
341
+
342
+ static bool is_space (const char *c);
343
+ static bool is_digit (const char *c);
344
+ static bool parse_value (const char **sp, JsonNode **out);
345
+ static bool parse_string (const char **sp, char **out);
346
+ static bool parse_number (const char **sp, double *out);
347
+ static bool parse_array (const char **sp, JsonNode **out);
348
+ static bool parse_object (const char **sp, JsonNode **out);
349
+ static bool parse_hex16 (const char **sp, uint16_t *out);
350
+
351
+ static bool expect_literal (const char **sp, const char *str);
352
+ static void skip_space (const char **sp);
353
+
354
+ static void emit_value (SB *out, const JsonNode *node);
355
+ static void emit_value_indented (SB *out, const JsonNode *node, const char *space, int indent_level);
356
+ static void emit_string (SB *out, const char *str);
357
+ static void emit_number (SB *out, double num);
358
+ static void emit_array (SB *out, const JsonNode *array);
359
+ static void emit_array_indented (SB *out, const JsonNode *array, const char *space, int indent_level);
360
+ static void emit_object (SB *out, const JsonNode *object);
361
+ static void emit_object_indented (SB *out, const JsonNode *object, const char *space, int indent_level);
362
+
363
+ static int write_hex16(char *out, uint16_t val);
364
+
365
+ static JsonNode *mknode(JsonTag tag);
366
+ static void append_node(JsonNode *parent, JsonNode *child);
367
+ static void prepend_node(JsonNode *parent, JsonNode *child);
368
+ static void append_member(JsonNode *object, char *key, JsonNode *value);
369
+
370
+ /* Assertion-friendly validity checks */
371
+ static bool tag_is_valid(unsigned int tag);
372
+ static bool number_is_valid(const char *num);
373
+
374
+ JsonNode *json_decode(const char *json)
375
+ {
376
+ const char *s = json;
377
+ JsonNode *ret;
378
+
379
+ skip_space(&s);
380
+ if (!parse_value(&s, &ret))
381
+ return NULL;
382
+
383
+ skip_space(&s);
384
+ if (*s != 0) {
385
+ json_delete(ret);
386
+ return NULL;
387
+ }
388
+
389
+ return ret;
390
+ }
391
+
392
+ char *json_encode(const JsonNode *node)
393
+ {
394
+ return json_stringify(node, NULL);
395
+ }
396
+
397
+ char *json_encode_string(const char *str)
398
+ {
399
+ SB sb;
400
+ sb_init(&sb);
401
+
402
+ try {
403
+ emit_string(&sb, str);
404
+ }
405
+ catch (std::exception&) {
406
+ sb_free(&sb);
407
+ throw;
408
+ }
409
+
410
+ return sb_finish(&sb);
411
+ }
412
+
413
+ char *json_stringify(const JsonNode *node, const char *space)
414
+ {
415
+ SB sb;
416
+ sb_init(&sb);
417
+
418
+ try {
419
+ if (space != NULL)
420
+ emit_value_indented(&sb, node, space, 0);
421
+ else
422
+ emit_value(&sb, node);
423
+ }
424
+ catch (std::exception&) {
425
+ sb_free(&sb);
426
+ throw;
427
+ }
428
+
429
+ return sb_finish(&sb);
430
+ }
431
+
432
+ void json_delete(JsonNode *node)
433
+ {
434
+ if (node != NULL) {
435
+ json_remove_from_parent(node);
436
+
437
+ switch (node->tag) {
438
+ case JSON_STRING:
439
+ free(node->string_);
440
+ break;
441
+ case JSON_ARRAY:
442
+ case JSON_OBJECT:
443
+ {
444
+ JsonNode *child, *next;
445
+ for (child = node->children.head; child != NULL; child = next) {
446
+ next = child->next;
447
+ json_delete(child);
448
+ }
449
+ break;
450
+ }
451
+ default:;
452
+ }
453
+
454
+ free(node);
455
+ }
456
+ }
457
+
458
+ bool json_validate(const char *json)
459
+ {
460
+ const char *s = json;
461
+
462
+ skip_space(&s);
463
+ if (!parse_value(&s, NULL))
464
+ return false;
465
+
466
+ skip_space(&s);
467
+ if (*s != 0)
468
+ return false;
469
+
470
+ return true;
471
+ }
472
+
473
+ JsonNode *json_find_element(JsonNode *array, int index)
474
+ {
475
+ JsonNode *element;
476
+ int i = 0;
477
+
478
+ if (array == NULL || array->tag != JSON_ARRAY)
479
+ return NULL;
480
+
481
+ json_foreach(element, array) {
482
+ if (i == index)
483
+ return element;
484
+ i++;
485
+ }
486
+
487
+ return NULL;
488
+ }
489
+
490
+ JsonNode *json_find_member(JsonNode *object, const char *name)
491
+ {
492
+ JsonNode *member;
493
+
494
+ if (object == NULL || object->tag != JSON_OBJECT)
495
+ return NULL;
496
+
497
+ json_foreach(member, object)
498
+ if (strcmp(member->key, name) == 0)
499
+ return member;
500
+
501
+ return NULL;
502
+ }
503
+
504
+ JsonNode *json_first_child(const JsonNode *node)
505
+ {
506
+ if (node != NULL && (node->tag == JSON_ARRAY || node->tag == JSON_OBJECT))
507
+ return node->children.head;
508
+ return NULL;
509
+ }
510
+
511
+ static JsonNode *mknode(JsonTag tag)
512
+ {
513
+ JsonNode *ret = (JsonNode*) calloc(1, sizeof(JsonNode));
514
+ if (ret == NULL)
515
+ out_of_memory();
516
+ ret->tag = tag;
517
+ return ret;
518
+ }
519
+
520
+ JsonNode *json_mknull(void)
521
+ {
522
+ return mknode(JSON_NULL);
523
+ }
524
+
525
+ JsonNode *json_mkbool(bool b)
526
+ {
527
+ JsonNode *ret = mknode(JSON_BOOL);
528
+ ret->bool_ = b;
529
+ return ret;
530
+ }
531
+
532
+ static JsonNode *mkstring(char *s)
533
+ {
534
+ JsonNode *ret = mknode(JSON_STRING);
535
+ ret->string_ = s;
536
+ return ret;
537
+ }
538
+
539
+ JsonNode *json_mkstring(const char *s)
540
+ {
541
+ return mkstring(json_strdup(s));
542
+ }
543
+
544
+ JsonNode *json_mknumber(double n)
545
+ {
546
+ JsonNode *node = mknode(JSON_NUMBER);
547
+ node->number_ = n;
548
+ return node;
549
+ }
550
+
551
+ JsonNode *json_mkarray(void)
552
+ {
553
+ return mknode(JSON_ARRAY);
554
+ }
555
+
556
+ JsonNode *json_mkobject(void)
557
+ {
558
+ return mknode(JSON_OBJECT);
559
+ }
560
+
561
+ static void append_node(JsonNode *parent, JsonNode *child)
562
+ {
563
+ if (child != NULL && parent != NULL) {
564
+ child->parent = parent;
565
+ child->prev = parent->children.tail;
566
+ child->next = NULL;
567
+
568
+ if (parent->children.tail != NULL)
569
+ parent->children.tail->next = child;
570
+ else
571
+ parent->children.head = child;
572
+ parent->children.tail = child;
573
+ }
574
+ }
575
+
576
+ static void prepend_node(JsonNode *parent, JsonNode *child)
577
+ {
578
+ if (child != NULL && parent != NULL) {
579
+ child->parent = parent;
580
+ child->prev = NULL;
581
+ child->next = parent->children.head;
582
+
583
+ if (parent->children.head != NULL)
584
+ parent->children.head->prev = child;
585
+ else
586
+ parent->children.tail = child;
587
+ parent->children.head = child;
588
+ }
589
+ }
590
+
591
+ static void append_member(JsonNode *object, char *key, JsonNode *value)
592
+ {
593
+ if (value != NULL && object != NULL) {
594
+ value->key = key;
595
+ append_node(object, value);
596
+ }
597
+ }
598
+
599
+ void json_append_element(JsonNode *array, JsonNode *element)
600
+ {
601
+ if (array != NULL && element !=NULL) {
602
+ assert(array->tag == JSON_ARRAY);
603
+ assert(element->parent == NULL);
604
+
605
+ append_node(array, element);
606
+ }
607
+ }
608
+
609
+ void json_prepend_element(JsonNode *array, JsonNode *element)
610
+ {
611
+ assert(array->tag == JSON_ARRAY);
612
+ assert(element->parent == NULL);
613
+
614
+ prepend_node(array, element);
615
+ }
616
+
617
+ void json_append_member(JsonNode *object, const char *key, JsonNode *value)
618
+ {
619
+ if (object != NULL && key != NULL && value != NULL) {
620
+ assert(object->tag == JSON_OBJECT);
621
+ assert(value->parent == NULL);
622
+
623
+ append_member(object, json_strdup(key), value);
624
+ }
625
+ }
626
+
627
+ void json_prepend_member(JsonNode *object, const char *key, JsonNode *value)
628
+ {
629
+ if (object != NULL && key != NULL && value != NULL) {
630
+ assert(object->tag == JSON_OBJECT);
631
+ assert(value->parent == NULL);
632
+
633
+ value->key = json_strdup(key);
634
+ prepend_node(object, value);
635
+ }
636
+ }
637
+
638
+ void json_remove_from_parent(JsonNode *node)
639
+ {
640
+ if (node != NULL) {
641
+ JsonNode *parent = node->parent;
642
+
643
+ if (parent != NULL) {
644
+ if (node->prev != NULL)
645
+ node->prev->next = node->next;
646
+ else
647
+ parent->children.head = node->next;
648
+
649
+ if (node->next != NULL)
650
+ node->next->prev = node->prev;
651
+ else
652
+ parent->children.tail = node->prev;
653
+
654
+ free(node->key);
655
+
656
+ node->parent = NULL;
657
+ node->prev = node->next = NULL;
658
+ node->key = NULL;
659
+ }
660
+ }
661
+ }
662
+
663
+ static bool parse_value(const char **sp, JsonNode **out)
664
+ {
665
+ const char *s = *sp;
666
+
667
+ switch (*s) {
668
+ case 'n':
669
+ if (expect_literal(&s, "null")) {
670
+ if (out)
671
+ *out = json_mknull();
672
+ *sp = s;
673
+ return true;
674
+ }
675
+ return false;
676
+
677
+ case 'f':
678
+ if (expect_literal(&s, "false")) {
679
+ if (out)
680
+ *out = json_mkbool(false);
681
+ *sp = s;
682
+ return true;
683
+ }
684
+ return false;
685
+
686
+ case 't':
687
+ if (expect_literal(&s, "true")) {
688
+ if (out)
689
+ *out = json_mkbool(true);
690
+ *sp = s;
691
+ return true;
692
+ }
693
+ return false;
694
+
695
+ case '"': {
696
+ char *str = NULL;
697
+ if (parse_string(&s, out ? &str : NULL)) {
698
+ if (out)
699
+ *out = mkstring(str);
700
+ *sp = s;
701
+ return true;
702
+ }
703
+ return false;
704
+ }
705
+
706
+ case '[':
707
+ if (parse_array(&s, out)) {
708
+ *sp = s;
709
+ return true;
710
+ }
711
+ return false;
712
+
713
+ case '{':
714
+ if (parse_object(&s, out)) {
715
+ *sp = s;
716
+ return true;
717
+ }
718
+ return false;
719
+
720
+ default: {
721
+ double num;
722
+ if (parse_number(&s, out ? &num : NULL)) {
723
+ if (out)
724
+ *out = json_mknumber(num);
725
+ *sp = s;
726
+ return true;
727
+ }
728
+ return false;
729
+ }
730
+ }
731
+ }
732
+
733
+ static bool parse_array(const char **sp, JsonNode **out)
734
+ {
735
+ const char *s = *sp;
736
+ JsonNode *ret = out ? json_mkarray() : NULL;
737
+ JsonNode *element = NULL;
738
+
739
+ if (*s++ != '[')
740
+ goto failure;
741
+ skip_space(&s);
742
+
743
+ if (*s == ']') {
744
+ s++;
745
+ goto success;
746
+ }
747
+
748
+ for (;;) {
749
+ if (!parse_value(&s, out ? &element : NULL))
750
+ goto failure;
751
+ skip_space(&s);
752
+
753
+ if (out)
754
+ json_append_element(ret, element);
755
+
756
+ if (*s == ']') {
757
+ s++;
758
+ goto success;
759
+ }
760
+
761
+ if (*s++ != ',')
762
+ goto failure;
763
+ skip_space(&s);
764
+ }
765
+
766
+ success:
767
+ *sp = s;
768
+ if (out)
769
+ *out = ret;
770
+ return true;
771
+
772
+ failure:
773
+ json_delete(ret);
774
+ return false;
775
+ }
776
+
777
+ static bool parse_object(const char **sp, JsonNode **out)
778
+ {
779
+ const char *s = *sp;
780
+ JsonNode *ret = out ? json_mkobject() : NULL;
781
+ char *key = NULL;
782
+ JsonNode *value = NULL;
783
+
784
+ if (*s++ != '{')
785
+ goto failure;
786
+ skip_space(&s);
787
+
788
+ if (*s == '}') {
789
+ s++;
790
+ goto success;
791
+ }
792
+
793
+ for (;;) {
794
+ if (!parse_string(&s, out ? &key : NULL))
795
+ goto failure;
796
+ skip_space(&s);
797
+
798
+ if (*s++ != ':')
799
+ goto failure_free_key;
800
+ skip_space(&s);
801
+
802
+ if (!parse_value(&s, out ? &value : NULL))
803
+ goto failure_free_key;
804
+ skip_space(&s);
805
+
806
+ if (out)
807
+ append_member(ret, key, value);
808
+
809
+ if (*s == '}') {
810
+ s++;
811
+ goto success;
812
+ }
813
+
814
+ if (*s++ != ',')
815
+ goto failure;
816
+ skip_space(&s);
817
+ }
818
+
819
+ success:
820
+ *sp = s;
821
+ if (out)
822
+ *out = ret;
823
+ return true;
824
+
825
+ failure_free_key:
826
+ if (out)
827
+ free(key);
828
+ failure:
829
+ json_delete(ret);
830
+ return false;
831
+ }
832
+
833
+ bool parse_string(const char **sp, char **out)
834
+ {
835
+ const char *s = *sp;
836
+ SB sb = { 0, 0, 0 };
837
+ char throwaway_buffer[4];
838
+ /* enough space for a UTF-8 character */
839
+ char *b;
840
+
841
+ if (*s++ != '"')
842
+ return false;
843
+
844
+ if (out) {
845
+ sb_init(&sb);
846
+ sb_need(&sb, 4);
847
+ b = sb.cur;
848
+ } else {
849
+ b = throwaway_buffer;
850
+ }
851
+
852
+ while (*s != '"') {
853
+ unsigned char c = *s++;
854
+
855
+ /* Parse next character, and write it to b. */
856
+ if (c == '\\') {
857
+ c = *s++;
858
+ switch (c) {
859
+ case '"':
860
+ case '\\':
861
+ case '/':
862
+ *b++ = c;
863
+ break;
864
+ case 'b':
865
+ *b++ = '\b';
866
+ break;
867
+ case 'f':
868
+ *b++ = '\f';
869
+ break;
870
+ case 'n':
871
+ *b++ = '\n';
872
+ break;
873
+ case 'r':
874
+ *b++ = '\r';
875
+ break;
876
+ case 't':
877
+ *b++ = '\t';
878
+ break;
879
+ case 'u':
880
+ {
881
+ uint16_t uc, lc;
882
+ uint32_t unicode;
883
+
884
+ if (!parse_hex16(&s, &uc))
885
+ goto failed;
886
+
887
+ if (uc >= 0xD800 && uc <= 0xDFFF) {
888
+ /* Handle UTF-16 surrogate pair. */
889
+ if (*s++ != '\\' || *s++ != 'u' || !parse_hex16(&s, &lc))
890
+ goto failed; /* Incomplete surrogate pair. */
891
+ if (!from_surrogate_pair(uc, lc, &unicode))
892
+ goto failed; /* Invalid surrogate pair. */
893
+ } else if (uc == 0) {
894
+ /* Disallow "\u0000". */
895
+ goto failed;
896
+ } else {
897
+ unicode = uc;
898
+ }
899
+
900
+ b += utf8_write_char(unicode, b);
901
+ break;
902
+ }
903
+ default:
904
+ /* Invalid escape */
905
+ goto failed;
906
+ }
907
+ } else if (c <= 0x1F) {
908
+ /* Control characters are not allowed in string literals. */
909
+ goto failed;
910
+ } else {
911
+ /* Validate and echo a UTF-8 character. */
912
+ int len;
913
+
914
+ s--;
915
+ len = utf8_validate_cz(s);
916
+ if (len == 0)
917
+ goto failed; /* Invalid UTF-8 character. */
918
+
919
+ while (len--)
920
+ *b++ = *s++;
921
+ }
922
+
923
+ /*
924
+ * Update sb to know about the new bytes,
925
+ * and set up b to write another character.
926
+ */
927
+ if (out) {
928
+ sb.cur = b;
929
+ sb_need(&sb, 4);
930
+ b = sb.cur;
931
+ } else {
932
+ b = throwaway_buffer;
933
+ }
934
+ }
935
+ s++;
936
+
937
+ if (out)
938
+ *out = sb_finish(&sb);
939
+ *sp = s;
940
+ return true;
941
+
942
+ failed:
943
+ if (out)
944
+ sb_free(&sb);
945
+ return false;
946
+ }
947
+
948
+ bool is_space(const char *c) {
949
+ return ((*c) == '\t' || (*c) == '\n' || (*c) == '\r' || (*c) == ' ');
950
+ }
951
+
952
+ bool is_digit(const char *c){
953
+ return ((*c) >= '0' && (*c) <= '9');
954
+ }
955
+
956
+ /*
957
+ * The JSON spec says that a number shall follow this precise pattern
958
+ * (spaces and quotes added for readability):
959
+ * '-'? (0 | [1-9][0-9]*) ('.' [0-9]+)? ([Ee] [+-]? [0-9]+)?
960
+ *
961
+ * However, some JSON parsers are more liberal. For instance, PHP accepts
962
+ * '.5' and '1.'. JSON.parse accepts '+3'.
963
+ *
964
+ * This function takes the strict approach.
965
+ */
966
+ bool parse_number(const char **sp, double *out)
967
+ {
968
+ const char *s = *sp;
969
+
970
+ /* '-'? */
971
+ if (*s == '-')
972
+ s++;
973
+
974
+ /* (0 | [1-9][0-9]*) */
975
+ if (*s == '0') {
976
+ s++;
977
+ } else {
978
+ if (!is_digit(s))
979
+ return false;
980
+ do {
981
+ s++;
982
+ } while (is_digit(s));
983
+ }
984
+
985
+ /* ('.' [0-9]+)? */
986
+ if (*s == '.') {
987
+ s++;
988
+ if (!is_digit(s))
989
+ return false;
990
+ do {
991
+ s++;
992
+ } while (is_digit(s));
993
+ }
994
+
995
+ /* ([Ee] [+-]? [0-9]+)? */
996
+ if (*s == 'E' || *s == 'e') {
997
+ s++;
998
+ if (*s == '+' || *s == '-')
999
+ s++;
1000
+ if (!is_digit(s))
1001
+ return false;
1002
+ do {
1003
+ s++;
1004
+ } while (is_digit(s));
1005
+ }
1006
+
1007
+ if (out)
1008
+ *out = strtod(*sp, NULL);
1009
+
1010
+ *sp = s;
1011
+ return true;
1012
+ }
1013
+
1014
+ static void skip_space(const char **sp)
1015
+ {
1016
+ const char *s = *sp;
1017
+ while (is_space(s))
1018
+ s++;
1019
+ *sp = s;
1020
+ }
1021
+
1022
+ static void emit_value(SB *out, const JsonNode *node)
1023
+ {
1024
+ assert(tag_is_valid(node->tag));
1025
+ switch (node->tag) {
1026
+ case JSON_NULL:
1027
+ sb_puts(out, "null");
1028
+ break;
1029
+ case JSON_BOOL:
1030
+ sb_puts(out, node->bool_ ? "true" : "false");
1031
+ break;
1032
+ case JSON_STRING:
1033
+ emit_string(out, node->string_);
1034
+ break;
1035
+ case JSON_NUMBER:
1036
+ emit_number(out, node->number_);
1037
+ break;
1038
+ case JSON_ARRAY:
1039
+ emit_array(out, node);
1040
+ break;
1041
+ case JSON_OBJECT:
1042
+ emit_object(out, node);
1043
+ break;
1044
+ default:
1045
+ assert(false);
1046
+ }
1047
+ }
1048
+
1049
+ void emit_value_indented(SB *out, const JsonNode *node, const char *space, int indent_level)
1050
+ {
1051
+ assert(tag_is_valid(node->tag));
1052
+ switch (node->tag) {
1053
+ case JSON_NULL:
1054
+ sb_puts(out, "null");
1055
+ break;
1056
+ case JSON_BOOL:
1057
+ sb_puts(out, node->bool_ ? "true" : "false");
1058
+ break;
1059
+ case JSON_STRING:
1060
+ emit_string(out, node->string_);
1061
+ break;
1062
+ case JSON_NUMBER:
1063
+ emit_number(out, node->number_);
1064
+ break;
1065
+ case JSON_ARRAY:
1066
+ emit_array_indented(out, node, space, indent_level);
1067
+ break;
1068
+ case JSON_OBJECT:
1069
+ emit_object_indented(out, node, space, indent_level);
1070
+ break;
1071
+ default:
1072
+ assert(false);
1073
+ }
1074
+ }
1075
+
1076
+ static void emit_array(SB *out, const JsonNode *array)
1077
+ {
1078
+ const JsonNode *element;
1079
+
1080
+ sb_putc(out, '[');
1081
+ json_foreach(element, array) {
1082
+ emit_value(out, element);
1083
+ if (element->next != NULL)
1084
+ sb_putc(out, ',');
1085
+ }
1086
+ sb_putc(out, ']');
1087
+ }
1088
+
1089
+ static void emit_array_indented(SB *out, const JsonNode *array, const char *space, int indent_level)
1090
+ {
1091
+ const JsonNode *element = array->children.head;
1092
+ int i;
1093
+
1094
+ if (element == NULL) {
1095
+ sb_puts(out, "[]");
1096
+ return;
1097
+ }
1098
+
1099
+ sb_puts(out, "[\n");
1100
+ while (element != NULL) {
1101
+ for (i = 0; i < indent_level + 1; i++)
1102
+ sb_puts(out, space);
1103
+ emit_value_indented(out, element, space, indent_level + 1);
1104
+
1105
+ element = element->next;
1106
+ sb_puts(out, element != NULL ? ",\n" : "\n");
1107
+ }
1108
+ for (i = 0; i < indent_level; i++)
1109
+ sb_puts(out, space);
1110
+ sb_putc(out, ']');
1111
+ }
1112
+
1113
+ static void emit_object(SB *out, const JsonNode *object)
1114
+ {
1115
+ const JsonNode *member;
1116
+
1117
+ sb_putc(out, '{');
1118
+ json_foreach(member, object) {
1119
+ emit_string(out, member->key);
1120
+ sb_putc(out, ':');
1121
+ emit_value(out, member);
1122
+ if (member->next != NULL)
1123
+ sb_putc(out, ',');
1124
+ }
1125
+ sb_putc(out, '}');
1126
+ }
1127
+
1128
+ static void emit_object_indented(SB *out, const JsonNode *object, const char *space, int indent_level)
1129
+ {
1130
+ const JsonNode *member = object->children.head;
1131
+ int i;
1132
+
1133
+ if (member == NULL) {
1134
+ sb_puts(out, "{}");
1135
+ return;
1136
+ }
1137
+
1138
+ sb_puts(out, "{\n");
1139
+ while (member != NULL) {
1140
+ for (i = 0; i < indent_level + 1; i++)
1141
+ sb_puts(out, space);
1142
+ emit_string(out, member->key);
1143
+ sb_puts(out, ": ");
1144
+ emit_value_indented(out, member, space, indent_level + 1);
1145
+
1146
+ member = member->next;
1147
+ sb_puts(out, member != NULL ? ",\n" : "\n");
1148
+ }
1149
+ for (i = 0; i < indent_level; i++)
1150
+ sb_puts(out, space);
1151
+ sb_putc(out, '}');
1152
+ }
1153
+
1154
+ void emit_string(SB *out, const char *str)
1155
+ {
1156
+ bool escape_unicode = false;
1157
+ const char *s = str;
1158
+ char *b;
1159
+
1160
+ // make assertion catchable
1161
+ #ifndef NDEBUG
1162
+ if (!utf8_validate(str)) {
1163
+ throw utf8::invalid_utf8(0);
1164
+ }
1165
+ #endif
1166
+
1167
+ assert(utf8_validate(str));
1168
+
1169
+ /*
1170
+ * 14 bytes is enough space to write up to two
1171
+ * \uXXXX escapes and two quotation marks.
1172
+ */
1173
+ sb_need(out, 14);
1174
+ b = out->cur;
1175
+
1176
+ *b++ = '"';
1177
+ while (*s != 0) {
1178
+ unsigned char c = *s++;
1179
+
1180
+ /* Encode the next character, and write it to b. */
1181
+ switch (c) {
1182
+ case '"':
1183
+ *b++ = '\\';
1184
+ *b++ = '"';
1185
+ break;
1186
+ case '\\':
1187
+ *b++ = '\\';
1188
+ *b++ = '\\';
1189
+ break;
1190
+ case '\b':
1191
+ *b++ = '\\';
1192
+ *b++ = 'b';
1193
+ break;
1194
+ case '\f':
1195
+ *b++ = '\\';
1196
+ *b++ = 'f';
1197
+ break;
1198
+ case '\n':
1199
+ *b++ = '\\';
1200
+ *b++ = 'n';
1201
+ break;
1202
+ case '\r':
1203
+ *b++ = '\\';
1204
+ *b++ = 'r';
1205
+ break;
1206
+ case '\t':
1207
+ *b++ = '\\';
1208
+ *b++ = 't';
1209
+ break;
1210
+ default: {
1211
+ int len;
1212
+
1213
+ s--;
1214
+ len = utf8_validate_cz(s);
1215
+
1216
+ if (len == 0) {
1217
+ /*
1218
+ * Handle invalid UTF-8 character gracefully in production
1219
+ * by writing a replacement character (U+FFFD)
1220
+ * and skipping a single byte.
1221
+ *
1222
+ * This should never happen when assertions are enabled
1223
+ * due to the assertion at the beginning of this function.
1224
+ */
1225
+ assert(false);
1226
+ if (escape_unicode) {
1227
+ strcpy(b, "\\uFFFD");
1228
+ b += 6;
1229
+ } else {
1230
+ *b++ = 0xEFu;
1231
+ *b++ = 0xBFu;
1232
+ *b++ = 0xBDu;
1233
+ }
1234
+ s++;
1235
+ } else if (c < 0x1F || (c >= 0x80 && escape_unicode)) {
1236
+ /* Encode using \u.... */
1237
+ uint32_t unicode;
1238
+
1239
+ s += utf8_read_char(s, &unicode);
1240
+
1241
+ if (unicode <= 0xFFFF) {
1242
+ *b++ = '\\';
1243
+ *b++ = 'u';
1244
+ b += write_hex16(b, unicode);
1245
+ } else {
1246
+ /* Produce a surrogate pair. */
1247
+ uint16_t uc, lc;
1248
+ assert(unicode <= 0x10FFFF);
1249
+ to_surrogate_pair(unicode, &uc, &lc);
1250
+ *b++ = '\\';
1251
+ *b++ = 'u';
1252
+ b += write_hex16(b, uc);
1253
+ *b++ = '\\';
1254
+ *b++ = 'u';
1255
+ b += write_hex16(b, lc);
1256
+ }
1257
+ } else {
1258
+ /* Write the character directly. */
1259
+ while (len--)
1260
+ *b++ = *s++;
1261
+ }
1262
+
1263
+ break;
1264
+ }
1265
+ }
1266
+
1267
+ /*
1268
+ * Update *out to know about the new bytes,
1269
+ * and set up b to write another encoded character.
1270
+ */
1271
+ out->cur = b;
1272
+ sb_need(out, 14);
1273
+ b = out->cur;
1274
+ }
1275
+ *b++ = '"';
1276
+
1277
+ out->cur = b;
1278
+ }
1279
+
1280
+ static void emit_number(SB *out, double num)
1281
+ {
1282
+ /*
1283
+ * This isn't exactly how JavaScript renders numbers,
1284
+ * but it should produce valid JSON for reasonable numbers
1285
+ * preserve precision well enough, and avoid some oddities
1286
+ * like 0.3 -> 0.299999999999999988898 .
1287
+ */
1288
+ char buf[64];
1289
+ sprintf(buf, "%.16g", num);
1290
+
1291
+ if (number_is_valid(buf))
1292
+ sb_puts(out, buf);
1293
+ else
1294
+ sb_puts(out, "null");
1295
+ }
1296
+
1297
+ static bool tag_is_valid(unsigned int tag)
1298
+ {
1299
+ return (/* tag >= JSON_NULL && */ tag <= JSON_OBJECT);
1300
+ }
1301
+
1302
+ static bool number_is_valid(const char *num)
1303
+ {
1304
+ return (parse_number(&num, NULL) && *num == '\0');
1305
+ }
1306
+
1307
+ static bool expect_literal(const char **sp, const char *str)
1308
+ {
1309
+ const char *s = *sp;
1310
+
1311
+ while (*str != '\0')
1312
+ if (*s++ != *str++)
1313
+ return false;
1314
+
1315
+ *sp = s;
1316
+ return true;
1317
+ }
1318
+
1319
+ /*
1320
+ * Parses exactly 4 hex characters (capital or lowercase).
1321
+ * Fails if any input chars are not [0-9A-Fa-f].
1322
+ */
1323
+ static bool parse_hex16(const char **sp, uint16_t *out)
1324
+ {
1325
+ const char *s = *sp;
1326
+ uint16_t ret = 0;
1327
+ uint16_t i;
1328
+ uint16_t tmp;
1329
+ char c;
1330
+
1331
+ for (i = 0; i < 4; i++) {
1332
+ c = *s++;
1333
+ if (c >= '0' && c <= '9')
1334
+ tmp = c - '0';
1335
+ else if (c >= 'A' && c <= 'F')
1336
+ tmp = c - 'A' + 10;
1337
+ else if (c >= 'a' && c <= 'f')
1338
+ tmp = c - 'a' + 10;
1339
+ else
1340
+ return false;
1341
+
1342
+ ret <<= 4;
1343
+ ret += tmp;
1344
+ }
1345
+
1346
+ if (out)
1347
+ *out = ret;
1348
+ *sp = s;
1349
+ return true;
1350
+ }
1351
+
1352
+ /*
1353
+ * Encodes a 16-bit number into hexadecimal,
1354
+ * writing exactly 4 hex chars.
1355
+ */
1356
+ static int write_hex16(char *out, uint16_t val)
1357
+ {
1358
+ const char *hex = "0123456789ABCDEF";
1359
+
1360
+ *out++ = hex[(val >> 12) & 0xF];
1361
+ *out++ = hex[(val >> 8) & 0xF];
1362
+ *out++ = hex[(val >> 4) & 0xF];
1363
+ *out++ = hex[ val & 0xF];
1364
+
1365
+ return 4;
1366
+ }
1367
+
1368
+ bool json_check(const JsonNode *node, char errmsg[256])
1369
+ {
1370
+ #define problem(...) do { \
1371
+ if (errmsg != NULL) \
1372
+ snprintf(errmsg, 256, __VA_ARGS__); \
1373
+ return false; \
1374
+ } while (0)
1375
+
1376
+ if (node->key != NULL && !utf8_validate(node->key))
1377
+ problem("key contains invalid UTF-8");
1378
+
1379
+ if (!tag_is_valid(node->tag))
1380
+ problem("tag is invalid (%u)", node->tag);
1381
+
1382
+ if (node->tag == JSON_BOOL) {
1383
+ if (node->bool_ != false && node->bool_ != true)
1384
+ problem("bool_ is neither false (%d) nor true (%d)", (int)false, (int)true);
1385
+ } else if (node->tag == JSON_STRING) {
1386
+ if (node->string_ == NULL)
1387
+ problem("string_ is NULL");
1388
+ if (!utf8_validate(node->string_))
1389
+ problem("string_ contains invalid UTF-8");
1390
+ } else if (node->tag == JSON_ARRAY || node->tag == JSON_OBJECT) {
1391
+ JsonNode *head = node->children.head;
1392
+ JsonNode *tail = node->children.tail;
1393
+
1394
+ if (head == NULL || tail == NULL) {
1395
+ if (head != NULL)
1396
+ problem("tail is NULL, but head is not");
1397
+ if (tail != NULL)
1398
+ problem("head is NULL, but tail is not");
1399
+ } else {
1400
+ JsonNode *child;
1401
+ JsonNode *last = NULL;
1402
+
1403
+ if (head->prev != NULL)
1404
+ problem("First child's prev pointer is not NULL");
1405
+
1406
+ for (child = head; child != NULL; last = child, child = child->next) {
1407
+ if (child == node)
1408
+ problem("node is its own child");
1409
+ if (child->next == child)
1410
+ problem("child->next == child (cycle)");
1411
+ if (child->next == head)
1412
+ problem("child->next == head (cycle)");
1413
+
1414
+ if (child->parent != node)
1415
+ problem("child does not point back to parent");
1416
+ if (child->next != NULL && child->next->prev != child)
1417
+ problem("child->next does not point back to child");
1418
+
1419
+ if (node->tag == JSON_ARRAY && child->key != NULL)
1420
+ problem("Array element's key is not NULL");
1421
+ if (node->tag == JSON_OBJECT && child->key == NULL)
1422
+ problem("Object member's key is NULL");
1423
+
1424
+ if (!json_check(child, errmsg))
1425
+ return false;
1426
+ }
1427
+
1428
+ if (last != tail)
1429
+ problem("tail does not match pointer found by starting at head and following next links");
1430
+ }
1431
+ }
1432
+
1433
+ return true;
1434
+
1435
+ #undef problem
1436
+ }