dirwatch 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1248) hide show
  1. checksums.yaml +5 -5
  2. data/bin/dirwatch +1 -1
  3. data/lib/dirwatch/templates/linux/latex.yml +2 -2
  4. data/lib/dirwatch/templates/mac/latex.yml +2 -2
  5. data/lib/dirwatch/templates/windows/latex.yml +1 -1
  6. data/lib/dirwatch/version.rb +1 -1
  7. data/vendor/bundle/ruby/2.5.0/bin/cc-tddium-post-worker +27 -0
  8. data/vendor/bundle/ruby/2.5.0/bin/codeclimate-test-reporter +27 -0
  9. data/vendor/bundle/ruby/2.5.0/bin/dirwatch +27 -0
  10. data/vendor/bundle/ruby/2.5.0/bin/htmldiff +29 -0
  11. data/vendor/bundle/ruby/2.5.0/bin/ldiff +29 -0
  12. data/vendor/bundle/ruby/2.5.0/bin/rake +27 -0
  13. data/vendor/bundle/ruby/2.5.0/bin/rspec +27 -0
  14. data/vendor/bundle/ruby/2.5.0/bin/rubocop +27 -0
  15. data/vendor/bundle/ruby/2.5.0/bin/ruby-parse +27 -0
  16. data/vendor/bundle/ruby/2.5.0/bin/ruby-rewrite +27 -0
  17. data/vendor/bundle/ruby/2.5.0/cache/ast-2.3.0.gem +0 -0
  18. data/vendor/bundle/ruby/2.5.0/cache/codeclimate-test-reporter-1.0.8.gem +0 -0
  19. data/vendor/bundle/ruby/2.5.0/cache/diff-lcs-1.3.gem +0 -0
  20. data/vendor/bundle/ruby/2.5.0/cache/docile-1.1.5.gem +0 -0
  21. data/vendor/bundle/ruby/2.5.0/cache/parser-2.4.0.2.gem +0 -0
  22. data/vendor/bundle/ruby/2.5.0/cache/powerpack-0.1.1.gem +0 -0
  23. data/vendor/bundle/ruby/2.5.0/cache/rainbow-2.2.2.gem +0 -0
  24. data/vendor/bundle/ruby/2.5.0/cache/rake-12.3.0.gem +0 -0
  25. data/vendor/bundle/ruby/2.5.0/cache/rspec-3.7.0.gem +0 -0
  26. data/vendor/bundle/ruby/2.5.0/cache/rspec-core-3.7.0.gem +0 -0
  27. data/vendor/bundle/ruby/2.5.0/cache/rspec-expectations-3.7.0.gem +0 -0
  28. data/vendor/bundle/ruby/2.5.0/cache/rspec-mocks-3.7.0.gem +0 -0
  29. data/vendor/bundle/ruby/2.5.0/cache/rspec-support-3.7.0.gem +0 -0
  30. data/vendor/bundle/ruby/2.5.0/cache/rubocop-0.46.0.gem +0 -0
  31. data/vendor/bundle/ruby/2.5.0/cache/ruby-progressbar-1.9.0.gem +0 -0
  32. data/vendor/bundle/ruby/2.5.0/cache/simplecov-0.13.0.gem +0 -0
  33. data/vendor/bundle/ruby/2.5.0/cache/simplecov-html-0.10.2.gem +0 -0
  34. data/vendor/bundle/ruby/2.5.0/cache/unicode-display_width-1.3.0.gem +0 -0
  35. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0/rainbow-2.2.2/gem.build_complete +0 -0
  36. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0/rainbow-2.2.2/gem_make.out +5 -0
  37. data/vendor/bundle/ruby/2.5.0/gems/ast-2.3.0/CHANGELOG.md +9 -0
  38. data/vendor/bundle/ruby/2.5.0/gems/ast-2.3.0/Gemfile +4 -0
  39. data/vendor/bundle/ruby/2.5.0/gems/ast-2.3.0/LICENSE.MIT +20 -0
  40. data/vendor/bundle/ruby/2.5.0/gems/ast-2.3.0/README.YARD.md +12 -0
  41. data/vendor/bundle/ruby/2.5.0/gems/ast-2.3.0/README.md +23 -0
  42. data/vendor/bundle/ruby/2.5.0/gems/ast-2.3.0/Rakefile +19 -0
  43. data/vendor/bundle/ruby/2.5.0/gems/ast-2.3.0/ast.gemspec +29 -0
  44. data/vendor/bundle/ruby/2.5.0/gems/ast-2.3.0/lib/ast.rb +17 -0
  45. data/vendor/bundle/ruby/2.5.0/gems/ast-2.3.0/lib/ast/node.rb +253 -0
  46. data/vendor/bundle/ruby/2.5.0/gems/ast-2.3.0/lib/ast/processor.rb +12 -0
  47. data/vendor/bundle/ruby/2.5.0/gems/ast-2.3.0/lib/ast/processor/mixin.rb +288 -0
  48. data/vendor/bundle/ruby/2.5.0/gems/ast-2.3.0/lib/ast/sexp.rb +30 -0
  49. data/vendor/bundle/ruby/2.5.0/gems/ast-2.3.0/test/helper.rb +17 -0
  50. data/vendor/bundle/ruby/2.5.0/gems/ast-2.3.0/test/test_ast.rb +264 -0
  51. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/LICENSE.txt +40 -0
  52. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/README.md +68 -0
  53. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/bin/cc-tddium-post-worker +23 -0
  54. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/bin/ci +15 -0
  55. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/bin/codeclimate-test-reporter +21 -0
  56. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/config/cacert.pem +3895 -0
  57. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter.rb +71 -0
  58. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/calculate_blob.rb +35 -0
  59. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/ci.rb +106 -0
  60. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/client.rb +103 -0
  61. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/configuration.rb +56 -0
  62. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/exception_message.rb +72 -0
  63. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/formatter.rb +104 -0
  64. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/git.rb +85 -0
  65. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/payload_validator.rb +59 -0
  66. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/post_results.rb +30 -0
  67. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/shorten_filename.rb +24 -0
  68. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/version.rb +5 -0
  69. data/vendor/bundle/ruby/2.5.0/gems/codeclimate-test-reporter-1.0.8/lib/codeclimate-test-reporter.rb +10 -0
  70. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Code-of-Conduct.md +74 -0
  71. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Contributing.md +83 -0
  72. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/History.md +220 -0
  73. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/License.md +39 -0
  74. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Manifest.txt +37 -0
  75. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/README.rdoc +84 -0
  76. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Rakefile +57 -0
  77. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/autotest/discover.rb +1 -0
  78. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/bin/htmldiff +32 -0
  79. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/bin/ldiff +6 -0
  80. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/docs/COPYING.txt +339 -0
  81. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/docs/artistic.txt +127 -0
  82. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff-lcs.rb +3 -0
  83. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs.rb +725 -0
  84. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/array.rb +7 -0
  85. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/block.rb +37 -0
  86. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/callbacks.rb +322 -0
  87. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/change.rb +181 -0
  88. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/htmldiff.rb +149 -0
  89. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/hunk.rb +276 -0
  90. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/internals.rb +307 -0
  91. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/ldiff.rb +167 -0
  92. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/string.rb +5 -0
  93. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/change_spec.rb +65 -0
  94. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/diff_spec.rb +47 -0
  95. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/fixtures/ds1.csv +50 -0
  96. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/fixtures/ds2.csv +51 -0
  97. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/hunk_spec.rb +72 -0
  98. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/issues_spec.rb +49 -0
  99. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/lcs_spec.rb +56 -0
  100. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/ldiff_spec.rb +47 -0
  101. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/patch_spec.rb +422 -0
  102. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/sdiff_spec.rb +214 -0
  103. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/spec_helper.rb +321 -0
  104. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/traverse_balanced_spec.rb +310 -0
  105. data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/traverse_sequences_spec.rb +139 -0
  106. data/vendor/bundle/ruby/2.5.0/gems/docile-1.1.5/Gemfile +4 -0
  107. data/vendor/bundle/ruby/2.5.0/gems/docile-1.1.5/HISTORY.md +61 -0
  108. data/vendor/bundle/ruby/2.5.0/gems/docile-1.1.5/LICENSE +21 -0
  109. data/vendor/bundle/ruby/2.5.0/gems/docile-1.1.5/README.md +241 -0
  110. data/vendor/bundle/ruby/2.5.0/gems/docile-1.1.5/Rakefile +28 -0
  111. data/vendor/bundle/ruby/2.5.0/gems/docile-1.1.5/docile.gemspec +43 -0
  112. data/vendor/bundle/ruby/2.5.0/gems/docile-1.1.5/lib/docile.rb +84 -0
  113. data/vendor/bundle/ruby/2.5.0/gems/docile-1.1.5/lib/docile/chaining_fallback_context_proxy.rb +20 -0
  114. data/vendor/bundle/ruby/2.5.0/gems/docile-1.1.5/lib/docile/execution.rb +35 -0
  115. data/vendor/bundle/ruby/2.5.0/gems/docile-1.1.5/lib/docile/fallback_context_proxy.rb +63 -0
  116. data/vendor/bundle/ruby/2.5.0/gems/docile-1.1.5/lib/docile/version.rb +4 -0
  117. data/vendor/bundle/ruby/2.5.0/gems/docile-1.1.5/on_what.rb +14 -0
  118. data/vendor/bundle/ruby/2.5.0/gems/docile-1.1.5/spec/docile_spec.rb +339 -0
  119. data/vendor/bundle/ruby/2.5.0/gems/docile-1.1.5/spec/spec_helper.rb +30 -0
  120. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/CHANGELOG.md +823 -0
  121. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/CONTRIBUTING.md +17 -0
  122. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/Gemfile +8 -0
  123. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/LICENSE.txt +25 -0
  124. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/README.md +300 -0
  125. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/Rakefile +163 -0
  126. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/bin/ruby-parse +6 -0
  127. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/bin/ruby-rewrite +6 -0
  128. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/doc/AST_FORMAT.md +1678 -0
  129. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/doc/CUSTOMIZATION.md +37 -0
  130. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/doc/INTERNALS.md +21 -0
  131. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/doc/css/common.css +68 -0
  132. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/gauntlet_parser.rb +121 -0
  133. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser.rb +81 -0
  134. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/all.rb +8 -0
  135. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ast/node.rb +38 -0
  136. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ast/processor.rb +234 -0
  137. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/base.rb +268 -0
  138. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/builders/default.rb +1621 -0
  139. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/clobbering_error.rb +11 -0
  140. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/compatibility/ruby1_8.rb +20 -0
  141. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/compatibility/ruby1_9.rb +32 -0
  142. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/current.rb +90 -0
  143. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/diagnostic.rb +163 -0
  144. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/diagnostic/engine.rb +103 -0
  145. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/lexer.rb +21892 -0
  146. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/lexer.rl +2265 -0
  147. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/lexer/dedenter.rb +49 -0
  148. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/lexer/explanation.rb +53 -0
  149. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/lexer/literal.rb +262 -0
  150. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/lexer/stack_state.rb +42 -0
  151. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/macruby.rb +6103 -0
  152. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/macruby.y +2183 -0
  153. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/messages.rb +70 -0
  154. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/meta.rb +27 -0
  155. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/rewriter.rb +119 -0
  156. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ruby18.rb +5647 -0
  157. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ruby18.y +1927 -0
  158. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ruby19.rb +6050 -0
  159. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ruby19.y +2160 -0
  160. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ruby20.rb +6487 -0
  161. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ruby20.y +2338 -0
  162. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ruby21.rb +6552 -0
  163. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ruby21.y +2342 -0
  164. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ruby22.rb +6585 -0
  165. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ruby22.y +2349 -0
  166. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ruby23.rb +6595 -0
  167. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ruby23.y +2355 -0
  168. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ruby24.rb +6631 -0
  169. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ruby24.y +2366 -0
  170. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ruby25.rb +6617 -0
  171. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/ruby25.y +2362 -0
  172. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/rubymotion.rb +6056 -0
  173. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/rubymotion.y +2167 -0
  174. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/runner.rb +246 -0
  175. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/runner/ruby_parse.rb +146 -0
  176. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/runner/ruby_rewrite.rb +99 -0
  177. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/buffer.rb +333 -0
  178. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/comment.rb +119 -0
  179. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/comment/associator.rb +208 -0
  180. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/map.rb +184 -0
  181. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/map/collection.rb +16 -0
  182. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/map/condition.rb +19 -0
  183. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/map/constant.rb +30 -0
  184. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/map/definition.rb +21 -0
  185. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/map/for.rb +17 -0
  186. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/map/heredoc.rb +17 -0
  187. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/map/keyword.rb +18 -0
  188. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/map/objc_kwarg.rb +17 -0
  189. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/map/operator.rb +15 -0
  190. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/map/rescue_body.rb +19 -0
  191. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/map/send.rb +34 -0
  192. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/map/ternary.rb +16 -0
  193. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/map/variable.rb +29 -0
  194. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/range.rb +242 -0
  195. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/rewriter.rb +475 -0
  196. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/source/rewriter/action.rb +42 -0
  197. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/static_environment.rb +44 -0
  198. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/syntax_error.rb +19 -0
  199. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/lib/parser/version.rb +3 -0
  200. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/parser.gemspec +47 -0
  201. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/bug_163/fixtures/input.rb +3 -0
  202. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/bug_163/fixtures/output.rb +3 -0
  203. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/bug_163/rewriter.rb +18 -0
  204. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/bug_163/test_runner_rewrite.rb +35 -0
  205. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/helper.rb +41 -0
  206. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/parse_helper.rb +264 -0
  207. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/racc_coverage_helper.rb +131 -0
  208. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_base.rb +29 -0
  209. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_current.rb +27 -0
  210. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_diagnostic.rb +94 -0
  211. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_diagnostic_engine.rb +60 -0
  212. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_encoding.rb +78 -0
  213. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_lexer.rb +3414 -0
  214. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_lexer_stack_state.rb +76 -0
  215. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_parse_helper.rb +80 -0
  216. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_parser.rb +6024 -0
  217. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_source_buffer.rb +144 -0
  218. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_source_comment.rb +34 -0
  219. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_source_comment_associator.rb +365 -0
  220. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_source_map.rb +13 -0
  221. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_source_range.rb +125 -0
  222. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_source_rewriter.rb +539 -0
  223. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_source_rewriter_action.rb +44 -0
  224. data/vendor/bundle/ruby/2.5.0/gems/parser-2.4.0.2/test/test_static_environment.rb +43 -0
  225. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/CHANGELOG.md +39 -0
  226. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/Gemfile +4 -0
  227. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/LICENSE.txt +22 -0
  228. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/README.md +99 -0
  229. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/Rakefile +12 -0
  230. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack.rb +11 -0
  231. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/array.rb +2 -0
  232. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/array/butfirst.rb +15 -0
  233. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/array/butlast.rb +15 -0
  234. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/enumerable.rb +9 -0
  235. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/average.rb +20 -0
  236. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/drop_last.rb +20 -0
  237. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/drop_last_while.rb +21 -0
  238. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/exactly.rb +43 -0
  239. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/frequencies.rb +17 -0
  240. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/several.rb +37 -0
  241. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/sum.rb +21 -0
  242. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/take_last.rb +20 -0
  243. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/take_last_while.rb +17 -0
  244. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/hash.rb +1 -0
  245. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/hash/symbolize_keys.rb +14 -0
  246. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/numeric.rb +3 -0
  247. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/numeric/neg.rb +19 -0
  248. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/numeric/pos.rb +19 -0
  249. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/numeric/scale.rb +44 -0
  250. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/string.rb +9 -0
  251. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/string/ascii_only.rb +42 -0
  252. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/string/blank.rb +20 -0
  253. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/string/format.rb +20 -0
  254. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/string/remove.rb +17 -0
  255. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/string/remove_prefix.rb +23 -0
  256. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/string/remove_suffix.rb +23 -0
  257. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/string/squish.rb +27 -0
  258. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/string/strip_indent.rb +22 -0
  259. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/string/strip_margin.rb +21 -0
  260. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/lib/powerpack/version.rb +3 -0
  261. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/powerpack.gemspec +24 -0
  262. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/array/butfirst_spec.rb +11 -0
  263. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/array/butlast_spec.rb +11 -0
  264. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/average_spec.rb +19 -0
  265. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/drop_last_spec.rb +15 -0
  266. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/drop_last_while_spec.rb +7 -0
  267. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/exactly_spec.rb +39 -0
  268. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/frequencies_spec.rb +20 -0
  269. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/several_spec.rb +27 -0
  270. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/sum_spec.rb +15 -0
  271. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/take_last_spec.rb +15 -0
  272. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/take_last_while_spec.rb +7 -0
  273. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/hash/symbolize_keys_spec.rb +15 -0
  274. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/numeric/neg_spec.rb +24 -0
  275. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/numeric/pos_spec.rb +24 -0
  276. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/numeric/scale_spec.rb +139 -0
  277. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/string/ascii_only_spec.rb +45 -0
  278. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/string/blank_spec.rb +15 -0
  279. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/string/format_spec.rb +12 -0
  280. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/string/remove_prefix_spec.rb +13 -0
  281. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/string/remove_spec.rb +13 -0
  282. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/string/remove_suffix_spec.rb +13 -0
  283. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/string/squish_spec.rb +21 -0
  284. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/string/strip_indent_spec.rb +13 -0
  285. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/powerpack/string/strip_margin_spec.rb +26 -0
  286. data/vendor/bundle/ruby/2.5.0/gems/powerpack-0.1.1/spec/spec_helper.rb +15 -0
  287. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/Changelog.md +87 -0
  288. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/Gemfile +23 -0
  289. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/Guardfile +9 -0
  290. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/LICENSE +20 -0
  291. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/README.markdown +217 -0
  292. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/Rakefile +6 -0
  293. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/ext/Rakefile +1 -0
  294. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/ext/mkrf_conf.rb +22 -0
  295. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/lib/rainbow.rb +24 -0
  296. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/lib/rainbow/color.rb +144 -0
  297. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/lib/rainbow/ext/string.rb +56 -0
  298. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/lib/rainbow/global.rb +21 -0
  299. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/lib/rainbow/legacy.rb +15 -0
  300. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/lib/rainbow/null_presenter.rb +41 -0
  301. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/lib/rainbow/presenter.rb +135 -0
  302. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/lib/rainbow/string_utils.rb +20 -0
  303. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/lib/rainbow/version.rb +3 -0
  304. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/lib/rainbow/wrapper.rb +22 -0
  305. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/lib/rainbow/x11_color_names.rb +152 -0
  306. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/rainbow.gemspec +26 -0
  307. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/spec/integration/instance_spec.rb +35 -0
  308. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/spec/integration/rainbow_spec.rb +160 -0
  309. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/spec/integration/string_spec.rb +84 -0
  310. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/spec/spec_helper.rb +6 -0
  311. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/spec/support/presenter_shared_examples.rb +9 -0
  312. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/spec/unit/color_spec.rb +301 -0
  313. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/spec/unit/namespace_spec.rb +31 -0
  314. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/spec/unit/null_presenter_spec.rb +111 -0
  315. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/spec/unit/presenter_spec.rb +201 -0
  316. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/spec/unit/string_utils_spec.rb +62 -0
  317. data/vendor/bundle/ruby/2.5.0/gems/rainbow-2.2.2/spec/unit/wrapper_spec.rb +34 -0
  318. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/CONTRIBUTING.rdoc +36 -0
  319. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/Gemfile +3 -0
  320. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/History.rdoc +2299 -0
  321. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/MIT-LICENSE +21 -0
  322. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/README.rdoc +156 -0
  323. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/Rakefile +38 -0
  324. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/bin/console +7 -0
  325. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/bin/setup +6 -0
  326. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/doc/command_line_usage.rdoc +158 -0
  327. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/doc/example/Rakefile1 +38 -0
  328. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/doc/example/Rakefile2 +35 -0
  329. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/doc/example/a.c +6 -0
  330. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/doc/example/b.c +6 -0
  331. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/doc/example/main.c +11 -0
  332. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/doc/glossary.rdoc +42 -0
  333. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/doc/jamis.rb +592 -0
  334. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/doc/proto_rake.rdoc +127 -0
  335. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/doc/rake.1 +156 -0
  336. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/doc/rakefile.rdoc +622 -0
  337. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/doc/rational.rdoc +151 -0
  338. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/exe/rake +27 -0
  339. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake.rb +71 -0
  340. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/application.rb +824 -0
  341. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/backtrace.rb +24 -0
  342. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/clean.rb +78 -0
  343. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/cloneable.rb +17 -0
  344. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/cpu_counter.rb +107 -0
  345. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/default_loader.rb +15 -0
  346. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/dsl_definition.rb +195 -0
  347. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/early_time.rb +22 -0
  348. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/ext/core.rb +26 -0
  349. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/ext/string.rb +176 -0
  350. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/file_creation_task.rb +25 -0
  351. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/file_list.rb +435 -0
  352. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/file_task.rb +54 -0
  353. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/file_utils.rb +137 -0
  354. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/file_utils_ext.rb +145 -0
  355. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/invocation_chain.rb +57 -0
  356. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/invocation_exception_mixin.rb +17 -0
  357. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/late_time.rb +18 -0
  358. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/linked_list.rb +112 -0
  359. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/loaders/makefile.rb +54 -0
  360. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/multi_task.rb +50 -0
  361. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/name_space.rb +38 -0
  362. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/packagetask.rb +211 -0
  363. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/phony.rb +16 -0
  364. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/private_reader.rb +21 -0
  365. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/promise.rb +100 -0
  366. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/pseudo_status.rb +30 -0
  367. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/rake_module.rb +67 -0
  368. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/rake_test_loader.rb +26 -0
  369. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
  370. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/scope.rb +43 -0
  371. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/task.rb +391 -0
  372. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/task_argument_error.rb +8 -0
  373. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/task_arguments.rb +109 -0
  374. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/task_manager.rb +319 -0
  375. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/tasklib.rb +12 -0
  376. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/testtask.rb +224 -0
  377. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/thread_history_display.rb +49 -0
  378. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/thread_pool.rb +163 -0
  379. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/trace_output.rb +23 -0
  380. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/version.rb +10 -0
  381. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/lib/rake/win32.rb +51 -0
  382. data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.0/rake.gemspec +43 -0
  383. data/vendor/bundle/ruby/2.5.0/gems/rspec-3.7.0/LICENSE.md +27 -0
  384. data/vendor/bundle/ruby/2.5.0/gems/rspec-3.7.0/README.md +39 -0
  385. data/vendor/bundle/ruby/2.5.0/gems/rspec-3.7.0/lib/rspec.rb +3 -0
  386. data/vendor/bundle/ruby/2.5.0/gems/rspec-3.7.0/lib/rspec/version.rb +5 -0
  387. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/Changelog.md +2187 -0
  388. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/LICENSE.md +26 -0
  389. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/README.md +384 -0
  390. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/exe/rspec +4 -0
  391. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/autorun.rb +3 -0
  392. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core.rb +185 -0
  393. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/backtrace_formatter.rb +65 -0
  394. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/bisect/coordinator.rb +66 -0
  395. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/bisect/example_minimizer.rb +169 -0
  396. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/bisect/runner.rb +169 -0
  397. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/bisect/server.rb +70 -0
  398. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/configuration.rb +2179 -0
  399. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/configuration_options.rb +196 -0
  400. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/drb.rb +113 -0
  401. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/dsl.rb +98 -0
  402. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/example.rb +653 -0
  403. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/example_group.rb +884 -0
  404. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/example_status_persister.rb +235 -0
  405. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/filter_manager.rb +231 -0
  406. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/flat_map.rb +20 -0
  407. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters.rb +265 -0
  408. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/base_formatter.rb +70 -0
  409. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
  410. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/bisect_formatter.rb +69 -0
  411. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/bisect_progress_formatter.rb +144 -0
  412. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/console_codes.rb +68 -0
  413. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/deprecation_formatter.rb +221 -0
  414. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/documentation_formatter.rb +70 -0
  415. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/exception_presenter.rb +496 -0
  416. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  417. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/helpers.rb +110 -0
  418. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/html_formatter.rb +153 -0
  419. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/html_printer.rb +416 -0
  420. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
  421. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/json_formatter.rb +102 -0
  422. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  423. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/progress_formatter.rb +29 -0
  424. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/protocol.rb +182 -0
  425. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
  426. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
  427. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/hooks.rb +626 -0
  428. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/invocations.rb +85 -0
  429. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/memoized_helpers.rb +535 -0
  430. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/metadata.rb +499 -0
  431. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/metadata_filter.rb +255 -0
  432. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  433. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  434. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  435. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/mocking_adapters/null.rb +14 -0
  436. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  437. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  438. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/notifications.rb +521 -0
  439. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/option_parser.rb +309 -0
  440. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/ordering.rb +158 -0
  441. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/output_wrapper.rb +29 -0
  442. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/pending.rb +165 -0
  443. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/profiler.rb +32 -0
  444. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/project_initializer.rb +48 -0
  445. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/project_initializer/spec/spec_helper.rb +100 -0
  446. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/rake_task.rb +168 -0
  447. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/reporter.rb +260 -0
  448. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/ruby_project.rb +53 -0
  449. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/runner.rb +193 -0
  450. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/sandbox.rb +37 -0
  451. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/set.rb +54 -0
  452. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/shared_context.rb +55 -0
  453. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/shared_example_group.rb +271 -0
  454. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/shell_escape.rb +49 -0
  455. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  456. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/version.rb +9 -0
  457. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/warnings.rb +40 -0
  458. data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.7.0/lib/rspec/core/world.rb +264 -0
  459. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/Changelog.md +1083 -0
  460. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/LICENSE.md +25 -0
  461. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/README.md +305 -0
  462. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations.rb +82 -0
  463. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
  464. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/configuration.rb +201 -0
  465. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/expectation_target.rb +127 -0
  466. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/fail_with.rb +39 -0
  467. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/failure_aggregator.rb +194 -0
  468. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/handler.rb +170 -0
  469. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/minitest_integration.rb +58 -0
  470. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/syntax.rb +132 -0
  471. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/version.rb +8 -0
  472. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers.rb +1031 -0
  473. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/aliased_matcher.rb +116 -0
  474. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in.rb +52 -0
  475. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/all.rb +85 -0
  476. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/base_matcher.rb +193 -0
  477. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/be.rb +288 -0
  478. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/be_between.rb +77 -0
  479. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/be_instance_of.rb +22 -0
  480. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/be_kind_of.rb +16 -0
  481. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/be_within.rb +72 -0
  482. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/change.rb +387 -0
  483. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/compound.rb +272 -0
  484. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/contain_exactly.rb +301 -0
  485. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/cover.rb +24 -0
  486. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/eq.rb +40 -0
  487. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/eql.rb +34 -0
  488. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/equal.rb +81 -0
  489. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/exist.rb +90 -0
  490. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/has.rb +103 -0
  491. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  492. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/include.rb +143 -0
  493. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/match.rb +106 -0
  494. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/operators.rb +128 -0
  495. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/output.rb +200 -0
  496. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/raise_error.rb +230 -0
  497. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/respond_to.rb +165 -0
  498. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/satisfy.rb +60 -0
  499. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
  500. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
  501. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/yield.rb +432 -0
  502. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/composable.rb +169 -0
  503. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/dsl.rb +527 -0
  504. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/english_phrasing.rb +58 -0
  505. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +73 -0
  506. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/fail_matchers.rb +42 -0
  507. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/generated_descriptions.rb +42 -0
  508. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/matcher_delegator.rb +35 -0
  509. data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/matcher_protocol.rb +99 -0
  510. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/Changelog.md +1089 -0
  511. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/LICENSE.md +25 -0
  512. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/README.md +460 -0
  513. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks.rb +130 -0
  514. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance.rb +11 -0
  515. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/chain.rb +110 -0
  516. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  517. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/expect_chain_chain.rb +31 -0
  518. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/expectation_chain.rb +50 -0
  519. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  520. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/proxy.rb +116 -0
  521. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/recorder.rb +289 -0
  522. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/stub_chain.rb +51 -0
  523. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/stub_chain_chain.rb +23 -0
  524. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/argument_list_matcher.rb +100 -0
  525. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/argument_matchers.rb +320 -0
  526. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/configuration.rb +212 -0
  527. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/error_generator.rb +369 -0
  528. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/example_methods.rb +434 -0
  529. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/instance_method_stasher.rb +146 -0
  530. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/marshal_extension.rb +41 -0
  531. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  532. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/matchers/have_received.rb +130 -0
  533. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/matchers/receive.rb +132 -0
  534. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
  535. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
  536. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/message_chain.rb +87 -0
  537. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/message_expectation.rb +740 -0
  538. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/method_double.rb +287 -0
  539. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/method_reference.rb +202 -0
  540. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/minitest_integration.rb +68 -0
  541. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/mutate_const.rb +339 -0
  542. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/object_reference.rb +149 -0
  543. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/order_group.rb +81 -0
  544. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/proxy.rb +484 -0
  545. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/space.rb +238 -0
  546. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/standalone.rb +3 -0
  547. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/syntax.rb +325 -0
  548. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/targets.rb +124 -0
  549. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/test_double.rb +171 -0
  550. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/verifying_double.rb +129 -0
  551. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/verifying_message_expectation.rb +54 -0
  552. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/verifying_proxy.rb +220 -0
  553. data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/version.rb +9 -0
  554. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/Changelog.md +229 -0
  555. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/LICENSE.md +23 -0
  556. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/README.md +40 -0
  557. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support.rb +149 -0
  558. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/caller_filter.rb +83 -0
  559. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/comparable_version.rb +46 -0
  560. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/differ.rb +215 -0
  561. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/directory_maker.rb +63 -0
  562. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/encoded_string.rb +165 -0
  563. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/fuzzy_matcher.rb +48 -0
  564. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/hunk_generator.rb +47 -0
  565. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/matcher_definition.rb +42 -0
  566. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/method_signature_verifier.rb +392 -0
  567. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/mutex.rb +73 -0
  568. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/object_formatter.rb +267 -0
  569. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/recursive_const_methods.rb +76 -0
  570. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/reentrant_mutex.rb +53 -0
  571. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/ruby_features.rb +162 -0
  572. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/source.rb +75 -0
  573. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/source/location.rb +21 -0
  574. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/source/node.rb +107 -0
  575. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/source/token.rb +87 -0
  576. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/spec.rb +81 -0
  577. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
  578. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/formatting_support.rb +9 -0
  579. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/in_sub_process.rb +69 -0
  580. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/library_wide_checks.rb +150 -0
  581. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/shell_out.rb +84 -0
  582. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/stderr_splitter.rb +63 -0
  583. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/string_matcher.rb +46 -0
  584. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/with_isolated_directory.rb +13 -0
  585. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
  586. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/version.rb +7 -0
  587. data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.7.0/lib/rspec/support/warnings.rb +39 -0
  588. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/LICENSE.txt +20 -0
  589. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/README.md +128 -0
  590. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/assets/logo.png +0 -0
  591. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/assets/output.html.erb +261 -0
  592. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/bin/rubocop +17 -0
  593. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/config/default.yml +1338 -0
  594. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/config/disabled.yml +115 -0
  595. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/config/enabled.yml +1588 -0
  596. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop.rb +452 -0
  597. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/ast_node.rb +624 -0
  598. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/ast_node/builder.rb +30 -0
  599. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/ast_node/sexp.rb +13 -0
  600. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/ast_node/traversal.rb +171 -0
  601. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cached_data.rb +63 -0
  602. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cli.rb +185 -0
  603. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/comment_config.rb +157 -0
  604. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/config.rb +346 -0
  605. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/config_loader.rb +205 -0
  606. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/config_loader_resolver.rb +43 -0
  607. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/config_store.rb +48 -0
  608. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/autocorrect_logic.rb +26 -0
  609. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/bundler/duplicated_gem.rb +69 -0
  610. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/bundler/ordered_gems.rb +54 -0
  611. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/commissioner.rb +103 -0
  612. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/cop.rb +304 -0
  613. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/corrector.rb +135 -0
  614. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/force.rb +41 -0
  615. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/ignored_node.rb +38 -0
  616. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/ambiguous_operator.rb +50 -0
  617. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +36 -0
  618. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/assignment_in_condition.rb +66 -0
  619. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/block_alignment.rb +198 -0
  620. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/circular_argument_reference.rb +69 -0
  621. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/condition_position.rb +54 -0
  622. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/debugger.rb +52 -0
  623. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/def_end_alignment.rb +57 -0
  624. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/deprecated_class_methods.rb +80 -0
  625. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/duplicate_case_condition.rb +49 -0
  626. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/duplicate_methods.rb +137 -0
  627. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/duplicated_key.rb +30 -0
  628. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/each_with_object_argument.rb +28 -0
  629. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/else_layout.rb +68 -0
  630. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/empty_ensure.rb +18 -0
  631. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/empty_expression.rb +32 -0
  632. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/empty_interpolation.rb +28 -0
  633. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/empty_when.rb +40 -0
  634. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/end_alignment.rb +137 -0
  635. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/end_in_method.rb +17 -0
  636. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/ensure_return.rb +22 -0
  637. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/eval.rb +18 -0
  638. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/float_out_of_range.rb +30 -0
  639. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/format_parameter_mismatch.rb +155 -0
  640. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/handle_exceptions.rb +18 -0
  641. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/implicit_string_concatenation.rb +90 -0
  642. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/ineffective_access_modifier.rb +134 -0
  643. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/inherit_exception.rb +83 -0
  644. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/invalid_character_literal.rb +38 -0
  645. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/literal_in_condition.rb +129 -0
  646. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/literal_in_interpolation.rb +68 -0
  647. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/loop.rb +27 -0
  648. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/nested_method_definition.rb +60 -0
  649. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/next_without_accumulator.rb +45 -0
  650. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +77 -0
  651. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +53 -0
  652. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/percent_string_array.rb +70 -0
  653. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/percent_symbol_array.rb +56 -0
  654. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/rand_one.rb +35 -0
  655. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/require_parentheses.rb +66 -0
  656. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/rescue_exception.rb +25 -0
  657. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/shadowed_exception.rb +131 -0
  658. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +29 -0
  659. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/string_conversion_in_interpolation.rb +51 -0
  660. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/syntax.rb +55 -0
  661. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +38 -0
  662. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/unified_integer.rb +37 -0
  663. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/unneeded_disable.rb +207 -0
  664. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/unneeded_splat_expansion.rb +136 -0
  665. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/unreachable_code.rb +32 -0
  666. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/unused_block_argument.rb +143 -0
  667. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/unused_method_argument.rb +51 -0
  668. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/useless_access_modifier.rb +202 -0
  669. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/useless_assignment.rb +113 -0
  670. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/useless_comparison.rb +25 -0
  671. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/useless_else_without_rescue.rb +31 -0
  672. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/useless_setter_call.rb +150 -0
  673. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/void.rb +56 -0
  674. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/abc_size.rb +39 -0
  675. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/block_length.rb +26 -0
  676. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/block_nesting.rb +52 -0
  677. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/class_length.rb +24 -0
  678. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +31 -0
  679. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/line_length.rb +168 -0
  680. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/method_length.rb +27 -0
  681. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/module_length.rb +24 -0
  682. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/parameter_lists.rb +44 -0
  683. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/perceived_complexity.rb +62 -0
  684. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/access_modifier_node.rb +41 -0
  685. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/annotation_comment.rb +36 -0
  686. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/array_hash_indentation.rb +82 -0
  687. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/array_syntax.rb +24 -0
  688. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/autocorrect_alignment.rb +149 -0
  689. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/check_assignment.rb +40 -0
  690. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/classish_length.rb +36 -0
  691. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/code_length.rb +32 -0
  692. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/configurable_enforced_style.rb +91 -0
  693. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/configurable_max.rb +19 -0
  694. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/configurable_naming.rb +44 -0
  695. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/configurable_numbering.rb +58 -0
  696. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/def_node.rb +27 -0
  697. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/documentation_comment.rb +40 -0
  698. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/empty_lines_around_body.rb +161 -0
  699. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/end_keyword_alignment.rb +85 -0
  700. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/first_element_line_break.rb +41 -0
  701. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/frozen_string_literal.rb +34 -0
  702. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/hash_node.rb +14 -0
  703. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/if_node.rb +42 -0
  704. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/integer_node.rb +12 -0
  705. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/match_range.rb +22 -0
  706. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/method_complexity.rb +30 -0
  707. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/method_preference.rb +28 -0
  708. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/min_body_length.rb +19 -0
  709. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +191 -0
  710. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +152 -0
  711. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/negative_conditional.rb +29 -0
  712. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/on_method_def.rb +30 -0
  713. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/on_normal_if_unless.rb +37 -0
  714. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/parentheses.rb +22 -0
  715. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/parser_diagnostic.rb +34 -0
  716. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/percent_literal.rb +32 -0
  717. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/preceding_following_alignment.rb +89 -0
  718. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/safe_assignment.rb +20 -0
  719. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/safe_mode.rb +22 -0
  720. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/space_after_punctuation.rb +55 -0
  721. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/space_before_punctuation.rb +48 -0
  722. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/space_inside.rb +76 -0
  723. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/statement_modifier.rb +73 -0
  724. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/string_help.rb +33 -0
  725. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/string_literals_help.rb +33 -0
  726. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/surrounding_space.rb +40 -0
  727. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/too_many_lines.rb +39 -0
  728. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/trailing_comma.rb +162 -0
  729. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/unused_argument.rb +42 -0
  730. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/offense.rb +188 -0
  731. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/case_when_splat.rb +179 -0
  732. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/casecmp.rb +107 -0
  733. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/compare_with_block.rb +61 -0
  734. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/count.rb +98 -0
  735. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/detect.rb +106 -0
  736. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/double_start_end_with.rb +68 -0
  737. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/end_with.rb +54 -0
  738. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/fixed_size.rb +56 -0
  739. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/flat_map.rb +73 -0
  740. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/hash_each_methods.rb +84 -0
  741. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/lstrip_rstrip.rb +41 -0
  742. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/range_include.rb +39 -0
  743. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/redundant_block_call.rb +93 -0
  744. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/redundant_match.rb +54 -0
  745. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/redundant_merge.rb +152 -0
  746. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/redundant_sort_by.rb +45 -0
  747. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/reverse_each.rb +39 -0
  748. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/sample.rb +140 -0
  749. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/size.rb +76 -0
  750. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/start_with.rb +57 -0
  751. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/string_replacement.rb +175 -0
  752. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/times_map.rb +61 -0
  753. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/action_filter.rb +96 -0
  754. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/date.rb +130 -0
  755. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/delegate.rb +106 -0
  756. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/delegate_allow_blank.rb +62 -0
  757. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/dynamic_find_by.rb +77 -0
  758. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/enum_uniqueness.rb +71 -0
  759. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/exit.rb +61 -0
  760. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/find_by.rb +53 -0
  761. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/find_each.rb +59 -0
  762. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/has_and_belongs_to_many.rb +17 -0
  763. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/http_positional_arguments.rb +92 -0
  764. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/not_null_column.rb +44 -0
  765. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/output.rb +25 -0
  766. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/output_safety.rb +58 -0
  767. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/pluralization_grammar.rb +105 -0
  768. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/read_write_attribute.rb +74 -0
  769. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/request_referer.rb +38 -0
  770. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/safe_navigation.rb +88 -0
  771. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/save_bang.rb +155 -0
  772. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/scope_args.rb +29 -0
  773. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/time_zone.rb +195 -0
  774. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/uniq_before_pluck.rb +90 -0
  775. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/validation.rb +67 -0
  776. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/security/json_load.rb +44 -0
  777. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/severity.rb +76 -0
  778. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/access_modifier_indentation.rb +80 -0
  779. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/accessor_method_name.rb +45 -0
  780. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/alias.rb +119 -0
  781. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/align_array.rb +20 -0
  782. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/align_hash.rb +266 -0
  783. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/align_parameters.rb +69 -0
  784. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/and_or.rb +140 -0
  785. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/array_join.rb +30 -0
  786. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/ascii_comments.rb +38 -0
  787. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/ascii_identifiers.rb +36 -0
  788. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/attr.rb +44 -0
  789. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/auto_resource_cleanup.rb +45 -0
  790. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/bare_percent_literals.rb +57 -0
  791. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/begin_block.rb +16 -0
  792. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/block_comments.rb +46 -0
  793. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/block_delimiters.rb +230 -0
  794. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/block_end_newline.rb +56 -0
  795. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/braces_around_hash_parameters.rb +113 -0
  796. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/case_equality.rb +18 -0
  797. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/case_indentation.rb +89 -0
  798. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/character_literal.rb +43 -0
  799. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/class_and_module_camel_case.rb +29 -0
  800. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/class_and_module_children.rb +69 -0
  801. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/class_check.rb +42 -0
  802. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/class_methods.rb +67 -0
  803. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/class_vars.rb +23 -0
  804. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/closing_parenthesis_indentation.rb +87 -0
  805. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/collection_methods.rb +51 -0
  806. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/colon_method_call.rb +40 -0
  807. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/command_literal.rb +119 -0
  808. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/comment_annotation.rb +62 -0
  809. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/comment_indentation.rb +71 -0
  810. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/conditional_assignment.rb +681 -0
  811. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/constant_name.rb +29 -0
  812. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/copyright.rb +89 -0
  813. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/def_with_parentheses.rb +31 -0
  814. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/documentation.rb +79 -0
  815. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/documentation_method.rb +79 -0
  816. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/dot_position.rb +88 -0
  817. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/double_negation.rb +34 -0
  818. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/each_for_simple_loop.rb +57 -0
  819. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/each_with_object.rb +88 -0
  820. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/else_alignment.rb +111 -0
  821. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_case_condition.rb +93 -0
  822. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_else.rb +140 -0
  823. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_line_between_defs.rb +73 -0
  824. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_lines.rb +60 -0
  825. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_lines_around_access_modifier.rb +95 -0
  826. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_lines_around_block_body.rb +41 -0
  827. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_lines_around_class_body.rb +39 -0
  828. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_lines_around_method_body.rb +41 -0
  829. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_lines_around_module_body.rb +44 -0
  830. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_literal.rb +100 -0
  831. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_method.rb +96 -0
  832. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/encoding.rb +92 -0
  833. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/end_block.rb +17 -0
  834. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/end_of_line.rb +30 -0
  835. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/even_odd.rb +56 -0
  836. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/extra_spacing.rb +237 -0
  837. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/file_name.rb +163 -0
  838. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/first_array_element_line_break.rb +41 -0
  839. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/first_hash_element_line_break.rb +33 -0
  840. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/first_method_argument_line_break.rb +49 -0
  841. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/first_method_parameter_line_break.rb +42 -0
  842. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/first_parameter_indentation.rb +111 -0
  843. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/flip_flop.rb +20 -0
  844. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/for.rb +52 -0
  845. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/format_string.rb +76 -0
  846. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/frozen_string_literal_comment.rb +67 -0
  847. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/global_vars.rb +70 -0
  848. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/guard_clause.rb +96 -0
  849. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/hash_syntax.rb +232 -0
  850. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/identical_conditional_branches.rb +92 -0
  851. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/if_inside_else.rb +48 -0
  852. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/if_unless_modifier.rb +89 -0
  853. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +44 -0
  854. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/if_with_semicolon.rb +20 -0
  855. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/implicit_runtime_error.rb +31 -0
  856. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/indent_array.rb +114 -0
  857. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/indent_assignment.rb +42 -0
  858. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/indent_hash.rb +133 -0
  859. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/indentation_consistency.rb +51 -0
  860. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/indentation_width.rb +302 -0
  861. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/infinite_loop.rb +92 -0
  862. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/initial_indentation.rb +42 -0
  863. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/inline_comment.rb +32 -0
  864. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/lambda.rb +209 -0
  865. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/lambda_call.rb +62 -0
  866. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/leading_comment_space.rb +43 -0
  867. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/line_end_concatenation.rb +115 -0
  868. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/method_call_parentheses.rb +78 -0
  869. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/method_called_on_do_end_block.rb +41 -0
  870. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/method_def_parentheses.rb +83 -0
  871. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/method_missing.rb +81 -0
  872. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/method_name.rb +28 -0
  873. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/missing_else.rb +73 -0
  874. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/module_function.rb +64 -0
  875. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_array_brace_layout.rb +81 -0
  876. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_assignment_layout.rb +88 -0
  877. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_block_chain.rb +42 -0
  878. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_block_layout.rb +134 -0
  879. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_hash_brace_layout.rb +81 -0
  880. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_if_modifier.rb +73 -0
  881. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_if_then.rb +41 -0
  882. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_memoization.rb +44 -0
  883. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_method_call_brace_layout.rb +98 -0
  884. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_method_call_indentation.rb +196 -0
  885. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_method_definition_brace_layout.rb +82 -0
  886. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_operation_indentation.rb +88 -0
  887. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_ternary_operator.rb +23 -0
  888. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/mutable_constant.rb +63 -0
  889. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/negated_if.rb +47 -0
  890. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/negated_while.rb +47 -0
  891. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/nested_modifier.rb +114 -0
  892. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/nested_parenthesized_calls.rb +59 -0
  893. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/nested_ternary_operator.rb +23 -0
  894. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/next.rb +223 -0
  895. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/nil_comparison.rb +35 -0
  896. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/non_nil_check.rb +125 -0
  897. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/not.rb +72 -0
  898. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/numeric_literal_prefix.rb +97 -0
  899. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/numeric_literals.rb +79 -0
  900. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/numeric_predicate.rb +140 -0
  901. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/one_line_conditional.rb +85 -0
  902. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/op_method.rb +41 -0
  903. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/option_hash.rb +69 -0
  904. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/optional_arguments.rb +62 -0
  905. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/parallel_assignment.rb +295 -0
  906. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/parentheses_around_condition.rb +60 -0
  907. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/percent_literal_delimiters.rb +85 -0
  908. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/percent_q_literals.rb +49 -0
  909. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/perl_backrefs.rb +31 -0
  910. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/predicate_name.rb +67 -0
  911. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/preferred_hash_methods.rb +78 -0
  912. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/proc.rb +26 -0
  913. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/raise_args.rb +136 -0
  914. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/redundant_begin.rb +47 -0
  915. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/redundant_exception.rb +55 -0
  916. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/redundant_freeze.rb +46 -0
  917. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/redundant_parentheses.rb +177 -0
  918. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/redundant_return.rb +125 -0
  919. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/redundant_self.rb +163 -0
  920. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/regexp_literal.rb +114 -0
  921. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/rescue_ensure_alignment.rb +86 -0
  922. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/rescue_modifier.rb +49 -0
  923. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/safe_navigation.rb +138 -0
  924. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/self_assignment.rb +93 -0
  925. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/semicolon.rb +70 -0
  926. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/send.rb +22 -0
  927. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/signal_exception.rb +109 -0
  928. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/single_line_block_params.rb +68 -0
  929. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/single_line_methods.rb +77 -0
  930. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_after_colon.rb +42 -0
  931. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_after_comma.rb +21 -0
  932. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_after_method_name.rb +37 -0
  933. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_after_not.rb +39 -0
  934. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_after_semicolon.rb +21 -0
  935. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_around_block_parameters.rb +109 -0
  936. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_around_equals_in_parameter_default.rb +68 -0
  937. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_around_keyword.rb +225 -0
  938. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_around_operators.rb +136 -0
  939. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_before_block_braces.rb +54 -0
  940. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_before_comma.rb +16 -0
  941. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_before_comment.rb +27 -0
  942. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_before_first_arg.rb +59 -0
  943. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_before_semicolon.rb +16 -0
  944. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_in_lambda_literal.rb +87 -0
  945. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_inside_array_percent_literal.rb +53 -0
  946. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_inside_block_braces.rb +158 -0
  947. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_inside_brackets.rb +20 -0
  948. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_inside_hash_literal_braces.rb +150 -0
  949. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_inside_parens.rb +16 -0
  950. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_inside_percent_literal_delimiters.rb +64 -0
  951. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_inside_range_literal.rb +63 -0
  952. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_inside_string_interpolation.rb +65 -0
  953. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/special_global_vars.rb +156 -0
  954. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +112 -0
  955. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/string_literals.rb +102 -0
  956. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/string_literals_in_interpolation.rb +30 -0
  957. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/string_methods.rb +31 -0
  958. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/struct_inheritance.rb +43 -0
  959. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/symbol_array.rb +106 -0
  960. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/symbol_literal.rb +32 -0
  961. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/symbol_proc.rb +143 -0
  962. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/tab.rb +57 -0
  963. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/ternary_parentheses.rb +172 -0
  964. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/trailing_blank_lines.rb +78 -0
  965. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +70 -0
  966. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/trailing_comma_in_literal.rb +56 -0
  967. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/trailing_underscore_variable.rb +110 -0
  968. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/trailing_whitespace.rb +28 -0
  969. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/trivial_accessors.rb +176 -0
  970. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/unless_else.rb +43 -0
  971. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/unneeded_capital_w.rb +42 -0
  972. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/unneeded_interpolation.rb +98 -0
  973. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/unneeded_percent_q.rb +96 -0
  974. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/variable_interpolation.rb +44 -0
  975. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/variable_name.rb +39 -0
  976. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/variable_number.rb +78 -0
  977. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/when_then.rb +22 -0
  978. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/while_until_do.rb +40 -0
  979. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/while_until_modifier.rb +40 -0
  980. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/word_array.rb +160 -0
  981. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/zero_length_predicate.rb +83 -0
  982. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/team.rb +189 -0
  983. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/util.rb +276 -0
  984. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/variable_force.rb +458 -0
  985. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/variable_force/assignment.rb +97 -0
  986. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/variable_force/locatable.rb +200 -0
  987. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/variable_force/reference.rb +51 -0
  988. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/variable_force/scope.rb +91 -0
  989. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/variable_force/variable.rb +102 -0
  990. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/variable_force/variable_table.rb +128 -0
  991. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/error.rb +11 -0
  992. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/formatter/base_formatter.rb +123 -0
  993. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/formatter/clang_style_formatter.rb +54 -0
  994. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/formatter/colorizable.rb +41 -0
  995. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/formatter/disabled_config_formatter.rb +180 -0
  996. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/formatter/disabled_lines_formatter.rb +57 -0
  997. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/formatter/emacs_style_formatter.rb +24 -0
  998. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/formatter/file_list_formatter.rb +19 -0
  999. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/formatter/formatter_set.rb +102 -0
  1000. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/formatter/fuubar_style_formatter.rb +80 -0
  1001. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/formatter/html_formatter.rb +133 -0
  1002. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/formatter/json_formatter.rb +74 -0
  1003. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/formatter/offense_count_formatter.rb +55 -0
  1004. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/formatter/progress_formatter.rb +63 -0
  1005. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/formatter/simple_text_formatter.rb +134 -0
  1006. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/formatter/text_util.rb +20 -0
  1007. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/formatter/worst_offenders_formatter.rb +60 -0
  1008. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/name_similarity.rb +21 -0
  1009. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/node_pattern.rb +542 -0
  1010. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/options.rb +320 -0
  1011. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/path_util.rb +31 -0
  1012. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/processed_source.rb +151 -0
  1013. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/rake_task.rb +86 -0
  1014. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/remote_config.rb +66 -0
  1015. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/result_cache.rb +176 -0
  1016. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/rspec/cop_helper.rb +87 -0
  1017. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/rspec/host_environment_simulation_helper.rb +32 -0
  1018. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/rspec/shared_contexts.rb +78 -0
  1019. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/rspec/shared_examples.rb +100 -0
  1020. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/rspec/support.rb +8 -0
  1021. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/runner.rb +323 -0
  1022. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/string_interpreter.rb +57 -0
  1023. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/string_util.rb +156 -0
  1024. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/target_finder.rb +139 -0
  1025. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/token.rb +25 -0
  1026. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/version.rb +21 -0
  1027. data/vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/warning.rb +11 -0
  1028. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/LICENSE.txt +19 -0
  1029. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/README.md +38 -0
  1030. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/Rakefile +2 -0
  1031. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar.rb +18 -0
  1032. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/base.rb +183 -0
  1033. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/calculators/length.rb +99 -0
  1034. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/calculators/running_average.rb +9 -0
  1035. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components.rb +5 -0
  1036. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components/bar.rb +96 -0
  1037. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components/percentage.rb +29 -0
  1038. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components/rate.rb +43 -0
  1039. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components/time.rb +107 -0
  1040. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components/title.rb +13 -0
  1041. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/errors/invalid_progress_error.rb +4 -0
  1042. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/format.rb +3 -0
  1043. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/format/formatter.rb +27 -0
  1044. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/format/molecule.rb +59 -0
  1045. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/format/string.rb +36 -0
  1046. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/output.rb +68 -0
  1047. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/outputs/non_tty.rb +47 -0
  1048. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/outputs/null.rb +33 -0
  1049. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/outputs/tty.rb +32 -0
  1050. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/progress.rb +118 -0
  1051. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/refinements.rb +1 -0
  1052. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/refinements/enumerator.rb +25 -0
  1053. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/throttle.rb +25 -0
  1054. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/time.rb +30 -0
  1055. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/timer.rb +72 -0
  1056. data/vendor/bundle/ruby/2.5.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/version.rb +3 -0
  1057. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/CHANGELOG.md +411 -0
  1058. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/CONTRIBUTING.md +48 -0
  1059. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/Gemfile +38 -0
  1060. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/MIT-LICENSE +20 -0
  1061. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/README.md +633 -0
  1062. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/Rakefile +41 -0
  1063. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/cucumber.yml +13 -0
  1064. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/doc/alternate-formatters.md +36 -0
  1065. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/doc/commercial-services.md +20 -0
  1066. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/doc/editor-integration.md +13 -0
  1067. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/config_autoload.feature +46 -0
  1068. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/config_command_name.feature +45 -0
  1069. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/config_coverage_dir.feature +33 -0
  1070. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/config_deactivate_merging.feature +42 -0
  1071. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/config_formatters.feature +77 -0
  1072. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/config_merge_timeout.feature +39 -0
  1073. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/config_nocov_token.feature +79 -0
  1074. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/config_profiles.feature +44 -0
  1075. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/config_project_name.feature +27 -0
  1076. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/config_styles.feature +121 -0
  1077. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/config_tracked_files.feature +29 -0
  1078. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/cucumber_basic.feature +29 -0
  1079. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/maximum_coverage_drop.feature +36 -0
  1080. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/merging_test_unit_and_rspec.feature +44 -0
  1081. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/minimum_coverage.feature +59 -0
  1082. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/refuse_coverage_drop.feature +35 -0
  1083. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/rspec_basic.feature +32 -0
  1084. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/rspec_fails_on_initialization.feature +14 -0
  1085. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/rspec_groups_and_filters_basic.feature +29 -0
  1086. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/rspec_groups_and_filters_complex.feature +37 -0
  1087. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/rspec_groups_using_filter_class.feature +41 -0
  1088. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/rspec_without_simplecov.feature +20 -0
  1089. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/skipping_code_blocks_manually.feature +70 -0
  1090. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/step_definitions/html_steps.rb +44 -0
  1091. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/step_definitions/simplecov_steps.rb +68 -0
  1092. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/step_definitions/transformers.rb +13 -0
  1093. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/step_definitions/web_steps.rb +64 -0
  1094. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/support/env.rb +50 -0
  1095. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/test_unit_basic.feature +34 -0
  1096. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/test_unit_groups_and_filters_basic.feature +29 -0
  1097. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/test_unit_groups_and_filters_complex.feature +35 -0
  1098. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/test_unit_groups_using_filter_class.feature +40 -0
  1099. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/test_unit_without_simplecov.feature +20 -0
  1100. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/features/unicode_compatiblity.feature +67 -0
  1101. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov.rb +184 -0
  1102. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/command_guesser.rb +59 -0
  1103. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/configuration.rb +296 -0
  1104. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/defaults.rb +122 -0
  1105. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/exit_codes.rb +8 -0
  1106. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/file_list.rb +59 -0
  1107. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/filter.rb +54 -0
  1108. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/formatter.rb +8 -0
  1109. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/formatter/multi_formatter.rb +32 -0
  1110. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/formatter/simple_formatter.rb +23 -0
  1111. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/jruby_fix.rb +42 -0
  1112. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/last_run.rb +22 -0
  1113. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/merge_helpers.rb +37 -0
  1114. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/no_defaults.rb +2 -0
  1115. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/profiles.rb +31 -0
  1116. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/railtie.rb +7 -0
  1117. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/railties/tasks.rake +11 -0
  1118. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/result.rb +87 -0
  1119. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/result_merger.rb +88 -0
  1120. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/source_file.rb +194 -0
  1121. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/lib/simplecov/version.rb +25 -0
  1122. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/simplecov.gemspec +27 -0
  1123. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/1_8_fallbacks_spec.rb +31 -0
  1124. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/command_guesser_spec.rb +48 -0
  1125. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/deleted_source_spec.rb +12 -0
  1126. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/Gemfile +6 -0
  1127. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/Rakefile +8 -0
  1128. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/cucumber.yml +13 -0
  1129. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/features/step_definitions/my_steps.rb +22 -0
  1130. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/features/support/env.rb +12 -0
  1131. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/features/test_stuff.feature +6 -0
  1132. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/lib/faked_project.rb +11 -0
  1133. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/lib/faked_project/framework_specific.rb +18 -0
  1134. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/lib/faked_project/meta_magic.rb +24 -0
  1135. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/lib/faked_project/some_class.rb +28 -0
  1136. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/lib/faked_project/untested_class.rb +11 -0
  1137. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/spec/faked_spec.rb +11 -0
  1138. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/spec/forking_spec.rb +8 -0
  1139. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/spec/meta_magic_spec.rb +15 -0
  1140. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/spec/some_class_spec.rb +13 -0
  1141. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/spec/spec_helper.rb +11 -0
  1142. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/test/faked_test.rb +11 -0
  1143. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/test/meta_magic_test.rb +13 -0
  1144. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/test/some_class_test.rb +15 -0
  1145. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/faked_project/test/test_helper.rb +12 -0
  1146. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/file_list_spec.rb +50 -0
  1147. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/filters_spec.rb +98 -0
  1148. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/fixtures/app/controllers/sample_controller.rb +10 -0
  1149. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/fixtures/app/models/user.rb +10 -0
  1150. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/fixtures/deleted_source_sample.rb +15 -0
  1151. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/fixtures/frameworks/rspec_bad.rb +9 -0
  1152. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/fixtures/frameworks/rspec_good.rb +9 -0
  1153. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/fixtures/frameworks/testunit_bad.rb +9 -0
  1154. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/fixtures/frameworks/testunit_good.rb +9 -0
  1155. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/fixtures/iso-8859.rb +3 -0
  1156. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/fixtures/resultset1.rb +4 -0
  1157. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/fixtures/resultset2.rb +4 -0
  1158. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/fixtures/sample.rb +16 -0
  1159. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/fixtures/utf-8.rb +3 -0
  1160. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/helper.rb +24 -0
  1161. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/merge_helpers_spec.rb +126 -0
  1162. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/multi_formatter_spec.rb +20 -0
  1163. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/result_spec.rb +209 -0
  1164. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/return_codes_spec.rb +34 -0
  1165. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/source_file_line_spec.rb +155 -0
  1166. data/vendor/bundle/ruby/2.5.0/gems/simplecov-0.13.0/spec/source_file_spec.rb +77 -0
  1167. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/CHANGELOG.md +13 -0
  1168. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/Gemfile +34 -0
  1169. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/Guardfile +12 -0
  1170. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/LICENSE +20 -0
  1171. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/README.md +30 -0
  1172. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/Rakefile +41 -0
  1173. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/assets/javascripts/application.js +127 -0
  1174. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/assets/javascripts/libraries/jquery-1.6.2.min.js +18 -0
  1175. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/assets/javascripts/plugins/highlight.pack.js +1 -0
  1176. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/assets/javascripts/plugins/jquery.colorbox.js +1090 -0
  1177. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/assets/javascripts/plugins/jquery.dataTables.min.js +152 -0
  1178. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/assets/javascripts/plugins/jquery.timeago.js +141 -0
  1179. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/assets/javascripts/plugins/jquery.url.js +174 -0
  1180. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/assets/stylesheets/application.css +3 -0
  1181. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/assets/stylesheets/plugins/highlight.css +129 -0
  1182. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/assets/stylesheets/plugins/jquery-ui-1.8.4.custom.css +295 -0
  1183. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/assets/stylesheets/plugins/jquery.colorbox.css +52 -0
  1184. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/assets/stylesheets/reset.css +103 -0
  1185. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/assets/stylesheets/screen.css.sass +220 -0
  1186. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/lib/simplecov-html.rb +110 -0
  1187. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/lib/simplecov-html/version.rb +7 -0
  1188. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/application.css +799 -0
  1189. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/application.js +1707 -0
  1190. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/colorbox/border.png +0 -0
  1191. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/colorbox/controls.png +0 -0
  1192. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/colorbox/loading.gif +0 -0
  1193. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/colorbox/loading_background.png +0 -0
  1194. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/favicon_green.png +0 -0
  1195. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/favicon_red.png +0 -0
  1196. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/favicon_yellow.png +0 -0
  1197. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/loading.gif +0 -0
  1198. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/magnify.png +0 -0
  1199. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  1200. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  1201. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  1202. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  1203. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  1204. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  1205. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  1206. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  1207. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-icons_222222_256x240.png +0 -0
  1208. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  1209. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-icons_454545_256x240.png +0 -0
  1210. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-icons_888888_256x240.png +0 -0
  1211. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  1212. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/simplecov-html.gemspec +22 -0
  1213. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/test/helper.rb +4 -0
  1214. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/test/test_simple_cov-html.rb +8 -0
  1215. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/views/file_list.erb +45 -0
  1216. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/views/layout.erb +41 -0
  1217. data/vendor/bundle/ruby/2.5.0/gems/simplecov-html-0.10.2/views/source_file.erb +23 -0
  1218. data/vendor/bundle/ruby/2.5.0/gems/unicode-display_width-1.3.0/CHANGELOG.md +96 -0
  1219. data/vendor/bundle/ruby/2.5.0/gems/unicode-display_width-1.3.0/MIT-LICENSE.txt +22 -0
  1220. data/vendor/bundle/ruby/2.5.0/gems/unicode-display_width-1.3.0/README.md +120 -0
  1221. data/vendor/bundle/ruby/2.5.0/gems/unicode-display_width-1.3.0/Rakefile +64 -0
  1222. data/vendor/bundle/ruby/2.5.0/gems/unicode-display_width-1.3.0/data/display_width.marshal.gz +0 -0
  1223. data/vendor/bundle/ruby/2.5.0/gems/unicode-display_width-1.3.0/lib/unicode/display_width.rb +51 -0
  1224. data/vendor/bundle/ruby/2.5.0/gems/unicode-display_width-1.3.0/lib/unicode/display_width/constants.rb +8 -0
  1225. data/vendor/bundle/ruby/2.5.0/gems/unicode-display_width-1.3.0/lib/unicode/display_width/index.rb +7 -0
  1226. data/vendor/bundle/ruby/2.5.0/gems/unicode-display_width-1.3.0/lib/unicode/display_width/no_string_ext.rb +7 -0
  1227. data/vendor/bundle/ruby/2.5.0/gems/unicode-display_width-1.3.0/lib/unicode/display_width/string_ext.rb +17 -0
  1228. data/vendor/bundle/ruby/2.5.0/gems/unicode-display_width-1.3.0/spec/display_width_spec.rb +156 -0
  1229. data/vendor/bundle/ruby/2.5.0/gems/unicode-display_width-1.3.0/unicode-display_width.gemspec +18 -0
  1230. data/vendor/bundle/ruby/2.5.0/specifications/ast-2.3.0.gemspec +59 -0
  1231. data/vendor/bundle/ruby/2.5.0/specifications/codeclimate-test-reporter-1.0.8.gemspec +50 -0
  1232. data/vendor/bundle/ruby/2.5.0/specifications/diff-lcs-1.3.gemspec +61 -0
  1233. data/vendor/bundle/ruby/2.5.0/specifications/docile-1.1.5.gemspec +48 -0
  1234. data/vendor/bundle/ruby/2.5.0/specifications/parser-2.4.0.2.gemspec +61 -0
  1235. data/vendor/bundle/ruby/2.5.0/specifications/powerpack-0.1.1.gemspec +41 -0
  1236. data/vendor/bundle/ruby/2.5.0/specifications/rainbow-2.2.2.gemspec +39 -0
  1237. data/vendor/bundle/ruby/2.5.0/specifications/rake-12.3.0.gemspec +49 -0
  1238. data/vendor/bundle/ruby/2.5.0/specifications/rspec-3.7.0.gemspec +42 -0
  1239. data/vendor/bundle/ruby/2.5.0/specifications/rspec-core-3.7.0.gemspec +62 -0
  1240. data/vendor/bundle/ruby/2.5.0/specifications/rspec-expectations-3.7.0.gemspec +50 -0
  1241. data/vendor/bundle/ruby/2.5.0/specifications/rspec-mocks-3.7.0.gemspec +50 -0
  1242. data/vendor/bundle/ruby/2.5.0/specifications/rspec-support-3.7.0.gemspec +41 -0
  1243. data/vendor/bundle/ruby/2.5.0/specifications/rubocop-0.46.0.gemspec +51 -0
  1244. data/vendor/bundle/ruby/2.5.0/specifications/ruby-progressbar-1.9.0.gemspec +46 -0
  1245. data/vendor/bundle/ruby/2.5.0/specifications/simplecov-0.13.0.gemspec +42 -0
  1246. data/vendor/bundle/ruby/2.5.0/specifications/simplecov-html-0.10.2.gemspec +33 -0
  1247. data/vendor/bundle/ruby/2.5.0/specifications/unicode-display_width-1.3.0.gemspec +38 -0
  1248. metadata +1244 -3
@@ -0,0 +1,2265 @@
1
+ %%machine lex; # % fix highlighting
2
+
3
+ #
4
+ # === BEFORE YOU START ===
5
+ #
6
+ # Read the Ruby Hacking Guide chapter 11, available in English at
7
+ # http://whitequark.org/blog/2013/04/01/ruby-hacking-guide-ch-11-finite-state-lexer/
8
+ #
9
+ # Remember two things about Ragel scanners:
10
+ #
11
+ # 1) Longest match wins.
12
+ #
13
+ # 2) If two matches have the same length, the first
14
+ # in source code wins.
15
+ #
16
+ # General rules of making Ragel and Bison happy:
17
+ #
18
+ # * `p` (position) and `@te` contain the index of the character
19
+ # they're pointing to ("current"), plus one. `@ts` contains the index
20
+ # of the corresponding character. The code for extracting matched token is:
21
+ #
22
+ # @source_buffer.slice(@ts...@te)
23
+ #
24
+ # * If your input is `foooooooobar` and the rule is:
25
+ #
26
+ # 'f' 'o'+
27
+ #
28
+ # the result will be:
29
+ #
30
+ # foooooooobar
31
+ # ^ ts=0 ^ p=te=9
32
+ #
33
+ # * A Ragel lexer action should not emit more than one token, unless
34
+ # you know what you are doing.
35
+ #
36
+ # * All Ragel commands (fnext, fgoto, ...) end with a semicolon.
37
+ #
38
+ # * If an action emits the token and transitions to another state, use
39
+ # these Ragel commands:
40
+ #
41
+ # emit($whatever)
42
+ # fnext $next_state; fbreak;
43
+ #
44
+ # If you perform `fgoto` in an action which does not emit a token nor
45
+ # rewinds the stream pointer, the parser's side-effectful,
46
+ # context-sensitive lookahead actions will break in a hard to detect
47
+ # and debug way.
48
+ #
49
+ # * If an action does not emit a token:
50
+ #
51
+ # fgoto $next_state;
52
+ #
53
+ # * If an action features lookbehind, i.e. matches characters with the
54
+ # intent of passing them to another action:
55
+ #
56
+ # p = @ts - 1
57
+ # fgoto $next_state;
58
+ #
59
+ # or, if the lookbehind consists of a single character:
60
+ #
61
+ # fhold; fgoto $next_state;
62
+ #
63
+ # * Ragel merges actions. So, if you have `e_lparen = '(' %act` and
64
+ # `c_lparen = '('` and a lexer action `e_lparen | c_lparen`, the result
65
+ # _will_ invoke the action `act`.
66
+ #
67
+ # e_something stands for "something with **e**mbedded action".
68
+ #
69
+ # * EOF is explicit and is matched by `c_eof`. If you want to introspect
70
+ # the state of the lexer, add this rule to the state:
71
+ #
72
+ # c_eof => do_eof;
73
+ #
74
+ # * If you proceed past EOF, the lexer will complain:
75
+ #
76
+ # NoMethodError: undefined method `ord' for nil:NilClass
77
+ #
78
+
79
+ class Parser::Lexer
80
+
81
+ %% write data nofinal;
82
+ # %
83
+
84
+ ESCAPES = {
85
+ ?a.ord => "\a", ?b.ord => "\b", ?e.ord => "\e", ?f.ord => "\f",
86
+ ?n.ord => "\n", ?r.ord => "\r", ?s.ord => "\s", ?t.ord => "\t",
87
+ ?v.ord => "\v", ?\\.ord => "\\"
88
+ }.freeze
89
+
90
+ REGEXP_META_CHARACTERS = Regexp.union(*"\\$()*+.<>?[]^{|}".chars).freeze
91
+
92
+ RBRACE_OR_RBRACK = %w"} ]".freeze
93
+
94
+ attr_reader :source_buffer
95
+
96
+ attr_accessor :diagnostics
97
+ attr_accessor :static_env
98
+ attr_accessor :force_utf32
99
+
100
+ attr_accessor :cond, :cmdarg, :in_kwarg
101
+
102
+ attr_accessor :tokens, :comments
103
+
104
+ def initialize(version)
105
+ @version = version
106
+ @static_env = nil
107
+
108
+ @tokens = nil
109
+ @comments = nil
110
+
111
+ reset
112
+ end
113
+
114
+ def reset(reset_state=true)
115
+ # Ragel state:
116
+ if reset_state
117
+ # Unit tests set state prior to resetting lexer.
118
+ @cs = self.class.lex_en_line_begin
119
+
120
+ @cond = StackState.new('cond')
121
+ @cmdarg = StackState.new('cmdarg')
122
+ @cond_stack = []
123
+ @cmdarg_stack = []
124
+ end
125
+
126
+ @force_utf32 = false # Set to true by some tests
127
+
128
+ @source_pts = nil # @source as a codepoint array
129
+
130
+ @p = 0 # stream position (saved manually in #advance)
131
+ @ts = nil # token start
132
+ @te = nil # token end
133
+ @act = 0 # next action
134
+
135
+ @stack = [] # state stack
136
+ @top = 0 # state stack top pointer
137
+
138
+ # Lexer state:
139
+ @token_queue = []
140
+ @literal_stack = []
141
+
142
+ @eq_begin_s = nil # location of last encountered =begin
143
+ @sharp_s = nil # location of last encountered #
144
+
145
+ @newline_s = nil # location of last encountered newline
146
+
147
+ @num_base = nil # last numeric base
148
+ @num_digits_s = nil # starting position of numeric digits
149
+ @num_suffix_s = nil # starting position of numeric suffix
150
+ @num_xfrm = nil # numeric suffix-induced transformation
151
+
152
+ @escape_s = nil # starting position of current sequence
153
+ @escape = nil # last escaped sequence, as string
154
+
155
+ @herebody_s = nil # starting position of current heredoc line
156
+
157
+ # Ruby 1.9 ->() lambdas emit a distinct token if do/{ is
158
+ # encountered after a matching closing parenthesis.
159
+ @paren_nest = 0
160
+ @lambda_stack = []
161
+
162
+ # After encountering the closing line of <<~SQUIGGLY_HEREDOC,
163
+ # we store the indentation level and give it out to the parser
164
+ # on request. It is not possible to infer indentation level just
165
+ # from the AST because escape sequences such as `\ ` or `\t` are
166
+ # expanded inside the lexer, but count as non-whitespace for
167
+ # indentation purposes.
168
+ @dedent_level = nil
169
+
170
+ # If the lexer is in `command state' (aka expr_value)
171
+ # at the entry to #advance, it will transition to expr_cmdarg
172
+ # instead of expr_arg at certain points.
173
+ @command_state = false
174
+
175
+ # True at the end of "def foo a:"
176
+ @in_kwarg = false
177
+ end
178
+
179
+ def source_buffer=(source_buffer)
180
+ @source_buffer = source_buffer
181
+
182
+ if @source_buffer
183
+ source = @source_buffer.source
184
+
185
+ if defined?(Encoding) && source.encoding == Encoding::UTF_8
186
+ @source_pts = source.unpack('U*')
187
+ else
188
+ @source_pts = source.unpack('C*')
189
+ end
190
+
191
+ if @source_pts[0] == 0xfeff
192
+ # Skip byte order mark.
193
+ @p = 1
194
+ end
195
+ else
196
+ @source_pts = nil
197
+ end
198
+ end
199
+
200
+ def encoding
201
+ @source_buffer.source.encoding
202
+ end
203
+
204
+ LEX_STATES = {
205
+ :line_begin => lex_en_line_begin,
206
+ :expr_dot => lex_en_expr_dot,
207
+ :expr_fname => lex_en_expr_fname,
208
+ :expr_value => lex_en_expr_value,
209
+ :expr_beg => lex_en_expr_beg,
210
+ :expr_mid => lex_en_expr_mid,
211
+ :expr_arg => lex_en_expr_arg,
212
+ :expr_cmdarg => lex_en_expr_cmdarg,
213
+ :expr_end => lex_en_expr_end,
214
+ :expr_endarg => lex_en_expr_endarg,
215
+ :expr_endfn => lex_en_expr_endfn,
216
+ :expr_labelarg => lex_en_expr_labelarg,
217
+
218
+ :interp_string => lex_en_interp_string,
219
+ :interp_words => lex_en_interp_words,
220
+ :plain_string => lex_en_plain_string,
221
+ :plain_words => lex_en_plain_string,
222
+ }
223
+
224
+ def state
225
+ LEX_STATES.invert.fetch(@cs, @cs)
226
+ end
227
+
228
+ def state=(state)
229
+ @cs = LEX_STATES.fetch(state)
230
+ end
231
+
232
+ def push_cmdarg
233
+ @cmdarg_stack.push(@cmdarg)
234
+ @cmdarg = StackState.new("cmdarg.#{@cmdarg_stack.count}")
235
+ end
236
+
237
+ def pop_cmdarg
238
+ @cmdarg = @cmdarg_stack.pop
239
+ end
240
+
241
+ def push_cond
242
+ @cond_stack.push(@cond)
243
+ @cond = StackState.new("cond.#{@cond_stack.count}")
244
+ end
245
+
246
+ def pop_cond
247
+ @cond = @cond_stack.pop
248
+ end
249
+
250
+ def dedent_level
251
+ # We erase @dedent_level as a precaution to avoid accidentally
252
+ # using a stale value.
253
+ dedent_level, @dedent_level = @dedent_level, nil
254
+ dedent_level
255
+ end
256
+
257
+ # Return next token: [type, value].
258
+ def advance
259
+ if @token_queue.any?
260
+ return @token_queue.shift
261
+ end
262
+
263
+ # Ugly, but dependent on Ragel output. Consider refactoring it somehow.
264
+ klass = self.class
265
+ _lex_trans_keys = klass.send :_lex_trans_keys
266
+ _lex_key_spans = klass.send :_lex_key_spans
267
+ _lex_index_offsets = klass.send :_lex_index_offsets
268
+ _lex_indicies = klass.send :_lex_indicies
269
+ _lex_trans_targs = klass.send :_lex_trans_targs
270
+ _lex_trans_actions = klass.send :_lex_trans_actions
271
+ _lex_to_state_actions = klass.send :_lex_to_state_actions
272
+ _lex_from_state_actions = klass.send :_lex_from_state_actions
273
+ _lex_eof_trans = klass.send :_lex_eof_trans
274
+
275
+ pe = @source_pts.size + 2
276
+ p, eof = @p, pe
277
+
278
+ @command_state = (@cs == klass.lex_en_expr_value ||
279
+ @cs == klass.lex_en_line_begin)
280
+
281
+ %% write exec;
282
+ # %
283
+
284
+ @p = p
285
+
286
+ if @token_queue.any?
287
+ @token_queue.shift
288
+ elsif @cs == klass.lex_error
289
+ [ false, [ '$error'.freeze, range(p - 1, p) ] ]
290
+ else
291
+ eof = @source_pts.size
292
+ [ false, [ '$eof'.freeze, range(eof, eof) ] ]
293
+ end
294
+ end
295
+
296
+ protected
297
+
298
+ def eof_codepoint?(point)
299
+ [0x04, 0x1a, 0x00].include? point
300
+ end
301
+
302
+ def version?(*versions)
303
+ versions.include?(@version)
304
+ end
305
+
306
+ def stack_pop
307
+ @top -= 1
308
+ @stack[@top]
309
+ end
310
+
311
+ if defined?(Encoding)
312
+ def encode_escape(ord)
313
+ ord.chr.force_encoding(@source_buffer.source.encoding)
314
+ end
315
+ else
316
+ def encode_escape(ord)
317
+ ord.chr
318
+ end
319
+ end
320
+
321
+ def tok(s = @ts, e = @te)
322
+ @source_buffer.slice(s...e)
323
+ end
324
+
325
+ def range(s = @ts, e = @te)
326
+ Parser::Source::Range.new(@source_buffer, s, e)
327
+ end
328
+
329
+ def emit(type, value = tok, s = @ts, e = @te)
330
+ token = [ type, [ value, range(s, e) ] ]
331
+
332
+ @token_queue.push(token)
333
+
334
+ @tokens.push(token) if @tokens
335
+
336
+ token
337
+ end
338
+
339
+ def emit_table(table, s = @ts, e = @te)
340
+ value = tok(s, e)
341
+
342
+ emit(table[value], value, s, e)
343
+ end
344
+
345
+ def emit_do(do_block=false)
346
+ if @cond.active?
347
+ emit(:kDO_COND, 'do'.freeze)
348
+ elsif @cmdarg.active? || do_block
349
+ emit(:kDO_BLOCK, 'do'.freeze)
350
+ else
351
+ emit(:kDO, 'do'.freeze)
352
+ end
353
+ end
354
+
355
+ def arg_or_cmdarg
356
+ if @command_state
357
+ self.class.lex_en_expr_cmdarg
358
+ else
359
+ self.class.lex_en_expr_arg
360
+ end
361
+ end
362
+
363
+ def emit_comment(s = @ts, e = @te)
364
+ if @comments
365
+ @comments.push(Parser::Source::Comment.new(range(s, e)))
366
+ end
367
+
368
+ if @tokens
369
+ @tokens.push([ :tCOMMENT, [ tok(s, e), range(s, e) ] ])
370
+ end
371
+
372
+ nil
373
+ end
374
+
375
+ def diagnostic(type, reason, arguments=nil, location=range, highlights=[])
376
+ @diagnostics.process(
377
+ Parser::Diagnostic.new(type, reason, arguments, location, highlights))
378
+ end
379
+
380
+ #
381
+ # === LITERAL STACK ===
382
+ #
383
+
384
+ def push_literal(*args)
385
+ new_literal = Literal.new(self, *args)
386
+ @literal_stack.push(new_literal)
387
+
388
+ if new_literal.words? && new_literal.backslash_delimited?
389
+ if new_literal.interpolate?
390
+ self.class.lex_en_interp_backslash_delimited_words
391
+ else
392
+ self.class.lex_en_plain_backslash_delimited_words
393
+ end
394
+ elsif new_literal.words? && !new_literal.backslash_delimited?
395
+ if new_literal.interpolate?
396
+ self.class.lex_en_interp_words
397
+ else
398
+ self.class.lex_en_plain_words
399
+ end
400
+ elsif !new_literal.words? && new_literal.backslash_delimited?
401
+ if new_literal.interpolate?
402
+ self.class.lex_en_interp_backslash_delimited
403
+ else
404
+ self.class.lex_en_plain_backslash_delimited
405
+ end
406
+ else
407
+ if new_literal.interpolate?
408
+ self.class.lex_en_interp_string
409
+ else
410
+ self.class.lex_en_plain_string
411
+ end
412
+ end
413
+ end
414
+
415
+ def literal
416
+ @literal_stack.last
417
+ end
418
+
419
+ def pop_literal
420
+ old_literal = @literal_stack.pop
421
+
422
+ @dedent_level = old_literal.dedent_level
423
+
424
+ if old_literal.type == :tREGEXP_BEG
425
+ # Fetch modifiers.
426
+ self.class.lex_en_regexp_modifiers
427
+ else
428
+ self.class.lex_en_expr_end
429
+ end
430
+ end
431
+
432
+ # Mapping of strings to parser tokens.
433
+
434
+ PUNCTUATION = {
435
+ '=' => :tEQL, '&' => :tAMPER2, '|' => :tPIPE,
436
+ '!' => :tBANG, '^' => :tCARET, '+' => :tPLUS,
437
+ '-' => :tMINUS, '*' => :tSTAR2, '/' => :tDIVIDE,
438
+ '%' => :tPERCENT, '~' => :tTILDE, ',' => :tCOMMA,
439
+ ';' => :tSEMI, '.' => :tDOT, '..' => :tDOT2,
440
+ '...' => :tDOT3, '[' => :tLBRACK2, ']' => :tRBRACK,
441
+ '(' => :tLPAREN2, ')' => :tRPAREN, '?' => :tEH,
442
+ ':' => :tCOLON, '&&' => :tANDOP, '||' => :tOROP,
443
+ '-@' => :tUMINUS, '+@' => :tUPLUS, '~@' => :tTILDE,
444
+ '**' => :tPOW, '->' => :tLAMBDA, '=~' => :tMATCH,
445
+ '!~' => :tNMATCH, '==' => :tEQ, '!=' => :tNEQ,
446
+ '>' => :tGT, '>>' => :tRSHFT, '>=' => :tGEQ,
447
+ '<' => :tLT, '<<' => :tLSHFT, '<=' => :tLEQ,
448
+ '=>' => :tASSOC, '::' => :tCOLON2, '===' => :tEQQ,
449
+ '<=>' => :tCMP, '[]' => :tAREF, '[]=' => :tASET,
450
+ '{' => :tLCURLY, '}' => :tRCURLY, '`' => :tBACK_REF2,
451
+ '!@' => :tBANG, '&.' => :tANDDOT,
452
+ }
453
+
454
+ PUNCTUATION_BEGIN = {
455
+ '&' => :tAMPER, '*' => :tSTAR, '**' => :tDSTAR,
456
+ '+' => :tUPLUS, '-' => :tUMINUS, '::' => :tCOLON3,
457
+ '(' => :tLPAREN, '{' => :tLBRACE, '[' => :tLBRACK,
458
+ }
459
+
460
+ KEYWORDS = {
461
+ 'if' => :kIF_MOD, 'unless' => :kUNLESS_MOD,
462
+ 'while' => :kWHILE_MOD, 'until' => :kUNTIL_MOD,
463
+ 'rescue' => :kRESCUE_MOD, 'defined?' => :kDEFINED,
464
+ 'BEGIN' => :klBEGIN, 'END' => :klEND,
465
+ }
466
+
467
+ KEYWORDS_BEGIN = {
468
+ 'if' => :kIF, 'unless' => :kUNLESS,
469
+ 'while' => :kWHILE, 'until' => :kUNTIL,
470
+ 'rescue' => :kRESCUE, 'defined?' => :kDEFINED,
471
+ }
472
+
473
+ %w(class module def undef begin end then elsif else ensure case when
474
+ for break next redo retry in do return yield super self nil true
475
+ false and or not alias __FILE__ __LINE__ __ENCODING__).each do |keyword|
476
+ KEYWORDS_BEGIN[keyword] = KEYWORDS[keyword] = :"k#{keyword.upcase}"
477
+ end
478
+
479
+ %%{
480
+ # %
481
+
482
+ access @;
483
+ getkey (@source_pts[p] || 0);
484
+
485
+ # === CHARACTER CLASSES ===
486
+ #
487
+ # Pay close attention to the differences between c_any and any.
488
+ # c_any does not include EOF and so will cause incorrect behavior
489
+ # for machine subtraction (any-except rules) and default transitions
490
+ # for scanners.
491
+
492
+ action do_nl {
493
+ # Record position of a newline for precise location reporting on tNL
494
+ # tokens.
495
+ #
496
+ # This action is embedded directly into c_nl, as it is idempotent and
497
+ # there are no cases when we need to skip it.
498
+ @newline_s = p
499
+ }
500
+
501
+ c_nl = '\n' $ do_nl;
502
+ c_space = [ \t\r\f\v];
503
+ c_space_nl = c_space | c_nl;
504
+
505
+ c_eof = 0x04 | 0x1a | 0 | zlen; # ^D, ^Z, \0, EOF
506
+ c_eol = c_nl | c_eof;
507
+ c_any = any - c_eof;
508
+
509
+ c_nl_zlen = c_nl | zlen;
510
+ c_line = any - c_nl_zlen;
511
+
512
+ c_unicode = c_any - 0x00..0x7f;
513
+ c_upper = [A-Z];
514
+ c_lower = [a-z_] | c_unicode;
515
+ c_alpha = c_lower | c_upper;
516
+ c_alnum = c_alpha | [0-9];
517
+
518
+ action do_eof {
519
+ # Sit at EOF indefinitely. #advance would return $eof each time.
520
+ # This allows to feed the lexer more data if needed; this is only used
521
+ # in tests.
522
+ #
523
+ # Note that this action is not embedded into e_eof like e_heredoc_nl and e_bs
524
+ # below. This is due to the fact that scanner state at EOF is observed
525
+ # by tests, and encapsulating it in a rule would break the introspection.
526
+ fhold; fbreak;
527
+ }
528
+
529
+ #
530
+ # === TOKEN DEFINITIONS ===
531
+ #
532
+
533
+ # All operators are punctuation. There is more to punctuation
534
+ # than just operators. Operators can be overridden by user;
535
+ # punctuation can not.
536
+
537
+ # A list of operators which are valid in the function name context, but
538
+ # have different semantics in others.
539
+ operator_fname = '[]' | '[]=' | '`' | '-@' | '+@' | '~@' | '!@' ;
540
+
541
+ # A list of operators which can occur within an assignment shortcut (+ → +=).
542
+ operator_arithmetic = '&' | '|' | '&&' | '||' | '^' | '+' | '-' |
543
+ '*' | '/' | '**' | '~' | '<<' | '>>' | '%' ;
544
+
545
+ # A list of all user-definable operators not covered by groups above.
546
+ operator_rest = '=~' | '!~' | '==' | '!=' | '!' | '===' |
547
+ '<' | '<=' | '>' | '>=' | '<=>' | '=>' ;
548
+
549
+ # Note that `{` and `}` need to be referred to as e_lbrace and e_rbrace,
550
+ # as they are ambiguous with interpolation `#{}` and should be counted.
551
+ # These braces are not present in punctuation lists.
552
+
553
+ # A list of punctuation which has different meaning when used at the
554
+ # beginning of expression.
555
+ punctuation_begin = '-' | '+' | '::' | '(' | '[' |
556
+ '*' | '**' | '&' ;
557
+
558
+ # A list of all punctuation except punctuation_begin.
559
+ punctuation_end = ',' | '=' | '->' | '(' | '[' | ']' |
560
+ '::' | '?' | ':' | '.' | '..' | '...' ;
561
+
562
+ # A list of keywords which have different meaning at the beginning of expression.
563
+ keyword_modifier = 'if' | 'unless' | 'while' | 'until' | 'rescue' ;
564
+
565
+ # A list of keywords which accept an argument-like expression, i.e. have the
566
+ # same post-processing as method calls or commands. Example: `yield 1`,
567
+ # `yield (1)`, `yield(1)`, are interpreted as if `yield` was a function.
568
+ keyword_with_arg = 'yield' | 'super' | 'not' | 'defined?' ;
569
+
570
+ # A list of keywords which accept a literal function name as an argument.
571
+ keyword_with_fname = 'def' | 'undef' | 'alias' ;
572
+
573
+ # A list of keywords which accept an expression after them.
574
+ keyword_with_value = 'else' | 'case' | 'ensure' | 'module' | 'elsif' | 'then' |
575
+ 'for' | 'in' | 'do' | 'when' | 'begin' | 'class' |
576
+ 'and' | 'or' ;
577
+
578
+ # A list of keywords which accept a value, and treat the keywords from
579
+ # `keyword_modifier` list as modifiers.
580
+ keyword_with_mid = 'rescue' | 'return' | 'break' | 'next' ;
581
+
582
+ # A list of keywords which do not accept an expression after them.
583
+ keyword_with_end = 'end' | 'self' | 'true' | 'false' | 'retry' |
584
+ 'redo' | 'nil' | 'BEGIN' | 'END' | '__FILE__' |
585
+ '__LINE__' | '__ENCODING__';
586
+
587
+ # All keywords.
588
+ keyword = keyword_with_value | keyword_with_mid |
589
+ keyword_with_end | keyword_with_arg |
590
+ keyword_with_fname | keyword_modifier ;
591
+
592
+ constant = c_upper c_alnum*;
593
+ bareword = c_alpha c_alnum*;
594
+
595
+ call_or_var = c_lower c_alnum*;
596
+ class_var = '@@' bareword;
597
+ instance_var = '@' bareword;
598
+ global_var = '$'
599
+ ( bareword | digit+
600
+ | [`'+~*$&?!@/\\;,.=:<>"] # `
601
+ | '-' c_alnum
602
+ )
603
+ ;
604
+
605
+ # Ruby accepts (and fails on) variables with leading digit
606
+ # in literal context, but not in unquoted symbol body.
607
+ class_var_v = '@@' c_alnum+;
608
+ instance_var_v = '@' c_alnum+;
609
+
610
+ label = bareword [?!]? ':';
611
+
612
+ #
613
+ # === NUMERIC PARSING ===
614
+ #
615
+
616
+ int_hex = ( xdigit+ '_' )* xdigit* '_'? ;
617
+ int_dec = ( digit+ '_' )* digit* '_'? ;
618
+ int_bin = ( [01]+ '_' )* [01]* '_'? ;
619
+
620
+ flo_int = [1-9] [0-9]* ( '_' digit+ )* | '0';
621
+ flo_frac = '.' ( digit+ '_' )* digit+;
622
+ flo_pow = [eE] [+\-]? ( digit+ '_' )* digit+;
623
+
624
+ int_suffix =
625
+ '' % { @num_xfrm = lambda { |chars| emit(:tINTEGER, chars) } }
626
+ | 'r' % { @num_xfrm = lambda { |chars| emit(:tRATIONAL, Rational(chars)) } }
627
+ | 'i' % { @num_xfrm = lambda { |chars| emit(:tIMAGINARY, Complex(0, chars)) } }
628
+ | 'ri' % { @num_xfrm = lambda { |chars| emit(:tIMAGINARY, Complex(0, Rational(chars))) } };
629
+
630
+ flo_pow_suffix =
631
+ '' % { @num_xfrm = lambda { |chars| emit(:tFLOAT, Float(chars)) } }
632
+ | 'i' % { @num_xfrm = lambda { |chars| emit(:tIMAGINARY, Complex(0, Float(chars))) } };
633
+
634
+ flo_suffix =
635
+ flo_pow_suffix
636
+ | 'r' % { @num_xfrm = lambda { |chars| emit(:tRATIONAL, Rational(chars)) } }
637
+ | 'ri' % { @num_xfrm = lambda { |chars| emit(:tIMAGINARY, Complex(0, Rational(chars))) } };
638
+
639
+ #
640
+ # === ESCAPE SEQUENCE PARSING ===
641
+ #
642
+
643
+ # Escape parsing code is a Ragel pattern, not a scanner, and therefore
644
+ # it shouldn't directly raise errors or perform other actions with side effects.
645
+ # In reality this would probably just mess up error reporting in pathological
646
+ # cases, through.
647
+
648
+ # The amount of code required to parse \M\C stuff correctly is ridiculous.
649
+
650
+ escaped_nl = "\\" c_nl;
651
+
652
+ action unicode_points {
653
+ @escape = ""
654
+
655
+ codepoints = tok(@escape_s + 2, p - 1)
656
+ codepoint_s = @escape_s + 2
657
+
658
+ codepoints.split(/[ \t]/).each do |codepoint_str|
659
+ codepoint = codepoint_str.to_i(16)
660
+
661
+ if codepoint >= 0x110000
662
+ diagnostic :error, :unicode_point_too_large, nil,
663
+ range(codepoint_s, codepoint_s + codepoint_str.length)
664
+ break
665
+ end
666
+
667
+ @escape += codepoint.chr(Encoding::UTF_8)
668
+ codepoint_s += codepoint_str.length + 1
669
+ end
670
+ }
671
+
672
+ action unescape_char {
673
+ codepoint = @source_pts[p - 1]
674
+ if (@escape = ESCAPES[codepoint]).nil?
675
+ @escape = encode_escape(@source_buffer.slice(p - 1))
676
+ end
677
+ }
678
+
679
+ action invalid_complex_escape {
680
+ diagnostic :fatal, :invalid_escape
681
+ }
682
+
683
+ action slash_c_char {
684
+ @escape = encode_escape(@escape[0].ord & 0x9f)
685
+ }
686
+
687
+ action slash_m_char {
688
+ @escape = encode_escape(@escape[0].ord | 0x80)
689
+ }
690
+
691
+ maybe_escaped_char = (
692
+ '\\' c_any %unescape_char
693
+ | ( c_any - [\\] ) % { @escape = @source_buffer.slice(p - 1).chr }
694
+ );
695
+
696
+ maybe_escaped_ctrl_char = ( # why?!
697
+ '\\' c_any %unescape_char %slash_c_char
698
+ | '?' % { @escape = "\x7f" }
699
+ | ( c_any - [\\?] ) % { @escape = @source_buffer.slice(p - 1).chr } %slash_c_char
700
+ );
701
+
702
+ escape = (
703
+ # \377
704
+ [0-7]{1,3}
705
+ % { @escape = encode_escape(tok(@escape_s, p).to_i(8) % 0x100) }
706
+
707
+ # \xff
708
+ | 'x' xdigit{1,2}
709
+ % { @escape = encode_escape(tok(@escape_s + 1, p).to_i(16)) }
710
+
711
+ # \u263a
712
+ | 'u' xdigit{4}
713
+ % { @escape = tok(@escape_s + 1, p).to_i(16).chr(Encoding::UTF_8) }
714
+
715
+ # %q[\x]
716
+ | 'x' ( c_any - xdigit )
717
+ % {
718
+ diagnostic :fatal, :invalid_hex_escape, nil, range(@escape_s - 1, p + 2)
719
+ }
720
+
721
+ # %q[\u123] %q[\u{12]
722
+ | 'u' ( c_any{0,4} -
723
+ xdigit{4} - # \u1234 is valid
724
+ ( '{' xdigit{1,3} # \u{1 \u{12 \u{123 are valid
725
+ | '{' xdigit [ \t}] any? # \u{1. \u{1} are valid
726
+ | '{' xdigit{2} [ \t}] # \u{12. \u{12} are valid
727
+ )
728
+ )
729
+ % {
730
+ diagnostic :fatal, :invalid_unicode_escape, nil, range(@escape_s - 1, p)
731
+ }
732
+
733
+ # \u{123 456}
734
+ | 'u{' ( xdigit{1,6} [ \t] )*
735
+ ( xdigit{1,6} '}'
736
+ %unicode_points
737
+ | ( xdigit* ( c_any - xdigit - '}' )+ '}'
738
+ | ( c_any - '}' )* c_eof
739
+ | xdigit{7,}
740
+ ) % {
741
+ diagnostic :fatal, :unterminated_unicode, nil, range(p - 1, p)
742
+ }
743
+ )
744
+
745
+ # \C-\a \cx
746
+ | ( 'C-' | 'c' ) escaped_nl?
747
+ maybe_escaped_ctrl_char
748
+
749
+ # \M-a
750
+ | 'M-' escaped_nl?
751
+ maybe_escaped_char
752
+ %slash_m_char
753
+
754
+ # \C-\M-f \M-\cf \c\M-f
755
+ | ( ( 'C-' | 'c' ) escaped_nl? '\\M-'
756
+ | 'M-\\' escaped_nl? ( 'C-' | 'c' ) ) escaped_nl?
757
+ maybe_escaped_ctrl_char
758
+ %slash_m_char
759
+
760
+ | 'C' c_any %invalid_complex_escape
761
+ | 'M' c_any %invalid_complex_escape
762
+ | ( 'M-\\C' | 'C-\\M' ) c_any %invalid_complex_escape
763
+
764
+ | ( c_any - [0-7xuCMc] ) %unescape_char
765
+
766
+ | c_eof % {
767
+ diagnostic :fatal, :escape_eof, nil, range(p - 1, p)
768
+ }
769
+ );
770
+
771
+ # Use rules in form of `e_bs escape' when you need to parse a sequence.
772
+ e_bs = '\\' % {
773
+ @escape_s = p
774
+ @escape = nil
775
+ };
776
+
777
+ #
778
+ # === STRING AND HEREDOC PARSING ===
779
+ #
780
+
781
+ # Heredoc parsing is quite a complex topic. First, consider that heredocs
782
+ # can be arbitrarily nested. For example:
783
+ #
784
+ # puts <<CODE
785
+ # the result is: #{<<RESULT.inspect
786
+ # i am a heredoc
787
+ # RESULT
788
+ # }
789
+ # CODE
790
+ #
791
+ # which, incidentally, evaluates to:
792
+ #
793
+ # the result is: " i am a heredoc\n"
794
+ #
795
+ # To parse them, lexer refers to two kinds (remember, nested heredocs)
796
+ # of positions in the input stream, namely heredoc_e
797
+ # (HEREDOC declaration End) and @herebody_s (HEREdoc BODY line Start).
798
+ #
799
+ # heredoc_e is simply contained inside the corresponding Literal, and
800
+ # when the heredoc is closed, the lexing is restarted from that position.
801
+ #
802
+ # @herebody_s is quite more complex. First, @herebody_s changes after each
803
+ # heredoc line is lexed. This way, at '\n' tok(@herebody_s, @te) always
804
+ # contains the current line, and also when a heredoc is started, @herebody_s
805
+ # contains the position from which the heredoc will be lexed.
806
+ #
807
+ # Second, as (insanity) there are nested heredocs, we need to maintain a
808
+ # stack of these positions. Each time #push_literal is called, it saves current
809
+ # @heredoc_s to literal.saved_herebody_s, and after an interpolation (possibly
810
+ # containing another heredocs) is closed, the previous value is restored.
811
+
812
+ e_heredoc_nl = c_nl % {
813
+ # After every heredoc was parsed, @herebody_s contains the
814
+ # position of next token after all heredocs.
815
+ if @herebody_s
816
+ p = @herebody_s
817
+ @herebody_s = nil
818
+ end
819
+ };
820
+
821
+ action extend_string {
822
+ string = tok
823
+
824
+ # tLABEL_END is only possible in non-cond context on >= 2.2
825
+ if @version >= 22 && !@cond.active?
826
+ lookahead = @source_buffer.slice(@te...@te+2)
827
+ end
828
+
829
+ current_literal = literal
830
+ if !current_literal.heredoc? &&
831
+ (token = current_literal.nest_and_try_closing(string, @ts, @te, lookahead))
832
+ if token[0] == :tLABEL_END
833
+ p += 1
834
+ pop_literal
835
+ fnext expr_labelarg;
836
+ else
837
+ fnext *pop_literal;
838
+ end
839
+ fbreak;
840
+ else
841
+ current_literal.extend_string(string, @ts, @te)
842
+ end
843
+ }
844
+
845
+ action extend_string_escaped {
846
+ current_literal = literal
847
+ # Get the first character after the backslash.
848
+ escaped_char = @source_buffer.slice(@escape_s).chr
849
+
850
+ if current_literal.munge_escape? escaped_char
851
+ # If this particular literal uses this character as an opening
852
+ # or closing delimiter, it is an escape sequence for that
853
+ # particular character. Write it without the backslash.
854
+
855
+ if current_literal.regexp? && REGEXP_META_CHARACTERS.match(escaped_char)
856
+ # Regular expressions should include escaped delimiters in their
857
+ # escaped form, except when the escaped character is
858
+ # a closing delimiter but not a regexp metacharacter.
859
+ #
860
+ # The backslash itself cannot be used as a closing delimiter
861
+ # at the same time as an escape symbol, but it is always munged,
862
+ # so this branch also executes for the non-closing-delimiter case
863
+ # for the backslash.
864
+ current_literal.extend_string(tok, @ts, @te)
865
+ else
866
+ current_literal.extend_string(escaped_char, @ts, @te)
867
+ end
868
+ else
869
+ # It does not. So this is an actual escape sequence, yay!
870
+ if current_literal.regexp?
871
+ # Regular expressions should include escape sequences in their
872
+ # escaped form. On the other hand, escaped newlines are removed.
873
+ current_literal.extend_string(tok.gsub("\\\n".freeze, ''.freeze), @ts, @te)
874
+ else
875
+ current_literal.extend_string(@escape || tok, @ts, @te)
876
+ end
877
+ end
878
+ }
879
+
880
+ # Extend a string with a newline or a EOF character.
881
+ # As heredoc closing line can immediately precede EOF, this action
882
+ # has to handle such case specially.
883
+ action extend_string_eol {
884
+ current_literal = literal
885
+ if @te == pe
886
+ diagnostic :fatal, :string_eof, nil,
887
+ range(current_literal.str_s, current_literal.str_s + 1)
888
+ end
889
+
890
+ if current_literal.heredoc?
891
+ line = tok(@herebody_s, @ts).gsub(/\r+$/, ''.freeze)
892
+
893
+ if version?(18, 19, 20)
894
+ # See ruby:c48b4209c
895
+ line = line.gsub(/\r.*$/, ''.freeze)
896
+ end
897
+
898
+ # Try ending the heredoc with the complete most recently
899
+ # scanned line. @herebody_s always refers to the start of such line.
900
+ if current_literal.nest_and_try_closing(line, @herebody_s, @ts)
901
+ # Adjust @herebody_s to point to the next line.
902
+ @herebody_s = @te
903
+
904
+ # Continue regular lexing after the heredoc reference (<<END).
905
+ p = current_literal.heredoc_e - 1
906
+ fnext *pop_literal; fbreak;
907
+ else
908
+ # Calculate indentation level for <<~HEREDOCs.
909
+ current_literal.infer_indent_level(line)
910
+
911
+ # Ditto.
912
+ @herebody_s = @te
913
+ end
914
+ else
915
+ # Try ending the literal with a newline.
916
+ if current_literal.nest_and_try_closing(tok, @ts, @te)
917
+ fnext *pop_literal; fbreak;
918
+ end
919
+
920
+ if @herebody_s
921
+ # This is a regular literal intertwined with a heredoc. Like:
922
+ #
923
+ # p <<-foo+"1
924
+ # bar
925
+ # foo
926
+ # 2"
927
+ #
928
+ # which, incidentally, evaluates to "bar\n1\n2".
929
+ p = @herebody_s - 1
930
+ @herebody_s = nil
931
+ end
932
+ end
933
+
934
+ if current_literal.words? && !eof_codepoint?(@source_pts[p])
935
+ current_literal.extend_space @ts, @te
936
+ else
937
+ # A literal newline is appended if the heredoc was _not_ closed
938
+ # this time (see fbreak above). See also Literal#nest_and_try_closing
939
+ # for rationale of calling #flush_string here.
940
+ current_literal.extend_string tok, @ts, @te
941
+ current_literal.flush_string
942
+ end
943
+ }
944
+
945
+ action extend_string_space {
946
+ literal.extend_space @ts, @te
947
+ }
948
+
949
+ #
950
+ # === INTERPOLATION PARSING ===
951
+ #
952
+
953
+ # Interpolations with immediate variable names simply call into
954
+ # the corresponding machine.
955
+
956
+ interp_var = '#' ( global_var | class_var_v | instance_var_v );
957
+
958
+ action extend_interp_var {
959
+ current_literal = literal
960
+ current_literal.flush_string
961
+ current_literal.extend_content
962
+
963
+ emit(:tSTRING_DVAR, nil, @ts, @ts + 1)
964
+
965
+ p = @ts
966
+ fcall expr_variable;
967
+ }
968
+
969
+ # Interpolations with code blocks must match nested curly braces, as
970
+ # interpolation ending is ambiguous with a block ending. So, every
971
+ # opening and closing brace should be matched with e_[lr]brace rules,
972
+ # which automatically perform the counting.
973
+ #
974
+ # Note that interpolations can themselves be nested, so brace balance
975
+ # is tied to the innermost literal.
976
+ #
977
+ # Also note that literals themselves should not use e_[lr]brace rules
978
+ # when matching their opening and closing delimiters, as the amount of
979
+ # braces inside the characters of a string literal is independent.
980
+
981
+ interp_code = '#{';
982
+
983
+ e_lbrace = '{' % {
984
+ @cond.push(false); @cmdarg.push(false)
985
+
986
+ current_literal = literal
987
+ if current_literal
988
+ current_literal.start_interp_brace
989
+ end
990
+ };
991
+
992
+ e_rbrace = '}' % {
993
+ current_literal = literal
994
+ if current_literal
995
+ if current_literal.end_interp_brace_and_try_closing
996
+ if version?(18, 19)
997
+ emit(:tRCURLY, '}'.freeze, p - 1, p)
998
+ else
999
+ emit(:tSTRING_DEND, '}'.freeze, p - 1, p)
1000
+ end
1001
+
1002
+ if current_literal.saved_herebody_s
1003
+ @herebody_s = current_literal.saved_herebody_s
1004
+ end
1005
+
1006
+ fhold;
1007
+ fnext *stack_pop;
1008
+ fbreak;
1009
+ end
1010
+ end
1011
+ };
1012
+
1013
+ action extend_interp_code {
1014
+ current_literal = literal
1015
+ current_literal.flush_string
1016
+ current_literal.extend_content
1017
+
1018
+ emit(:tSTRING_DBEG, '#{'.freeze)
1019
+
1020
+ if current_literal.heredoc?
1021
+ current_literal.saved_herebody_s = @herebody_s
1022
+ @herebody_s = nil
1023
+ end
1024
+
1025
+ current_literal.start_interp_brace
1026
+ fcall expr_value;
1027
+ }
1028
+
1029
+ # Actual string parsers are simply combined from the primitives defined
1030
+ # above.
1031
+
1032
+ interp_words := |*
1033
+ interp_code => extend_interp_code;
1034
+ interp_var => extend_interp_var;
1035
+ e_bs escape => extend_string_escaped;
1036
+ c_space+ => extend_string_space;
1037
+ c_eol => extend_string_eol;
1038
+ c_any => extend_string;
1039
+ *|;
1040
+
1041
+ interp_string := |*
1042
+ interp_code => extend_interp_code;
1043
+ interp_var => extend_interp_var;
1044
+ e_bs escape => extend_string_escaped;
1045
+ c_eol => extend_string_eol;
1046
+ c_any => extend_string;
1047
+ *|;
1048
+
1049
+ plain_words := |*
1050
+ e_bs c_any => extend_string_escaped;
1051
+ c_space+ => extend_string_space;
1052
+ c_eol => extend_string_eol;
1053
+ c_any => extend_string;
1054
+ *|;
1055
+
1056
+ plain_string := |*
1057
+ '\\' c_nl => extend_string_eol;
1058
+ e_bs c_any => extend_string_escaped;
1059
+ c_eol => extend_string_eol;
1060
+ c_any => extend_string;
1061
+ *|;
1062
+
1063
+ interp_backslash_delimited := |*
1064
+ interp_code => extend_interp_code;
1065
+ interp_var => extend_interp_var;
1066
+ c_eol => extend_string_eol;
1067
+ c_any => extend_string;
1068
+ *|;
1069
+
1070
+ plain_backslash_delimited := |*
1071
+ c_eol => extend_string_eol;
1072
+ c_any => extend_string;
1073
+ *|;
1074
+
1075
+ interp_backslash_delimited_words := |*
1076
+ interp_code => extend_interp_code;
1077
+ interp_var => extend_interp_var;
1078
+ c_space+ => extend_string_space;
1079
+ c_eol => extend_string_eol;
1080
+ c_any => extend_string;
1081
+ *|;
1082
+
1083
+ plain_backslash_delimited_words := |*
1084
+ c_space+ => extend_string_space;
1085
+ c_eol => extend_string_eol;
1086
+ c_any => extend_string;
1087
+ *|;
1088
+
1089
+ regexp_modifiers := |*
1090
+ [A-Za-z]+
1091
+ => {
1092
+ unknown_options = tok.scan(/[^imxouesn]/)
1093
+ if unknown_options.any?
1094
+ diagnostic :error, :regexp_options,
1095
+ { :options => unknown_options.join }
1096
+ end
1097
+
1098
+ emit(:tREGEXP_OPT)
1099
+ fnext expr_end; fbreak;
1100
+ };
1101
+
1102
+ any
1103
+ => {
1104
+ emit(:tREGEXP_OPT, tok(@ts, @te - 1), @ts, @te - 1)
1105
+ fhold; fgoto expr_end;
1106
+ };
1107
+ *|;
1108
+
1109
+ #
1110
+ # === WHITESPACE HANDLING ===
1111
+ #
1112
+
1113
+ # Various contexts in Ruby allow various kinds of whitespace
1114
+ # to be used. They are grouped to clarify the lexing machines
1115
+ # and ease collection of comments.
1116
+
1117
+ # A line of code with inline #comment at end is always equivalent
1118
+ # to a line of code ending with just a newline, so an inline
1119
+ # comment is deemed equivalent to non-newline whitespace
1120
+ # (c_space character class).
1121
+
1122
+ w_space =
1123
+ c_space+
1124
+ | '\\' e_heredoc_nl
1125
+ ;
1126
+
1127
+ w_comment =
1128
+ '#' %{ @sharp_s = p - 1 }
1129
+ # The (p == pe) condition compensates for added "\0" and
1130
+ # the way Ragel handles EOF.
1131
+ c_line* %{ emit_comment(@sharp_s, p == pe ? p - 2 : p) }
1132
+ ;
1133
+
1134
+ w_space_comment =
1135
+ w_space
1136
+ | w_comment
1137
+ ;
1138
+
1139
+ # A newline in non-literal context always interoperates with
1140
+ # here document logic and can always be escaped by a backslash,
1141
+ # still interoperating with here document logic in the same way,
1142
+ # yet being invisible to anything else.
1143
+ #
1144
+ # To demonstrate:
1145
+ #
1146
+ # foo = <<FOO \
1147
+ # bar
1148
+ # FOO
1149
+ # + 2
1150
+ #
1151
+ # is equivalent to `foo = "bar\n" + 2`.
1152
+
1153
+ w_newline =
1154
+ e_heredoc_nl;
1155
+
1156
+ w_any =
1157
+ w_space
1158
+ | w_comment
1159
+ | w_newline
1160
+ ;
1161
+
1162
+
1163
+ #
1164
+ # === EXPRESSION PARSING ===
1165
+ #
1166
+
1167
+ # These rules implement a form of manually defined lookahead.
1168
+ # The default longest-match scanning does not work here due
1169
+ # to sheer ambiguity.
1170
+
1171
+ ambiguous_fid_suffix = # actual parsed
1172
+ [?!] %{ tm = p } | # a? a?
1173
+ [?!]'=' %{ tm = p - 2 } # a!=b a != b
1174
+ ;
1175
+
1176
+ ambiguous_ident_suffix = # actual parsed
1177
+ ambiguous_fid_suffix |
1178
+ '=' %{ tm = p } | # a= a=
1179
+ '==' %{ tm = p - 2 } | # a==b a == b
1180
+ '=~' %{ tm = p - 2 } | # a=~b a =~ b
1181
+ '=>' %{ tm = p - 2 } | # a=>b a => b
1182
+ '===' %{ tm = p - 3 } # a===b a === b
1183
+ ;
1184
+
1185
+ ambiguous_symbol_suffix = # actual parsed
1186
+ ambiguous_ident_suffix |
1187
+ '==>' %{ tm = p - 2 } # :a==>b :a= => b
1188
+ ;
1189
+
1190
+ # Ambiguous with 1.9 hash labels.
1191
+ ambiguous_const_suffix = # actual parsed
1192
+ '::' %{ tm = p - 2 } # A::B A :: B
1193
+ ;
1194
+
1195
+ # Resolving kDO/kDO_COND/kDO_BLOCK ambiguity requires embedding
1196
+ # @cond/@cmdarg-related code to e_lbrack, e_lparen and e_lbrace.
1197
+
1198
+ e_lbrack = '[' % {
1199
+ @cond.push(false); @cmdarg.push(false)
1200
+ };
1201
+
1202
+ # Ruby 1.9 lambdas require parentheses counting in order to
1203
+ # emit correct opening kDO/tLBRACE.
1204
+
1205
+ e_lparen = '(' % {
1206
+ @cond.push(false); @cmdarg.push(false)
1207
+
1208
+ @paren_nest += 1
1209
+ };
1210
+
1211
+ e_rparen = ')' % {
1212
+ @paren_nest -= 1
1213
+ };
1214
+
1215
+ # Ruby is context-sensitive wrt/ local identifiers.
1216
+ action local_ident {
1217
+ emit(:tIDENTIFIER)
1218
+
1219
+ if !@static_env.nil? && @static_env.declared?(tok)
1220
+ fnext expr_endfn; fbreak;
1221
+ else
1222
+ fnext *arg_or_cmdarg; fbreak;
1223
+ end
1224
+ }
1225
+
1226
+ # Variable lexing code is accessed from both expressions and
1227
+ # string interpolation related code.
1228
+ #
1229
+ expr_variable := |*
1230
+ global_var
1231
+ => {
1232
+ if tok =~ /^\$([1-9][0-9]*)$/
1233
+ emit(:tNTH_REF, tok(@ts + 1).to_i)
1234
+ elsif tok =~ /^\$([&`'+])$/
1235
+ emit(:tBACK_REF)
1236
+ else
1237
+ emit(:tGVAR)
1238
+ end
1239
+
1240
+ fnext *stack_pop; fbreak;
1241
+ };
1242
+
1243
+ class_var_v
1244
+ => {
1245
+ if tok =~ /^@@[0-9]/
1246
+ diagnostic :error, :cvar_name, { :name => tok }
1247
+ end
1248
+
1249
+ emit(:tCVAR)
1250
+ fnext *stack_pop; fbreak;
1251
+ };
1252
+
1253
+ instance_var_v
1254
+ => {
1255
+ if tok =~ /^@[0-9]/
1256
+ diagnostic :error, :ivar_name, { :name => tok }
1257
+ end
1258
+
1259
+ emit(:tIVAR)
1260
+ fnext *stack_pop; fbreak;
1261
+ };
1262
+ *|;
1263
+
1264
+ # Literal function name in definition (e.g. `def class`).
1265
+ # Keywords are returned as their respective tokens; this is used
1266
+ # to support singleton def `def self.foo`. Global variables are
1267
+ # returned as `tGVAR`; this is used in global variable alias
1268
+ # statements `alias $a $b`. Symbols are returned verbatim; this
1269
+ # is used in `alias :a :"b#{foo}"` and `undef :a`.
1270
+ #
1271
+ # Transitions to `expr_endfn` afterwards.
1272
+ #
1273
+ expr_fname := |*
1274
+ keyword
1275
+ => { emit_table(KEYWORDS_BEGIN);
1276
+ fnext expr_endfn; fbreak; };
1277
+
1278
+ constant
1279
+ => { emit(:tCONSTANT)
1280
+ fnext expr_endfn; fbreak; };
1281
+
1282
+ bareword [?=!]?
1283
+ => { emit(:tIDENTIFIER)
1284
+ fnext expr_endfn; fbreak; };
1285
+
1286
+ global_var
1287
+ => { p = @ts - 1
1288
+ fnext expr_end; fcall expr_variable; };
1289
+
1290
+ # If the handling was to be delegated to expr_end,
1291
+ # these cases would transition to something else than
1292
+ # expr_endfn, which is incorrect.
1293
+ operator_fname |
1294
+ operator_arithmetic |
1295
+ operator_rest
1296
+ => { emit_table(PUNCTUATION)
1297
+ fnext expr_endfn; fbreak; };
1298
+
1299
+ '::'
1300
+ => { fhold; fhold; fgoto expr_end; };
1301
+
1302
+ ':'
1303
+ => { fhold; fgoto expr_beg; };
1304
+
1305
+ '%s' c_any
1306
+ => {
1307
+ if version?(23)
1308
+ type, delimiter = tok[0..-2], tok[-1].chr
1309
+ fgoto *push_literal(type, delimiter, @ts);
1310
+ else
1311
+ p = @ts - 1
1312
+ fgoto expr_end;
1313
+ end
1314
+ };
1315
+
1316
+ w_any;
1317
+
1318
+ c_any
1319
+ => { fhold; fgoto expr_end; };
1320
+
1321
+ c_eof => do_eof;
1322
+ *|;
1323
+
1324
+ # After literal function name in definition. Behaves like `expr_end`,
1325
+ # but allows a tLABEL.
1326
+ #
1327
+ # Transitions to `expr_end` afterwards.
1328
+ #
1329
+ expr_endfn := |*
1330
+ label ( any - ':' )
1331
+ => { emit(:tLABEL, tok(@ts, @te - 2), @ts, @te - 1)
1332
+ fhold; fnext expr_labelarg; fbreak; };
1333
+
1334
+ w_space_comment;
1335
+
1336
+ c_any
1337
+ => { fhold; fgoto expr_end; };
1338
+
1339
+ c_eof => do_eof;
1340
+ *|;
1341
+
1342
+ # Literal function name in method call (e.g. `a.class`).
1343
+ #
1344
+ # Transitions to `expr_arg` afterwards.
1345
+ #
1346
+ expr_dot := |*
1347
+ constant
1348
+ => { emit(:tCONSTANT)
1349
+ fnext *arg_or_cmdarg; fbreak; };
1350
+
1351
+ call_or_var
1352
+ => { emit(:tIDENTIFIER)
1353
+ fnext *arg_or_cmdarg; fbreak; };
1354
+
1355
+ bareword ambiguous_fid_suffix
1356
+ => { emit(:tFID, tok(@ts, tm), @ts, tm)
1357
+ fnext *arg_or_cmdarg; p = tm - 1; fbreak; };
1358
+
1359
+ # See the comment in `expr_fname`.
1360
+ operator_fname |
1361
+ operator_arithmetic |
1362
+ operator_rest
1363
+ => { emit_table(PUNCTUATION)
1364
+ fnext expr_arg; fbreak; };
1365
+
1366
+ w_any;
1367
+
1368
+ c_any
1369
+ => { fhold; fgoto expr_end; };
1370
+
1371
+ c_eof => do_eof;
1372
+ *|;
1373
+
1374
+ # The previous token emitted was a `tIDENTIFIER` or `tFID`; no space
1375
+ # is consumed; the current expression is a command or method call.
1376
+ #
1377
+ expr_arg := |*
1378
+ #
1379
+ # COMMAND MODE SPECIFIC TOKENS
1380
+ #
1381
+
1382
+ # cmd (1 + 2)
1383
+ # See below the rationale about expr_endarg.
1384
+ w_space+ e_lparen
1385
+ => {
1386
+ if version?(18)
1387
+ emit(:tLPAREN2, '('.freeze, @te - 1, @te)
1388
+ fnext expr_value; fbreak;
1389
+ else
1390
+ emit(:tLPAREN_ARG, '('.freeze, @te - 1, @te)
1391
+ fnext expr_beg; fbreak;
1392
+ end
1393
+ };
1394
+
1395
+ # meth(1 + 2)
1396
+ # Regular method call.
1397
+ e_lparen
1398
+ => { emit(:tLPAREN2, '('.freeze)
1399
+ fnext expr_beg; fbreak; };
1400
+
1401
+ # meth [...]
1402
+ # Array argument. Compare with indexing `meth[...]`.
1403
+ w_space+ e_lbrack
1404
+ => { emit(:tLBRACK, '['.freeze, @te - 1, @te)
1405
+ fnext expr_beg; fbreak; };
1406
+
1407
+ # cmd {}
1408
+ # Command: method call without parentheses.
1409
+ w_space* e_lbrace
1410
+ => {
1411
+ if @lambda_stack.last == @paren_nest
1412
+ p = @ts - 1
1413
+ fgoto expr_end;
1414
+ else
1415
+ emit(:tLCURLY, '{'.freeze, @te - 1, @te)
1416
+ fnext expr_value; fbreak;
1417
+ end
1418
+ };
1419
+
1420
+ #
1421
+ # AMBIGUOUS TOKENS RESOLVED VIA EXPR_BEG
1422
+ #
1423
+
1424
+ # a??
1425
+ # Ternary operator
1426
+ '?' c_space_nl
1427
+ => {
1428
+ # Unlike expr_beg as invoked in the next rule, do not warn
1429
+ p = @ts - 1
1430
+ fgoto expr_end;
1431
+ };
1432
+
1433
+ # a ?b, a? ?
1434
+ # Character literal or ternary operator
1435
+ w_space* '?'
1436
+ => { fhold; fgoto expr_beg; };
1437
+
1438
+ # a %{1}, a %[1] (but not "a %=1=" or "a % foo")
1439
+ # a /foo/ (but not "a / foo" or "a /=foo")
1440
+ # a <<HEREDOC
1441
+ w_space+ %{ tm = p }
1442
+ ( [%/] ( c_any - c_space_nl - '=' ) # /
1443
+ | '<<'
1444
+ )
1445
+ => {
1446
+ if tok(tm, tm + 1) == '/'.freeze
1447
+ # Ambiguous regexp literal.
1448
+ diagnostic :warning, :ambiguous_literal, nil, range(tm, tm + 1)
1449
+ end
1450
+
1451
+ p = tm - 1
1452
+ fgoto expr_beg;
1453
+ };
1454
+
1455
+ # x *1
1456
+ # Ambiguous splat, kwsplat or block-pass.
1457
+ w_space+ %{ tm = p } ( '+' | '-' | '*' | '&' | '**' )
1458
+ => {
1459
+ diagnostic :warning, :ambiguous_prefix, { :prefix => tok(tm, @te) },
1460
+ range(tm, @te)
1461
+
1462
+ p = tm - 1
1463
+ fgoto expr_beg;
1464
+ };
1465
+
1466
+ # x ::Foo
1467
+ # Ambiguous toplevel constant access.
1468
+ w_space+ '::'
1469
+ => { fhold; fhold; fgoto expr_beg; };
1470
+
1471
+ # x:b
1472
+ # Symbol.
1473
+ w_space* ':'
1474
+ => { fhold; fgoto expr_beg; };
1475
+
1476
+ w_space+ label
1477
+ => { p = @ts - 1; fgoto expr_beg; };
1478
+
1479
+ #
1480
+ # AMBIGUOUS TOKENS RESOLVED VIA EXPR_END
1481
+ #
1482
+
1483
+ # a ? b
1484
+ # Ternary operator.
1485
+ w_space+ %{ tm = p } '?' c_space_nl
1486
+ => { p = tm - 1; fgoto expr_end; };
1487
+
1488
+ # x + 1: Binary operator or operator-assignment.
1489
+ w_space* operator_arithmetic
1490
+ ( '=' | c_space_nl )? |
1491
+ # x rescue y: Modifier keyword.
1492
+ w_space* keyword_modifier |
1493
+ # a &. b: Safe navigation operator.
1494
+ w_space* '&.' |
1495
+ # Miscellanea.
1496
+ w_space* punctuation_end
1497
+ => {
1498
+ p = @ts - 1
1499
+ fgoto expr_end;
1500
+ };
1501
+
1502
+ w_space;
1503
+
1504
+ w_comment
1505
+ => { fgoto expr_end; };
1506
+
1507
+ w_newline
1508
+ => { fhold; fgoto expr_end; };
1509
+
1510
+ c_any
1511
+ => { fhold; fgoto expr_beg; };
1512
+
1513
+ c_eof => do_eof;
1514
+ *|;
1515
+
1516
+ # The previous token was an identifier which was seen while in the
1517
+ # command mode (that is, the state at the beginning of #advance was
1518
+ # expr_value). This state is very similar to expr_arg, but disambiguates
1519
+ # two very rare and specific condition:
1520
+ # * In 1.8 mode, "foo (lambda do end)".
1521
+ # * In 1.9+ mode, "f x: -> do foo do end end".
1522
+ expr_cmdarg := |*
1523
+ w_space+ e_lparen
1524
+ => {
1525
+ emit(:tLPAREN_ARG, '('.freeze, @te - 1, @te)
1526
+ if version?(18)
1527
+ fnext expr_value; fbreak;
1528
+ else
1529
+ fnext expr_beg; fbreak;
1530
+ end
1531
+ };
1532
+
1533
+ w_space* 'do'
1534
+ => {
1535
+ if @cond.active?
1536
+ emit(:kDO_COND, 'do'.freeze, @te - 2, @te)
1537
+ else
1538
+ emit(:kDO, 'do'.freeze, @te - 2, @te)
1539
+ end
1540
+ fnext expr_value; fbreak;
1541
+ };
1542
+
1543
+ c_any |
1544
+ # Disambiguate with the `do' rule above.
1545
+ w_space* bareword |
1546
+ w_space* label
1547
+ => { p = @ts - 1
1548
+ fgoto expr_arg; };
1549
+
1550
+ c_eof => do_eof;
1551
+ *|;
1552
+
1553
+ # The rationale for this state is pretty complex. Normally, if an argument
1554
+ # is passed to a command and then there is a block (tLCURLY...tRCURLY),
1555
+ # the block is attached to the innermost argument (`f` in `m f {}`), or it
1556
+ # is a parse error (`m 1 {}`). But there is a special case for passing a single
1557
+ # primary expression grouped with parentheses: if you write `m (1) {}` or
1558
+ # (2.0 only) `m () {}`, then the block is attached to `m`.
1559
+ #
1560
+ # Thus, we recognize the opening `(` of a command (remember, a command is
1561
+ # a method call without parens) as a tLPAREN_ARG; then, in parser, we recognize
1562
+ # `tLPAREN_ARG expr rparen` as a `primary_expr` and before rparen, set the
1563
+ # lexer's state to `expr_endarg`, which makes it emit the possibly following
1564
+ # `{` as `tLBRACE_ARG`.
1565
+ #
1566
+ # The default post-`expr_endarg` state is `expr_end`, so this state also handles
1567
+ # `do` (as `kDO_BLOCK` in `expr_beg`).
1568
+ expr_endarg := |*
1569
+ e_lbrace
1570
+ => {
1571
+ if @lambda_stack.last == @paren_nest
1572
+ @lambda_stack.pop
1573
+ emit(:tLAMBEG, '{'.freeze)
1574
+ else
1575
+ emit(:tLBRACE_ARG, '{'.freeze)
1576
+ end
1577
+ fnext expr_value;
1578
+ };
1579
+
1580
+ 'do'
1581
+ => { emit_do(true)
1582
+ fnext expr_value; fbreak; };
1583
+
1584
+ w_space_comment;
1585
+
1586
+ c_any
1587
+ => { fhold; fgoto expr_end; };
1588
+
1589
+ c_eof => do_eof;
1590
+ *|;
1591
+
1592
+ # The rationale for this state is that several keywords accept value
1593
+ # (i.e. should transition to `expr_beg`), do not accept it like a command
1594
+ # (i.e. not an `expr_arg`), and must behave like a statement, that is,
1595
+ # accept a modifier if/while/etc.
1596
+ #
1597
+ expr_mid := |*
1598
+ keyword_modifier
1599
+ => { emit_table(KEYWORDS)
1600
+ fnext expr_beg; fbreak; };
1601
+
1602
+ bareword
1603
+ => { p = @ts - 1; fgoto expr_beg; };
1604
+
1605
+ w_space_comment;
1606
+
1607
+ w_newline
1608
+ => { fhold; fgoto expr_end; };
1609
+
1610
+ c_any
1611
+ => { fhold; fgoto expr_beg; };
1612
+
1613
+ c_eof => do_eof;
1614
+ *|;
1615
+
1616
+ # Beginning of an expression.
1617
+ #
1618
+ # Don't fallthrough to this state from `c_any`; make sure to handle
1619
+ # `c_space* c_nl` and let `expr_end` handle the newline.
1620
+ # Otherwise code like `f\ndef x` gets glued together and the parser
1621
+ # explodes.
1622
+ #
1623
+ expr_beg := |*
1624
+ # +5, -5, - 5
1625
+ [+\-] w_any* [0-9]
1626
+ => {
1627
+ emit(:tUNARY_NUM, tok(@ts, @ts + 1), @ts, @ts + 1)
1628
+ fhold; fnext expr_end; fbreak;
1629
+ };
1630
+
1631
+ # splat *a
1632
+ '*'
1633
+ => { emit(:tSTAR, '*'.freeze)
1634
+ fbreak; };
1635
+
1636
+ #
1637
+ # STRING AND REGEXP LITERALS
1638
+ #
1639
+
1640
+ # /regexp/oui
1641
+ # /=/ (disambiguation with /=)
1642
+ '/' c_any
1643
+ => {
1644
+ type = delimiter = tok[0].chr
1645
+ fhold; fgoto *push_literal(type, delimiter, @ts);
1646
+ };
1647
+
1648
+ # %<string>
1649
+ '%' ( any - [A-Za-z] )
1650
+ => {
1651
+ type, delimiter = @source_buffer.slice(@ts).chr, tok[-1].chr
1652
+ fgoto *push_literal(type, delimiter, @ts);
1653
+ };
1654
+
1655
+ # %w(we are the people)
1656
+ '%' [A-Za-z]+ c_any
1657
+ => {
1658
+ type, delimiter = tok[0..-2], tok[-1].chr
1659
+ fgoto *push_literal(type, delimiter, @ts);
1660
+ };
1661
+
1662
+ '%' c_eof
1663
+ => {
1664
+ diagnostic :fatal, :string_eof, nil, range(@ts, @ts + 1)
1665
+ };
1666
+
1667
+ # Heredoc start.
1668
+ # <<END | <<'END' | <<"END" | <<`END` |
1669
+ # <<-END | <<-'END' | <<-"END" | <<-`END` |
1670
+ # <<~END | <<~'END' | <<~"END" | <<~`END`
1671
+ '<<' [~\-]?
1672
+ ( '"' ( c_line - '"' )* '"'
1673
+ | "'" ( c_line - "'" )* "'"
1674
+ | "`" ( c_line - "`" )* "`"
1675
+ | bareword ) % { heredoc_e = p }
1676
+ c_line* c_nl % { new_herebody_s = p }
1677
+ => {
1678
+ tok(@ts, heredoc_e) =~ /^<<(-?)(~?)(["'`]?)(.*)\3$/
1679
+
1680
+ indent = !$1.empty? || !$2.empty?
1681
+ dedent_body = !$2.empty?
1682
+ type = $3.empty? ? '<<"'.freeze : ('<<'.freeze + $3)
1683
+ delimiter = $4
1684
+
1685
+ if dedent_body && version?(18, 19, 20, 21, 22)
1686
+ emit(:tLSHFT, '<<'.freeze, @ts, @ts + 2)
1687
+ p = @ts + 1
1688
+ fnext expr_beg; fbreak;
1689
+ else
1690
+ fnext *push_literal(type, delimiter, @ts, heredoc_e, indent, dedent_body);
1691
+
1692
+ @herebody_s ||= new_herebody_s
1693
+ p = @herebody_s - 1
1694
+ end
1695
+ };
1696
+
1697
+ #
1698
+ # SYMBOL LITERALS
1699
+ #
1700
+
1701
+ # :"bar", :'baz'
1702
+ ':' ['"] # '
1703
+ => {
1704
+ type, delimiter = tok, tok[-1].chr
1705
+ fgoto *push_literal(type, delimiter, @ts);
1706
+ };
1707
+
1708
+ ':' bareword ambiguous_symbol_suffix
1709
+ => {
1710
+ emit(:tSYMBOL, tok(@ts + 1, tm), @ts, tm)
1711
+ p = tm - 1
1712
+ fnext expr_end; fbreak;
1713
+ };
1714
+
1715
+ ':' ( bareword | global_var | class_var | instance_var |
1716
+ operator_fname | operator_arithmetic | operator_rest )
1717
+ => {
1718
+ emit(:tSYMBOL, tok(@ts + 1), @ts)
1719
+ fnext expr_end; fbreak;
1720
+ };
1721
+
1722
+ #
1723
+ # AMBIGUOUS TERNARY OPERATOR
1724
+ #
1725
+
1726
+ # Character constant, like ?a, ?\n, ?\u1000, and so on
1727
+ # Don't accept \u escape with multiple codepoints, like \u{1 2 3}
1728
+ '?' ( e_bs ( escape - ( '\u{' (xdigit+ [ \t]+)+ xdigit+ '}' ))
1729
+ | (c_any - c_space_nl - e_bs) % { @escape = nil }
1730
+ )
1731
+ => {
1732
+ value = @escape || tok(@ts + 1)
1733
+
1734
+ if version?(18)
1735
+ if defined?(Encoding)
1736
+ emit(:tINTEGER, value.dup.force_encoding(Encoding::BINARY)[0].ord)
1737
+ else
1738
+ emit(:tINTEGER, value[0].ord)
1739
+ end
1740
+ else
1741
+ emit(:tCHARACTER, value)
1742
+ end
1743
+
1744
+ fnext expr_end; fbreak;
1745
+ };
1746
+
1747
+ '?' c_space_nl
1748
+ => {
1749
+ escape = { " " => '\s', "\r" => '\r', "\n" => '\n', "\t" => '\t',
1750
+ "\v" => '\v', "\f" => '\f' }[@source_buffer.slice(@ts + 1)]
1751
+ diagnostic :warning, :invalid_escape_use, { :escape => escape }, range
1752
+
1753
+ p = @ts - 1
1754
+ fgoto expr_end;
1755
+ };
1756
+
1757
+ '?' c_eof
1758
+ => {
1759
+ diagnostic :fatal, :incomplete_escape, nil, range(@ts, @ts + 1)
1760
+ };
1761
+
1762
+ # f ?aa : b: Disambiguate with a character literal.
1763
+ '?' [A-Za-z_] bareword
1764
+ => {
1765
+ p = @ts - 1
1766
+ fgoto expr_end;
1767
+ };
1768
+
1769
+ #
1770
+ # KEYWORDS AND PUNCTUATION
1771
+ #
1772
+
1773
+ # a({b=>c})
1774
+ e_lbrace
1775
+ => {
1776
+ if @lambda_stack.last == @paren_nest
1777
+ @lambda_stack.pop
1778
+ emit(:tLAMBEG, '{'.freeze)
1779
+ else
1780
+ emit(:tLBRACE, '{'.freeze)
1781
+ end
1782
+ fbreak;
1783
+ };
1784
+
1785
+ # a([1, 2])
1786
+ e_lbrack
1787
+ => { emit(:tLBRACK, '['.freeze)
1788
+ fbreak; };
1789
+
1790
+ # a()
1791
+ e_lparen
1792
+ => { emit(:tLPAREN, '('.freeze)
1793
+ fbreak; };
1794
+
1795
+ # a(+b)
1796
+ punctuation_begin
1797
+ => { emit_table(PUNCTUATION_BEGIN)
1798
+ fbreak; };
1799
+
1800
+ # rescue Exception => e: Block rescue.
1801
+ # Special because it should transition to expr_mid.
1802
+ 'rescue' %{ tm = p } '=>'?
1803
+ => { emit(:kRESCUE, 'rescue'.freeze, @ts, tm)
1804
+ p = tm - 1
1805
+ fnext expr_mid; fbreak; };
1806
+
1807
+ # if a: Statement if.
1808
+ keyword_modifier
1809
+ => { emit_table(KEYWORDS_BEGIN)
1810
+ fnext expr_value; fbreak; };
1811
+
1812
+ #
1813
+ # RUBY 1.9 HASH LABELS
1814
+ #
1815
+
1816
+ label ( any - ':' )
1817
+ => {
1818
+ fhold;
1819
+
1820
+ if version?(18)
1821
+ ident = tok(@ts, @te - 2)
1822
+
1823
+ emit((@source_buffer.slice(@ts) =~ /[A-Z]/) ? :tCONSTANT : :tIDENTIFIER,
1824
+ ident, @ts, @te - 2)
1825
+ fhold; # continue as a symbol
1826
+
1827
+ if !@static_env.nil? && @static_env.declared?(ident)
1828
+ fnext expr_end;
1829
+ else
1830
+ fnext *arg_or_cmdarg;
1831
+ end
1832
+ else
1833
+ emit(:tLABEL, tok(@ts, @te - 2), @ts, @te - 1)
1834
+ fnext expr_labelarg;
1835
+ end
1836
+
1837
+ fbreak;
1838
+ };
1839
+
1840
+ #
1841
+ # CONTEXT-DEPENDENT VARIABLE LOOKUP OR COMMAND INVOCATION
1842
+ #
1843
+
1844
+ # foo= bar: Disambiguate with bareword rule below.
1845
+ bareword ambiguous_ident_suffix |
1846
+ # def foo: Disambiguate with bareword rule below.
1847
+ keyword
1848
+ => { p = @ts - 1
1849
+ fgoto expr_end; };
1850
+
1851
+ # a = 42; a [42]: Indexing.
1852
+ # def a; end; a [42]: Array argument.
1853
+ call_or_var
1854
+ => local_ident;
1855
+
1856
+ #
1857
+ # WHITESPACE
1858
+ #
1859
+
1860
+ w_any;
1861
+
1862
+ e_heredoc_nl '=begin' ( c_space | c_nl_zlen )
1863
+ => { p = @ts - 1
1864
+ fgoto line_begin; };
1865
+
1866
+ #
1867
+ # DEFAULT TRANSITION
1868
+ #
1869
+
1870
+ # The following rules match most binary and all unary operators.
1871
+ # Rules for binary operators provide better error reporting.
1872
+ operator_arithmetic '=' |
1873
+ operator_rest |
1874
+ punctuation_end |
1875
+ c_any
1876
+ => { p = @ts - 1; fgoto expr_end; };
1877
+
1878
+ c_eof => do_eof;
1879
+ *|;
1880
+
1881
+ # Special newline handling for "def a b:"
1882
+ #
1883
+ expr_labelarg := |*
1884
+ w_space_comment;
1885
+
1886
+ w_newline
1887
+ => {
1888
+ if @in_kwarg
1889
+ fhold; fgoto expr_end;
1890
+ else
1891
+ fgoto line_begin;
1892
+ end
1893
+ };
1894
+
1895
+ c_any
1896
+ => { fhold; fgoto expr_beg; };
1897
+
1898
+ c_eof => do_eof;
1899
+ *|;
1900
+
1901
+ # Like expr_beg, but no 1.9 label or 2.2 quoted label possible.
1902
+ #
1903
+ expr_value := |*
1904
+ # a:b: a(:b), a::B, A::B
1905
+ label (any - ':')
1906
+ => { p = @ts - 1
1907
+ fgoto expr_end; };
1908
+
1909
+ # "bar", 'baz'
1910
+ ['"] # '
1911
+ => {
1912
+ fgoto *push_literal(tok, tok, @ts);
1913
+ };
1914
+
1915
+ w_space_comment;
1916
+
1917
+ w_newline
1918
+ => { fgoto line_begin; };
1919
+
1920
+ c_any
1921
+ => { fhold; fgoto expr_beg; };
1922
+
1923
+ c_eof => do_eof;
1924
+ *|;
1925
+
1926
+ expr_end := |*
1927
+ #
1928
+ # STABBY LAMBDA
1929
+ #
1930
+
1931
+ '->'
1932
+ => {
1933
+ emit(:tLAMBDA, '->'.freeze, @ts, @ts + 2)
1934
+
1935
+ @lambda_stack.push @paren_nest
1936
+ fnext expr_endfn; fbreak;
1937
+ };
1938
+
1939
+ e_lbrace | 'do'
1940
+ => {
1941
+ if @lambda_stack.last == @paren_nest
1942
+ @lambda_stack.pop
1943
+
1944
+ if tok == '{'.freeze
1945
+ emit(:tLAMBEG, '{'.freeze)
1946
+ else # 'do'
1947
+ emit(:kDO_LAMBDA, 'do'.freeze)
1948
+ end
1949
+ else
1950
+ if tok == '{'.freeze
1951
+ emit(:tLCURLY, '{'.freeze)
1952
+ else # 'do'
1953
+ emit_do
1954
+ end
1955
+ end
1956
+
1957
+ fnext expr_value; fbreak;
1958
+ };
1959
+
1960
+ #
1961
+ # KEYWORDS
1962
+ #
1963
+
1964
+ keyword_with_fname
1965
+ => { emit_table(KEYWORDS)
1966
+ fnext expr_fname; fbreak; };
1967
+
1968
+ 'class' w_any* '<<'
1969
+ => { emit(:kCLASS, 'class'.freeze, @ts, @ts + 5)
1970
+ emit(:tLSHFT, '<<'.freeze, @te - 2, @te)
1971
+ fnext expr_value; fbreak; };
1972
+
1973
+ # a if b:c: Syntax error.
1974
+ keyword_modifier
1975
+ => { emit_table(KEYWORDS)
1976
+ fnext expr_beg; fbreak; };
1977
+
1978
+ # elsif b:c: elsif b(:c)
1979
+ keyword_with_value
1980
+ => { emit_table(KEYWORDS)
1981
+ fnext expr_value; fbreak; };
1982
+
1983
+ keyword_with_mid
1984
+ => { emit_table(KEYWORDS)
1985
+ fnext expr_mid; fbreak; };
1986
+
1987
+ keyword_with_arg
1988
+ => {
1989
+ emit_table(KEYWORDS)
1990
+
1991
+ if version?(18) && tok == 'not'.freeze
1992
+ fnext expr_beg; fbreak;
1993
+ else
1994
+ fnext expr_arg; fbreak;
1995
+ end
1996
+ };
1997
+
1998
+ '__ENCODING__'
1999
+ => {
2000
+ if version?(18)
2001
+ emit(:tIDENTIFIER)
2002
+
2003
+ unless !@static_env.nil? && @static_env.declared?(tok)
2004
+ fnext *arg_or_cmdarg;
2005
+ end
2006
+ else
2007
+ emit(:k__ENCODING__, '__ENCODING__'.freeze)
2008
+ end
2009
+ fbreak;
2010
+ };
2011
+
2012
+ keyword_with_end
2013
+ => { emit_table(KEYWORDS)
2014
+ fbreak; };
2015
+
2016
+ #
2017
+ # NUMERIC LITERALS
2018
+ #
2019
+
2020
+ ( '0' [Xx] %{ @num_base = 16; @num_digits_s = p } int_hex
2021
+ | '0' [Dd] %{ @num_base = 10; @num_digits_s = p } int_dec
2022
+ | '0' [Oo] %{ @num_base = 8; @num_digits_s = p } int_dec
2023
+ | '0' [Bb] %{ @num_base = 2; @num_digits_s = p } int_bin
2024
+ | [1-9] digit* '_'? %{ @num_base = 10; @num_digits_s = @ts } int_dec
2025
+ | '0' digit* '_'? %{ @num_base = 8; @num_digits_s = @ts } int_dec
2026
+ ) %{ @num_suffix_s = p } int_suffix
2027
+ => {
2028
+ digits = tok(@num_digits_s, @num_suffix_s)
2029
+
2030
+ if digits.end_with? '_'.freeze
2031
+ diagnostic :error, :trailing_in_number, { :character => '_'.freeze },
2032
+ range(@te - 1, @te)
2033
+ elsif digits.empty? && @num_base == 8 && version?(18)
2034
+ # 1.8 did not raise an error on 0o.
2035
+ digits = '0'.freeze
2036
+ elsif digits.empty?
2037
+ diagnostic :error, :empty_numeric
2038
+ elsif @num_base == 8 && (invalid_idx = digits.index(/[89]/))
2039
+ invalid_s = @num_digits_s + invalid_idx
2040
+ diagnostic :error, :invalid_octal, nil,
2041
+ range(invalid_s, invalid_s + 1)
2042
+ end
2043
+
2044
+ if version?(18, 19, 20)
2045
+ emit(:tINTEGER, digits.to_i(@num_base), @ts, @num_suffix_s)
2046
+ p = @num_suffix_s - 1
2047
+ else
2048
+ @num_xfrm.call(digits.to_i(@num_base))
2049
+ end
2050
+ fbreak;
2051
+ };
2052
+
2053
+ flo_frac flo_pow?
2054
+ => {
2055
+ diagnostic :error, :no_dot_digit_literal
2056
+ };
2057
+
2058
+ flo_int [eE]
2059
+ => {
2060
+ if version?(18, 19, 20)
2061
+ diagnostic :error,
2062
+ :trailing_in_number, { :character => tok(@te - 1, @te) },
2063
+ range(@te - 1, @te)
2064
+ else
2065
+ emit(:tINTEGER, tok(@ts, @te - 1).to_i, @ts, @te - 1)
2066
+ fhold; fbreak;
2067
+ end
2068
+ };
2069
+
2070
+ flo_int flo_frac [eE]
2071
+ => {
2072
+ if version?(18, 19, 20)
2073
+ diagnostic :error,
2074
+ :trailing_in_number, { :character => tok(@te - 1, @te) },
2075
+ range(@te - 1, @te)
2076
+ else
2077
+ emit(:tFLOAT, tok(@ts, @te - 1).to_f, @ts, @te - 1)
2078
+ fhold; fbreak;
2079
+ end
2080
+ };
2081
+
2082
+ flo_int
2083
+ ( flo_frac? flo_pow %{ @num_suffix_s = p } flo_pow_suffix
2084
+ | flo_frac %{ @num_suffix_s = p } flo_suffix
2085
+ )
2086
+ => {
2087
+ digits = tok(@ts, @num_suffix_s)
2088
+
2089
+ if version?(18, 19, 20)
2090
+ emit(:tFLOAT, Float(digits), @ts, @num_suffix_s)
2091
+ p = @num_suffix_s - 1
2092
+ else
2093
+ @num_xfrm.call(digits)
2094
+ end
2095
+ fbreak;
2096
+ };
2097
+
2098
+ #
2099
+ # STRING AND XSTRING LITERALS
2100
+ #
2101
+
2102
+ # `echo foo`, "bar", 'baz'
2103
+ '`' | ['"] # '
2104
+ => {
2105
+ type, delimiter = tok, tok[-1].chr
2106
+ fgoto *push_literal(type, delimiter, @ts, nil, false, false, true);
2107
+ };
2108
+
2109
+ #
2110
+ # CONSTANTS AND VARIABLES
2111
+ #
2112
+
2113
+ constant
2114
+ => { emit(:tCONSTANT)
2115
+ fnext *arg_or_cmdarg; fbreak; };
2116
+
2117
+ constant ambiguous_const_suffix
2118
+ => { emit(:tCONSTANT, tok(@ts, tm), @ts, tm)
2119
+ p = tm - 1; fbreak; };
2120
+
2121
+ global_var | class_var_v | instance_var_v
2122
+ => { p = @ts - 1; fcall expr_variable; };
2123
+
2124
+ #
2125
+ # METHOD CALLS
2126
+ #
2127
+
2128
+ '.' | '&.' | '::'
2129
+ => { emit_table(PUNCTUATION)
2130
+ fnext expr_dot; fbreak; };
2131
+
2132
+ call_or_var
2133
+ => local_ident;
2134
+
2135
+ bareword ambiguous_fid_suffix
2136
+ => {
2137
+ if tm == @te
2138
+ # Suffix was consumed, e.g. foo!
2139
+ emit(:tFID)
2140
+ else
2141
+ # Suffix was not consumed, e.g. foo!=
2142
+ emit(:tIDENTIFIER, tok(@ts, tm), @ts, tm)
2143
+ p = tm - 1
2144
+ end
2145
+ fnext expr_arg; fbreak;
2146
+ };
2147
+
2148
+ #
2149
+ # OPERATORS
2150
+ #
2151
+
2152
+ ( e_lparen
2153
+ | operator_arithmetic
2154
+ | operator_rest
2155
+ )
2156
+ => { emit_table(PUNCTUATION)
2157
+ fnext expr_beg; fbreak; };
2158
+
2159
+ e_rbrace | e_rparen | ']'
2160
+ => {
2161
+ emit_table(PUNCTUATION)
2162
+ @cond.lexpop; @cmdarg.lexpop
2163
+
2164
+ if RBRACE_OR_RBRACK.include?(tok)
2165
+ fnext expr_endarg;
2166
+ else # )
2167
+ # fnext expr_endfn; ?
2168
+ end
2169
+
2170
+ fbreak;
2171
+ };
2172
+
2173
+ operator_arithmetic '='
2174
+ => { emit(:tOP_ASGN, tok(@ts, @te - 1))
2175
+ fnext expr_beg; fbreak; };
2176
+
2177
+ '?'
2178
+ => { emit(:tEH, '?'.freeze)
2179
+ fnext expr_value; fbreak; };
2180
+
2181
+ e_lbrack
2182
+ => { emit(:tLBRACK2, '['.freeze)
2183
+ fnext expr_beg; fbreak; };
2184
+
2185
+ punctuation_end
2186
+ => { emit_table(PUNCTUATION)
2187
+ fnext expr_beg; fbreak; };
2188
+
2189
+ #
2190
+ # WHITESPACE
2191
+ #
2192
+
2193
+ w_space_comment;
2194
+
2195
+ w_newline
2196
+ => { fgoto leading_dot; };
2197
+
2198
+ ';'
2199
+ => { emit(:tSEMI, ';'.freeze)
2200
+ fnext expr_value; fbreak; };
2201
+
2202
+ '\\' c_line {
2203
+ diagnostic :error, :bare_backslash, nil, range(@ts, @ts + 1)
2204
+ fhold;
2205
+ };
2206
+
2207
+ c_any
2208
+ => {
2209
+ diagnostic :fatal, :unexpected, { :character => tok.inspect[1..-2] }
2210
+ };
2211
+
2212
+ c_eof => do_eof;
2213
+ *|;
2214
+
2215
+ leading_dot := |*
2216
+ # Insane leading dots:
2217
+ # a #comment
2218
+ # .b: a.b
2219
+ c_space* %{ tm = p } ('.' | '&.')
2220
+ => { p = tm - 1; fgoto expr_end; };
2221
+
2222
+ any
2223
+ => { emit(:tNL, nil, @newline_s, @newline_s + 1)
2224
+ fhold; fnext line_begin; fbreak; };
2225
+ *|;
2226
+
2227
+ #
2228
+ # === EMBEDDED DOCUMENT (aka BLOCK COMMENT) PARSING ===
2229
+ #
2230
+
2231
+ line_comment := |*
2232
+ '=end' c_line* c_nl_zlen
2233
+ => {
2234
+ emit_comment(@eq_begin_s, @te)
2235
+ fgoto line_begin;
2236
+ };
2237
+
2238
+ c_line* c_nl;
2239
+
2240
+ c_line* zlen
2241
+ => {
2242
+ diagnostic :fatal, :embedded_document, nil,
2243
+ range(@eq_begin_s, @eq_begin_s + '=begin'.length)
2244
+ };
2245
+ *|;
2246
+
2247
+ line_begin := |*
2248
+ w_any;
2249
+
2250
+ '=begin' ( c_space | c_nl_zlen )
2251
+ => { @eq_begin_s = @ts
2252
+ fgoto line_comment; };
2253
+
2254
+ '__END__' ( c_eol - zlen )
2255
+ => { p = pe - 3 };
2256
+
2257
+ c_any
2258
+ => { fhold; fgoto expr_value; };
2259
+
2260
+ c_eof => do_eof;
2261
+ *|;
2262
+
2263
+ }%%
2264
+ # %
2265
+ end