dirwatch 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1518) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +31 -0
  3. data/bin/dirwatch +2 -16
  4. data/lib/dirwatch/errors.rb +48 -0
  5. data/lib/dirwatch/executors.rb +64 -0
  6. data/lib/dirwatch/options/parser.rb +137 -0
  7. data/lib/dirwatch/options.rb +50 -43
  8. data/lib/dirwatch/os_fetcher.rb +40 -0
  9. data/lib/dirwatch/settings/watch_setting.rb +39 -16
  10. data/lib/dirwatch/settings.rb +28 -34
  11. data/lib/dirwatch/string_extensions.rb +13 -0
  12. data/lib/dirwatch/symbolize_extensions.rb +19 -0
  13. data/lib/dirwatch/templates/linux/latex.yml +8 -0
  14. data/lib/dirwatch/templates/mac/latex.yml +8 -0
  15. data/lib/dirwatch/templates/windows/latex.yml +8 -0
  16. data/lib/dirwatch/templates.rb +103 -0
  17. data/lib/dirwatch/version.rb +1 -1
  18. data/lib/dirwatch/watcher.rb +31 -23
  19. data/lib/dirwatch.rb +7 -2
  20. data/vendor/bundle/ruby/2.3.0/bin/byebug +23 -0
  21. data/vendor/bundle/ruby/2.3.0/bin/cc-tddium-post-worker +23 -0
  22. data/vendor/bundle/ruby/2.3.0/bin/codeclimate-test-reporter +23 -0
  23. data/vendor/bundle/ruby/2.3.0/bin/dirwatch +23 -0
  24. data/vendor/bundle/ruby/2.3.0/bin/htmldiff +25 -0
  25. data/vendor/bundle/ruby/2.3.0/bin/ldiff +25 -0
  26. data/vendor/bundle/ruby/2.3.0/bin/rake +23 -0
  27. data/vendor/bundle/ruby/2.3.0/bin/rspec +23 -0
  28. data/vendor/bundle/ruby/2.3.0/bin/rubocop +23 -0
  29. data/vendor/bundle/ruby/2.3.0/bin/ruby-parse +23 -0
  30. data/vendor/bundle/ruby/2.3.0/bin/ruby-rewrite +23 -0
  31. data/vendor/bundle/ruby/2.3.0/cache/ast-2.3.0.gem +0 -0
  32. data/vendor/bundle/ruby/2.3.0/cache/byebug-9.1.0.gem +0 -0
  33. data/vendor/bundle/ruby/2.3.0/cache/codeclimate-test-reporter-1.0.8.gem +0 -0
  34. data/vendor/bundle/ruby/2.3.0/cache/diff-lcs-1.3.gem +0 -0
  35. data/vendor/bundle/ruby/2.3.0/cache/docile-1.1.5.gem +0 -0
  36. data/vendor/bundle/ruby/2.3.0/cache/json-2.1.0.gem +0 -0
  37. data/vendor/bundle/ruby/2.3.0/cache/parser-2.4.0.0.gem +0 -0
  38. data/vendor/bundle/ruby/2.3.0/cache/powerpack-0.1.1.gem +0 -0
  39. data/vendor/bundle/ruby/2.3.0/cache/rainbow-2.2.2.gem +0 -0
  40. data/vendor/bundle/ruby/2.3.0/cache/rake-12.1.0.gem +0 -0
  41. data/vendor/bundle/ruby/2.3.0/cache/rspec-3.6.0.gem +0 -0
  42. data/vendor/bundle/ruby/2.3.0/cache/rspec-core-3.6.0.gem +0 -0
  43. data/vendor/bundle/ruby/2.3.0/cache/rspec-expectations-3.6.0.gem +0 -0
  44. data/vendor/bundle/ruby/2.3.0/cache/rspec-mocks-3.6.0.gem +0 -0
  45. data/vendor/bundle/ruby/2.3.0/cache/rspec-support-3.6.0.gem +0 -0
  46. data/vendor/bundle/ruby/2.3.0/cache/rubocop-0.46.0.gem +0 -0
  47. data/vendor/bundle/ruby/2.3.0/cache/ruby-progressbar-1.9.0.gem +0 -0
  48. data/vendor/bundle/ruby/2.3.0/cache/simplecov-0.13.0.gem +0 -0
  49. data/vendor/bundle/ruby/2.3.0/cache/simplecov-html-0.10.2.gem +0 -0
  50. data/vendor/bundle/ruby/2.3.0/cache/unicode-display_width-1.3.0.gem +0 -0
  51. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/byebug-9.1.0/byebug/byebug.so +0 -0
  52. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/byebug-9.1.0/gem.build_complete +0 -0
  53. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/byebug-9.1.0/gem_make.out +19 -0
  54. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/json-2.1.0/gem.build_complete +0 -0
  55. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/json-2.1.0/gem_make.out +13 -0
  56. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/json-2.1.0/json/ext/generator.so +0 -0
  57. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/json-2.1.0/json/ext/parser.so +0 -0
  58. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/json-2.1.0/mkmf.log +61 -0
  59. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/rainbow-2.2.2/gem.build_complete +0 -0
  60. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/rainbow-2.2.2/gem_make.out +5 -0
  61. data/vendor/bundle/ruby/2.3.0/gems/ast-2.3.0/CHANGELOG.md +9 -0
  62. data/vendor/bundle/ruby/2.3.0/gems/ast-2.3.0/Gemfile +4 -0
  63. data/vendor/bundle/ruby/2.3.0/gems/ast-2.3.0/LICENSE.MIT +20 -0
  64. data/vendor/bundle/ruby/2.3.0/gems/ast-2.3.0/README.YARD.md +12 -0
  65. data/vendor/bundle/ruby/2.3.0/gems/ast-2.3.0/README.md +23 -0
  66. data/vendor/bundle/ruby/2.3.0/gems/ast-2.3.0/Rakefile +19 -0
  67. data/vendor/bundle/ruby/2.3.0/gems/ast-2.3.0/ast.gemspec +29 -0
  68. data/vendor/bundle/ruby/2.3.0/gems/ast-2.3.0/lib/ast/node.rb +253 -0
  69. data/vendor/bundle/ruby/2.3.0/gems/ast-2.3.0/lib/ast/processor/mixin.rb +288 -0
  70. data/vendor/bundle/ruby/2.3.0/gems/ast-2.3.0/lib/ast/processor.rb +12 -0
  71. data/vendor/bundle/ruby/2.3.0/gems/ast-2.3.0/lib/ast/sexp.rb +30 -0
  72. data/vendor/bundle/ruby/2.3.0/gems/ast-2.3.0/lib/ast.rb +17 -0
  73. data/vendor/bundle/ruby/2.3.0/gems/ast-2.3.0/test/helper.rb +17 -0
  74. data/vendor/bundle/ruby/2.3.0/gems/ast-2.3.0/test/test_ast.rb +264 -0
  75. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/CHANGELOG.md +825 -0
  76. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/CONTRIBUTING.md +65 -0
  77. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/GUIDE.md +1806 -0
  78. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/LICENSE +23 -0
  79. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/README.md +181 -0
  80. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/bin/byebug +9 -0
  81. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/ext/byebug/Makefile +261 -0
  82. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/ext/byebug/breakpoint.c +517 -0
  83. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/ext/byebug/breakpoint.o +0 -0
  84. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/ext/byebug/byebug.c +905 -0
  85. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/ext/byebug/byebug.h +129 -0
  86. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/ext/byebug/byebug.o +0 -0
  87. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/ext/byebug/byebug.so +0 -0
  88. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/ext/byebug/context.c +673 -0
  89. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/ext/byebug/context.o +0 -0
  90. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/ext/byebug/extconf.rb +10 -0
  91. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/ext/byebug/locker.c +96 -0
  92. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/ext/byebug/locker.o +0 -0
  93. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/ext/byebug/threads.c +230 -0
  94. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/ext/byebug/threads.o +0 -0
  95. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/attacher.rb +34 -0
  96. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/breakpoint.rb +89 -0
  97. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/byebug.so +0 -0
  98. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/command.rb +105 -0
  99. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/command_list.rb +32 -0
  100. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/break.rb +98 -0
  101. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/catch.rb +80 -0
  102. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/condition.rb +55 -0
  103. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/continue.rb +48 -0
  104. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/debug.rb +36 -0
  105. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/delete.rb +55 -0
  106. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/disable/breakpoints.rb +40 -0
  107. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/disable/display.rb +41 -0
  108. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/disable.rb +31 -0
  109. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/display.rb +64 -0
  110. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/down.rb +43 -0
  111. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/edit.rb +66 -0
  112. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/enable/breakpoints.rb +40 -0
  113. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/enable/display.rb +41 -0
  114. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/enable.rb +31 -0
  115. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/finish.rb +55 -0
  116. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/frame.rb +55 -0
  117. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/help.rb +62 -0
  118. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/history.rb +37 -0
  119. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/info/breakpoints.rb +61 -0
  120. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/info/display.rb +42 -0
  121. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/info/file.rb +80 -0
  122. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/info/line.rb +33 -0
  123. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/info/program.rb +47 -0
  124. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/info.rb +35 -0
  125. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/interrupt.rb +30 -0
  126. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/irb.rb +50 -0
  127. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/kill.rb +45 -0
  128. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/list.rb +164 -0
  129. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/method.rb +51 -0
  130. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/next.rb +38 -0
  131. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/pry.rb +41 -0
  132. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/quit.rb +40 -0
  133. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/restart.rb +62 -0
  134. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/save.rb +70 -0
  135. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/set.rb +77 -0
  136. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/show.rb +43 -0
  137. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/source.rb +40 -0
  138. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/step.rb +38 -0
  139. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/thread/current.rb +35 -0
  140. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/thread/list.rb +41 -0
  141. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/thread/resume.rb +45 -0
  142. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/thread/stop.rb +41 -0
  143. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/thread/switch.rb +44 -0
  144. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/thread.rb +32 -0
  145. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/tracevar.rb +55 -0
  146. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/undisplay.rb +50 -0
  147. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/untracevar.rb +34 -0
  148. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/up.rb +43 -0
  149. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/var/all.rb +39 -0
  150. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/var/args.rb +37 -0
  151. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/var/const.rb +49 -0
  152. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/var/global.rb +35 -0
  153. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/var/instance.rb +37 -0
  154. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/var/local.rb +37 -0
  155. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/var.rb +35 -0
  156. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands/where.rb +51 -0
  157. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/commands.rb +37 -0
  158. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/context.rb +155 -0
  159. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/core.rb +114 -0
  160. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/errors.rb +27 -0
  161. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/frame.rb +185 -0
  162. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/helpers/bin.rb +26 -0
  163. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/helpers/eval.rb +124 -0
  164. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/helpers/file.rb +61 -0
  165. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/helpers/frame.rb +73 -0
  166. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/helpers/parse.rb +75 -0
  167. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/helpers/path.rb +38 -0
  168. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/helpers/reflection.rb +17 -0
  169. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/helpers/string.rb +34 -0
  170. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/helpers/thread.rb +65 -0
  171. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/helpers/toggle.rb +62 -0
  172. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/helpers/var.rb +52 -0
  173. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/history.rb +128 -0
  174. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/interface.rb +144 -0
  175. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/interfaces/local_interface.rb +44 -0
  176. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/interfaces/remote_interface.rb +38 -0
  177. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/interfaces/script_interface.rb +30 -0
  178. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/interfaces/test_interface.rb +65 -0
  179. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/option_setter.rb +93 -0
  180. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/printers/base.rb +69 -0
  181. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/printers/plain.rb +42 -0
  182. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/printers/texts/base.yml +115 -0
  183. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/printers/texts/plain.yml +33 -0
  184. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/processors/command_processor.rb +174 -0
  185. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/processors/control_processor.rb +26 -0
  186. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/processors/post_mortem_processor.rb +16 -0
  187. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/processors/script_processor.rb +45 -0
  188. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/remote.rb +105 -0
  189. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/runner.rb +191 -0
  190. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/setting.rb +73 -0
  191. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/settings/autoirb.rb +27 -0
  192. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/settings/autolist.rb +27 -0
  193. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/settings/autopry.rb +27 -0
  194. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/settings/autosave.rb +15 -0
  195. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/settings/basename.rb +14 -0
  196. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/settings/callstyle.rb +20 -0
  197. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/settings/fullpath.rb +14 -0
  198. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/settings/histfile.rb +18 -0
  199. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/settings/histsize.rb +18 -0
  200. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/settings/linetrace.rb +20 -0
  201. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/settings/listsize.rb +19 -0
  202. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/settings/post_mortem.rb +25 -0
  203. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/settings/savefile.rb +18 -0
  204. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/settings/stack_on_error.rb +13 -0
  205. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/settings/width.rb +18 -0
  206. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/subcommands.rb +52 -0
  207. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug/version.rb +8 -0
  208. data/vendor/bundle/ruby/2.3.0/gems/byebug-9.1.0/lib/byebug.rb +1 -0
  209. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/LICENSE.txt +40 -0
  210. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/README.md +68 -0
  211. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/bin/cc-tddium-post-worker +23 -0
  212. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/bin/ci +15 -0
  213. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/bin/codeclimate-test-reporter +21 -0
  214. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/config/cacert.pem +3895 -0
  215. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/calculate_blob.rb +35 -0
  216. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/ci.rb +106 -0
  217. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/client.rb +103 -0
  218. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/configuration.rb +56 -0
  219. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/exception_message.rb +72 -0
  220. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/formatter.rb +104 -0
  221. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/git.rb +85 -0
  222. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/payload_validator.rb +59 -0
  223. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/post_results.rb +30 -0
  224. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/shorten_filename.rb +24 -0
  225. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter/version.rb +5 -0
  226. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/lib/code_climate/test_reporter.rb +71 -0
  227. data/vendor/bundle/ruby/2.3.0/gems/codeclimate-test-reporter-1.0.8/lib/codeclimate-test-reporter.rb +10 -0
  228. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/Code-of-Conduct.md +74 -0
  229. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/Contributing.md +83 -0
  230. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/History.md +220 -0
  231. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/License.md +39 -0
  232. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/Manifest.txt +37 -0
  233. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/README.rdoc +84 -0
  234. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/Rakefile +57 -0
  235. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/autotest/discover.rb +1 -0
  236. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/bin/htmldiff +32 -0
  237. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/bin/ldiff +6 -0
  238. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/docs/COPYING.txt +339 -0
  239. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/docs/artistic.txt +127 -0
  240. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/array.rb +7 -0
  241. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/block.rb +37 -0
  242. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/callbacks.rb +322 -0
  243. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/change.rb +181 -0
  244. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/htmldiff.rb +149 -0
  245. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/hunk.rb +276 -0
  246. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/internals.rb +307 -0
  247. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/ldiff.rb +167 -0
  248. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/string.rb +5 -0
  249. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs.rb +725 -0
  250. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff-lcs.rb +3 -0
  251. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/change_spec.rb +65 -0
  252. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/diff_spec.rb +47 -0
  253. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/fixtures/ds1.csv +50 -0
  254. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/fixtures/ds2.csv +51 -0
  255. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/hunk_spec.rb +72 -0
  256. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/issues_spec.rb +49 -0
  257. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/lcs_spec.rb +56 -0
  258. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/ldiff_spec.rb +47 -0
  259. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/patch_spec.rb +422 -0
  260. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/sdiff_spec.rb +214 -0
  261. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/spec_helper.rb +321 -0
  262. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/traverse_balanced_spec.rb +310 -0
  263. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/traverse_sequences_spec.rb +139 -0
  264. data/vendor/bundle/ruby/2.3.0/gems/docile-1.1.5/Gemfile +4 -0
  265. data/vendor/bundle/ruby/2.3.0/gems/docile-1.1.5/HISTORY.md +61 -0
  266. data/vendor/bundle/ruby/2.3.0/gems/docile-1.1.5/LICENSE +21 -0
  267. data/vendor/bundle/ruby/2.3.0/gems/docile-1.1.5/README.md +241 -0
  268. data/vendor/bundle/ruby/2.3.0/gems/docile-1.1.5/Rakefile +28 -0
  269. data/vendor/bundle/ruby/2.3.0/gems/docile-1.1.5/docile.gemspec +43 -0
  270. data/vendor/bundle/ruby/2.3.0/gems/docile-1.1.5/lib/docile/chaining_fallback_context_proxy.rb +20 -0
  271. data/vendor/bundle/ruby/2.3.0/gems/docile-1.1.5/lib/docile/execution.rb +35 -0
  272. data/vendor/bundle/ruby/2.3.0/gems/docile-1.1.5/lib/docile/fallback_context_proxy.rb +63 -0
  273. data/vendor/bundle/ruby/2.3.0/gems/docile-1.1.5/lib/docile/version.rb +4 -0
  274. data/vendor/bundle/ruby/2.3.0/gems/docile-1.1.5/lib/docile.rb +84 -0
  275. data/vendor/bundle/ruby/2.3.0/gems/docile-1.1.5/on_what.rb +14 -0
  276. data/vendor/bundle/ruby/2.3.0/gems/docile-1.1.5/spec/docile_spec.rb +339 -0
  277. data/vendor/bundle/ruby/2.3.0/gems/docile-1.1.5/spec/spec_helper.rb +30 -0
  278. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/CHANGES.md +388 -0
  279. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/Gemfile +16 -0
  280. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/README-json-jruby.md +33 -0
  281. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/README.md +392 -0
  282. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/Rakefile +408 -0
  283. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/VERSION +1 -0
  284. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/data/example.json +1 -0
  285. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/data/index.html +38 -0
  286. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/data/prototype.js +4184 -0
  287. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/Makefile +197 -0
  288. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/fbuffer/fbuffer.h +187 -0
  289. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/generator/Makefile +262 -0
  290. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/generator/depend +1 -0
  291. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/generator/extconf.rb +4 -0
  292. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/generator/generator.c +1443 -0
  293. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/generator/generator.h +171 -0
  294. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/generator/generator.o +0 -0
  295. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/generator/generator.so +0 -0
  296. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/parser/Makefile +262 -0
  297. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/parser/depend +1 -0
  298. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/parser/extconf.rb +6 -0
  299. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/parser/parser.c +2109 -0
  300. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/parser/parser.h +91 -0
  301. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/parser/parser.o +0 -0
  302. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/parser/parser.rl +869 -0
  303. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/parser/parser.so +0 -0
  304. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/extconf.rb +2 -0
  305. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/install.rb +23 -0
  306. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/ByteListTranscoder.java +166 -0
  307. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/Generator.java +443 -0
  308. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/GeneratorMethods.java +231 -0
  309. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/GeneratorService.java +42 -0
  310. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/GeneratorState.java +490 -0
  311. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/OptionsReader.java +113 -0
  312. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/Parser.java +2362 -0
  313. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/Parser.rl +893 -0
  314. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/ParserService.java +34 -0
  315. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/RuntimeInfo.java +116 -0
  316. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/StringDecoder.java +166 -0
  317. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/StringEncoder.java +111 -0
  318. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/Utils.java +88 -0
  319. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/json-java.gemspec +38 -0
  320. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/json.gemspec +0 -0
  321. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/json_pure.gemspec +38 -0
  322. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/bigdecimal.rb +29 -0
  323. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/complex.rb +29 -0
  324. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/core.rb +12 -0
  325. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/date.rb +34 -0
  326. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/date_time.rb +50 -0
  327. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/exception.rb +31 -0
  328. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/ostruct.rb +31 -0
  329. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/range.rb +29 -0
  330. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/rational.rb +28 -0
  331. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/regexp.rb +30 -0
  332. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/struct.rb +30 -0
  333. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/symbol.rb +25 -0
  334. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/time.rb +38 -0
  335. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/common.rb +456 -0
  336. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/ext/generator.so +0 -0
  337. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/ext/parser.so +0 -0
  338. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/ext.rb +15 -0
  339. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/generic_object.rb +71 -0
  340. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/pure/generator.rb +458 -0
  341. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/pure/parser.rb +311 -0
  342. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/pure.rb +15 -0
  343. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/version.rb +9 -0
  344. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json.rb +63 -0
  345. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/references/rfc7159.txt +899 -0
  346. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail10.json +1 -0
  347. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail11.json +1 -0
  348. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail12.json +1 -0
  349. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail13.json +1 -0
  350. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail14.json +1 -0
  351. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail18.json +1 -0
  352. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail19.json +1 -0
  353. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail2.json +1 -0
  354. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail20.json +1 -0
  355. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail21.json +1 -0
  356. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail22.json +1 -0
  357. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail23.json +1 -0
  358. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail24.json +1 -0
  359. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail25.json +1 -0
  360. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail27.json +2 -0
  361. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail28.json +2 -0
  362. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail3.json +1 -0
  363. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail4.json +1 -0
  364. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail5.json +1 -0
  365. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail6.json +1 -0
  366. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail7.json +1 -0
  367. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail8.json +1 -0
  368. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail9.json +1 -0
  369. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/obsolete_fail1.json +1 -0
  370. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/pass1.json +56 -0
  371. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/pass15.json +1 -0
  372. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/pass16.json +1 -0
  373. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/pass17.json +1 -0
  374. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/pass2.json +1 -0
  375. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/pass26.json +1 -0
  376. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/pass3.json +6 -0
  377. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_addition_test.rb +193 -0
  378. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_common_interface_test.rb +126 -0
  379. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_encoding_test.rb +107 -0
  380. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_ext_parser_test.rb +15 -0
  381. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_fixtures_test.rb +32 -0
  382. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_generator_test.rb +377 -0
  383. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_generic_object_test.rb +82 -0
  384. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_parser_test.rb +471 -0
  385. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_string_matching_test.rb +38 -0
  386. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/test_helper.rb +21 -0
  387. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tools/diff.sh +18 -0
  388. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tools/fuzz.rb +131 -0
  389. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tools/server.rb +62 -0
  390. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/CHANGELOG.md +826 -0
  391. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/CONTRIBUTING.md +17 -0
  392. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/Gemfile +8 -0
  393. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/LICENSE.txt +25 -0
  394. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/README.md +300 -0
  395. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/Rakefile +158 -0
  396. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/bin/ruby-parse +6 -0
  397. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/bin/ruby-rewrite +6 -0
  398. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/doc/AST_FORMAT.md +1713 -0
  399. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/doc/CUSTOMIZATION.md +37 -0
  400. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/doc/INTERNALS.md +21 -0
  401. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/doc/css/common.css +68 -0
  402. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/gauntlet_parser.rb +121 -0
  403. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/all.rb +7 -0
  404. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/ast/node.rb +38 -0
  405. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/ast/processor.rb +234 -0
  406. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/base.rb +268 -0
  407. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/builders/default.rb +1608 -0
  408. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/clobbering_error.rb +11 -0
  409. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/compatibility/ruby1_8.rb +20 -0
  410. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/compatibility/ruby1_9.rb +32 -0
  411. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/current.rb +81 -0
  412. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/diagnostic/engine.rb +103 -0
  413. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/diagnostic.rb +163 -0
  414. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/lexer/dedenter.rb +49 -0
  415. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/lexer/explanation.rb +53 -0
  416. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/lexer/literal.rb +262 -0
  417. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/lexer/stack_state.rb +42 -0
  418. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/lexer.rb +21715 -0
  419. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/lexer.rl +2270 -0
  420. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/macruby.rb +6093 -0
  421. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/macruby.y +2173 -0
  422. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/messages.rb +70 -0
  423. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/meta.rb +27 -0
  424. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/rewriter.rb +119 -0
  425. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/ruby18.rb +5637 -0
  426. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/ruby18.y +1917 -0
  427. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/ruby19.rb +6040 -0
  428. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/ruby19.y +2150 -0
  429. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/ruby20.rb +6477 -0
  430. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/ruby20.y +2328 -0
  431. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/ruby21.rb +6547 -0
  432. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/ruby21.y +2337 -0
  433. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/ruby22.rb +6580 -0
  434. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/ruby22.y +2344 -0
  435. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/ruby23.rb +6590 -0
  436. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/ruby23.y +2350 -0
  437. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/ruby24.rb +6626 -0
  438. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/ruby24.y +2361 -0
  439. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/rubymotion.rb +6046 -0
  440. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/rubymotion.y +2157 -0
  441. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/runner/ruby_parse.rb +146 -0
  442. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/runner/ruby_rewrite.rb +99 -0
  443. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/runner.rb +241 -0
  444. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/buffer.rb +333 -0
  445. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/comment/associator.rb +201 -0
  446. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/comment.rb +120 -0
  447. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/map/collection.rb +16 -0
  448. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/map/condition.rb +19 -0
  449. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/map/constant.rb +30 -0
  450. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/map/definition.rb +21 -0
  451. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/map/for.rb +17 -0
  452. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/map/heredoc.rb +17 -0
  453. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/map/keyword.rb +18 -0
  454. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/map/objc_kwarg.rb +17 -0
  455. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/map/operator.rb +15 -0
  456. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/map/rescue_body.rb +19 -0
  457. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/map/send.rb +34 -0
  458. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/map/ternary.rb +16 -0
  459. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/map/variable.rb +29 -0
  460. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/map.rb +184 -0
  461. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/range.rb +242 -0
  462. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/rewriter/action.rb +42 -0
  463. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/source/rewriter.rb +471 -0
  464. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/static_environment.rb +44 -0
  465. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/syntax_error.rb +19 -0
  466. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser/version.rb +3 -0
  467. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/lib/parser.rb +81 -0
  468. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/parser.gemspec +46 -0
  469. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/bug_163/fixtures/input.rb +3 -0
  470. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/bug_163/fixtures/output.rb +3 -0
  471. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/bug_163/rewriter.rb +18 -0
  472. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/bug_163/test_runner_rewrite.rb +35 -0
  473. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/helper.rb +41 -0
  474. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/parse_helper.rb +258 -0
  475. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/racc_coverage_helper.rb +130 -0
  476. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_base.rb +29 -0
  477. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_current.rb +25 -0
  478. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_diagnostic.rb +94 -0
  479. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_diagnostic_engine.rb +60 -0
  480. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_encoding.rb +78 -0
  481. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_lexer.rb +3376 -0
  482. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_lexer_stack_state.rb +76 -0
  483. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_parse_helper.rb +80 -0
  484. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_parser.rb +5894 -0
  485. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_source_buffer.rb +144 -0
  486. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_source_comment.rb +34 -0
  487. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_source_comment_associator.rb +275 -0
  488. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_source_map.rb +13 -0
  489. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_source_range.rb +125 -0
  490. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_source_rewriter.rb +539 -0
  491. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_source_rewriter_action.rb +44 -0
  492. data/vendor/bundle/ruby/2.3.0/gems/parser-2.4.0.0/test/test_static_environment.rb +43 -0
  493. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/CHANGELOG.md +39 -0
  494. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/Gemfile +4 -0
  495. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/LICENSE.txt +22 -0
  496. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/README.md +99 -0
  497. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/Rakefile +12 -0
  498. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/array/butfirst.rb +15 -0
  499. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/array/butlast.rb +15 -0
  500. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/array.rb +2 -0
  501. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/average.rb +20 -0
  502. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/drop_last.rb +20 -0
  503. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/drop_last_while.rb +21 -0
  504. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/exactly.rb +43 -0
  505. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/frequencies.rb +17 -0
  506. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/several.rb +37 -0
  507. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/sum.rb +21 -0
  508. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/take_last.rb +20 -0
  509. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/enumerable/take_last_while.rb +17 -0
  510. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/enumerable.rb +9 -0
  511. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/hash/symbolize_keys.rb +14 -0
  512. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/hash.rb +1 -0
  513. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/numeric/neg.rb +19 -0
  514. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/numeric/pos.rb +19 -0
  515. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/numeric/scale.rb +44 -0
  516. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/numeric.rb +3 -0
  517. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/string/ascii_only.rb +42 -0
  518. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/string/blank.rb +20 -0
  519. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/string/format.rb +20 -0
  520. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/string/remove.rb +17 -0
  521. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/string/remove_prefix.rb +23 -0
  522. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/string/remove_suffix.rb +23 -0
  523. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/string/squish.rb +27 -0
  524. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/string/strip_indent.rb +22 -0
  525. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/string/strip_margin.rb +21 -0
  526. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/string.rb +9 -0
  527. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack/version.rb +3 -0
  528. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/lib/powerpack.rb +11 -0
  529. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/powerpack.gemspec +24 -0
  530. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/array/butfirst_spec.rb +11 -0
  531. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/array/butlast_spec.rb +11 -0
  532. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/average_spec.rb +19 -0
  533. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/drop_last_spec.rb +15 -0
  534. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/drop_last_while_spec.rb +7 -0
  535. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/exactly_spec.rb +39 -0
  536. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/frequencies_spec.rb +20 -0
  537. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/several_spec.rb +27 -0
  538. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/sum_spec.rb +15 -0
  539. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/take_last_spec.rb +15 -0
  540. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/enumerable/take_last_while_spec.rb +7 -0
  541. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/hash/symbolize_keys_spec.rb +15 -0
  542. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/numeric/neg_spec.rb +24 -0
  543. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/numeric/pos_spec.rb +24 -0
  544. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/numeric/scale_spec.rb +139 -0
  545. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/string/ascii_only_spec.rb +45 -0
  546. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/string/blank_spec.rb +15 -0
  547. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/string/format_spec.rb +12 -0
  548. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/string/remove_prefix_spec.rb +13 -0
  549. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/string/remove_spec.rb +13 -0
  550. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/string/remove_suffix_spec.rb +13 -0
  551. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/string/squish_spec.rb +21 -0
  552. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/string/strip_indent_spec.rb +13 -0
  553. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/powerpack/string/strip_margin_spec.rb +26 -0
  554. data/vendor/bundle/ruby/2.3.0/gems/powerpack-0.1.1/spec/spec_helper.rb +15 -0
  555. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/Changelog.md +87 -0
  556. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/Gemfile +23 -0
  557. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/Guardfile +9 -0
  558. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/LICENSE +20 -0
  559. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/README.markdown +217 -0
  560. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/Rakefile +6 -0
  561. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/ext/Rakefile +1 -0
  562. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/ext/mkrf_conf.rb +22 -0
  563. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/lib/rainbow/color.rb +144 -0
  564. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/lib/rainbow/ext/string.rb +56 -0
  565. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/lib/rainbow/global.rb +21 -0
  566. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/lib/rainbow/legacy.rb +15 -0
  567. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/lib/rainbow/null_presenter.rb +41 -0
  568. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/lib/rainbow/presenter.rb +135 -0
  569. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/lib/rainbow/string_utils.rb +20 -0
  570. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/lib/rainbow/version.rb +3 -0
  571. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/lib/rainbow/wrapper.rb +22 -0
  572. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/lib/rainbow/x11_color_names.rb +152 -0
  573. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/lib/rainbow.rb +24 -0
  574. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/rainbow.gemspec +26 -0
  575. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/spec/integration/instance_spec.rb +35 -0
  576. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/spec/integration/rainbow_spec.rb +160 -0
  577. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/spec/integration/string_spec.rb +84 -0
  578. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/spec/spec_helper.rb +6 -0
  579. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/spec/support/presenter_shared_examples.rb +9 -0
  580. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/spec/unit/color_spec.rb +301 -0
  581. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/spec/unit/namespace_spec.rb +31 -0
  582. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/spec/unit/null_presenter_spec.rb +111 -0
  583. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/spec/unit/presenter_spec.rb +201 -0
  584. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/spec/unit/string_utils_spec.rb +62 -0
  585. data/vendor/bundle/ruby/2.3.0/gems/rainbow-2.2.2/spec/unit/wrapper_spec.rb +34 -0
  586. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/CONTRIBUTING.rdoc +36 -0
  587. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/Gemfile +3 -0
  588. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/History.rdoc +2266 -0
  589. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/MIT-LICENSE +21 -0
  590. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/README.rdoc +156 -0
  591. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/Rakefile +38 -0
  592. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/bin/console +7 -0
  593. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/bin/setup +6 -0
  594. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/doc/command_line_usage.rdoc +158 -0
  595. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/doc/example/Rakefile1 +38 -0
  596. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/doc/example/Rakefile2 +35 -0
  597. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/doc/example/a.c +6 -0
  598. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/doc/example/b.c +6 -0
  599. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/doc/example/main.c +11 -0
  600. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/doc/glossary.rdoc +42 -0
  601. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/doc/jamis.rb +592 -0
  602. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/doc/proto_rake.rdoc +127 -0
  603. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/doc/rake.1 +156 -0
  604. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/doc/rakefile.rdoc +622 -0
  605. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/doc/rational.rdoc +151 -0
  606. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/exe/rake +27 -0
  607. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/application.rb +786 -0
  608. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/backtrace.rb +24 -0
  609. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/clean.rb +78 -0
  610. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/cloneable.rb +17 -0
  611. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/cpu_counter.rb +107 -0
  612. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/default_loader.rb +15 -0
  613. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/dsl_definition.rb +195 -0
  614. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/early_time.rb +22 -0
  615. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/ext/core.rb +26 -0
  616. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/ext/string.rb +176 -0
  617. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/file_creation_task.rb +25 -0
  618. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/file_list.rb +435 -0
  619. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/file_task.rb +54 -0
  620. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/file_utils.rb +137 -0
  621. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/file_utils_ext.rb +145 -0
  622. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/invocation_chain.rb +57 -0
  623. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/invocation_exception_mixin.rb +17 -0
  624. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/late_time.rb +18 -0
  625. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/linked_list.rb +112 -0
  626. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/loaders/makefile.rb +54 -0
  627. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/multi_task.rb +50 -0
  628. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/name_space.rb +38 -0
  629. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/packagetask.rb +211 -0
  630. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/phony.rb +16 -0
  631. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/private_reader.rb +21 -0
  632. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/promise.rb +100 -0
  633. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/pseudo_status.rb +30 -0
  634. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/rake_module.rb +39 -0
  635. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/rake_test_loader.rb +26 -0
  636. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
  637. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/scope.rb +43 -0
  638. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/task.rb +391 -0
  639. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/task_argument_error.rb +8 -0
  640. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/task_arguments.rb +109 -0
  641. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/task_manager.rb +319 -0
  642. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/tasklib.rb +12 -0
  643. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/testtask.rb +224 -0
  644. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/thread_history_display.rb +49 -0
  645. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/thread_pool.rb +163 -0
  646. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/trace_output.rb +23 -0
  647. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/version.rb +10 -0
  648. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake/win32.rb +51 -0
  649. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/lib/rake.rb +71 -0
  650. data/vendor/bundle/ruby/2.3.0/gems/rake-12.1.0/rake.gemspec +43 -0
  651. data/vendor/bundle/ruby/2.3.0/gems/rspec-3.6.0/LICENSE.md +27 -0
  652. data/vendor/bundle/ruby/2.3.0/gems/rspec-3.6.0/README.md +39 -0
  653. data/vendor/bundle/ruby/2.3.0/gems/rspec-3.6.0/lib/rspec/version.rb +5 -0
  654. data/vendor/bundle/ruby/2.3.0/gems/rspec-3.6.0/lib/rspec.rb +3 -0
  655. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/Changelog.md +2167 -0
  656. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/LICENSE.md +26 -0
  657. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/README.md +384 -0
  658. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/exe/rspec +4 -0
  659. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/autorun.rb +3 -0
  660. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/backtrace_formatter.rb +65 -0
  661. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/bisect/coordinator.rb +66 -0
  662. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/bisect/example_minimizer.rb +169 -0
  663. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/bisect/runner.rb +169 -0
  664. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/bisect/server.rb +70 -0
  665. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/configuration.rb +2177 -0
  666. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/configuration_options.rb +196 -0
  667. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/drb.rb +113 -0
  668. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/dsl.rb +98 -0
  669. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/example.rb +653 -0
  670. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/example_group.rb +883 -0
  671. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/example_status_persister.rb +235 -0
  672. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/filter_manager.rb +231 -0
  673. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/flat_map.rb +20 -0
  674. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/base_formatter.rb +70 -0
  675. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
  676. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/bisect_formatter.rb +69 -0
  677. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/bisect_progress_formatter.rb +144 -0
  678. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/console_codes.rb +68 -0
  679. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
  680. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/documentation_formatter.rb +70 -0
  681. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/exception_presenter.rb +496 -0
  682. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  683. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/helpers.rb +110 -0
  684. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/html_formatter.rb +153 -0
  685. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/html_printer.rb +414 -0
  686. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/html_snippet_extractor.rb +118 -0
  687. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/json_formatter.rb +101 -0
  688. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  689. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/progress_formatter.rb +29 -0
  690. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/protocol.rb +182 -0
  691. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
  692. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
  693. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/formatters.rb +265 -0
  694. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/hooks.rb +624 -0
  695. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/invocations.rb +85 -0
  696. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/memoized_helpers.rb +535 -0
  697. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/metadata.rb +499 -0
  698. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/metadata_filter.rb +255 -0
  699. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  700. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  701. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  702. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/null.rb +14 -0
  703. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  704. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  705. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/notifications.rb +514 -0
  706. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/option_parser.rb +309 -0
  707. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/ordering.rb +158 -0
  708. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/output_wrapper.rb +29 -0
  709. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/pending.rb +165 -0
  710. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/profiler.rb +32 -0
  711. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/project_initializer/spec/spec_helper.rb +100 -0
  712. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/project_initializer.rb +48 -0
  713. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/rake_task.rb +168 -0
  714. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/reporter.rb +260 -0
  715. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/ruby_project.rb +53 -0
  716. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/runner.rb +193 -0
  717. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/sandbox.rb +37 -0
  718. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/set.rb +54 -0
  719. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/shared_context.rb +55 -0
  720. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/shared_example_group.rb +271 -0
  721. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/shell_escape.rb +49 -0
  722. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  723. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/version.rb +9 -0
  724. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/warnings.rb +40 -0
  725. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core/world.rb +264 -0
  726. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.6.0/lib/rspec/core.rb +185 -0
  727. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/Changelog.md +1072 -0
  728. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/LICENSE.md +25 -0
  729. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/README.md +305 -0
  730. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
  731. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/expectations/configuration.rb +201 -0
  732. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/expectations/expectation_target.rb +127 -0
  733. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/expectations/fail_with.rb +39 -0
  734. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/expectations/failure_aggregator.rb +194 -0
  735. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/expectations/handler.rb +170 -0
  736. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/expectations/minitest_integration.rb +58 -0
  737. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/expectations/syntax.rb +132 -0
  738. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/expectations/version.rb +8 -0
  739. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/expectations.rb +82 -0
  740. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/aliased_matcher.rb +116 -0
  741. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/all.rb +85 -0
  742. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/base_matcher.rb +193 -0
  743. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be.rb +288 -0
  744. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be_between.rb +77 -0
  745. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be_instance_of.rb +22 -0
  746. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be_kind_of.rb +16 -0
  747. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be_within.rb +72 -0
  748. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/change.rb +387 -0
  749. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/compound.rb +272 -0
  750. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/contain_exactly.rb +301 -0
  751. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/cover.rb +24 -0
  752. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/eq.rb +40 -0
  753. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/eql.rb +34 -0
  754. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/equal.rb +81 -0
  755. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/exist.rb +90 -0
  756. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/has.rb +103 -0
  757. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  758. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/include.rb +143 -0
  759. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/match.rb +106 -0
  760. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/operators.rb +128 -0
  761. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/output.rb +200 -0
  762. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/raise_error.rb +230 -0
  763. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/respond_to.rb +165 -0
  764. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/satisfy.rb +60 -0
  765. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
  766. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
  767. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/yield.rb +432 -0
  768. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in.rb +52 -0
  769. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/composable.rb +169 -0
  770. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/dsl.rb +527 -0
  771. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/english_phrasing.rb +58 -0
  772. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +73 -0
  773. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/fail_matchers.rb +42 -0
  774. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/generated_descriptions.rb +42 -0
  775. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/matcher_delegator.rb +35 -0
  776. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers/matcher_protocol.rb +99 -0
  777. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.6.0/lib/rspec/matchers.rb +1025 -0
  778. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/Changelog.md +1073 -0
  779. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/LICENSE.md +25 -0
  780. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/README.md +460 -0
  781. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/chain.rb +110 -0
  782. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  783. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/expect_chain_chain.rb +31 -0
  784. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/expectation_chain.rb +50 -0
  785. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  786. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/proxy.rb +116 -0
  787. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/recorder.rb +289 -0
  788. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/stub_chain.rb +51 -0
  789. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/stub_chain_chain.rb +23 -0
  790. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance.rb +11 -0
  791. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/argument_list_matcher.rb +100 -0
  792. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/argument_matchers.rb +320 -0
  793. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/configuration.rb +212 -0
  794. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/error_generator.rb +369 -0
  795. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/example_methods.rb +434 -0
  796. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/instance_method_stasher.rb +146 -0
  797. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/marshal_extension.rb +41 -0
  798. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  799. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/have_received.rb +130 -0
  800. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/receive.rb +132 -0
  801. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
  802. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
  803. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/message_chain.rb +87 -0
  804. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/message_expectation.rb +740 -0
  805. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/method_double.rb +287 -0
  806. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/method_reference.rb +202 -0
  807. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/minitest_integration.rb +68 -0
  808. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/mutate_const.rb +339 -0
  809. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/object_reference.rb +149 -0
  810. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/order_group.rb +81 -0
  811. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/proxy.rb +484 -0
  812. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/space.rb +238 -0
  813. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/standalone.rb +3 -0
  814. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/syntax.rb +325 -0
  815. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/targets.rb +124 -0
  816. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/test_double.rb +171 -0
  817. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/verifying_double.rb +129 -0
  818. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/verifying_message_expectation.rb +54 -0
  819. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/verifying_proxy.rb +220 -0
  820. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks/version.rb +9 -0
  821. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.6.0/lib/rspec/mocks.rb +130 -0
  822. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/Changelog.md +211 -0
  823. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/LICENSE.md +23 -0
  824. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/README.md +40 -0
  825. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/caller_filter.rb +83 -0
  826. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/comparable_version.rb +46 -0
  827. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/differ.rb +215 -0
  828. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/directory_maker.rb +63 -0
  829. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/encoded_string.rb +165 -0
  830. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/fuzzy_matcher.rb +48 -0
  831. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/hunk_generator.rb +47 -0
  832. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/matcher_definition.rb +42 -0
  833. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/method_signature_verifier.rb +392 -0
  834. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/mutex.rb +73 -0
  835. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/object_formatter.rb +268 -0
  836. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/recursive_const_methods.rb +76 -0
  837. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/reentrant_mutex.rb +53 -0
  838. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/ruby_features.rb +162 -0
  839. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/source/location.rb +21 -0
  840. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/source/node.rb +107 -0
  841. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/source/token.rb +87 -0
  842. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/source.rb +75 -0
  843. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
  844. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/spec/formatting_support.rb +9 -0
  845. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/spec/in_sub_process.rb +69 -0
  846. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/spec/library_wide_checks.rb +150 -0
  847. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/spec/shell_out.rb +84 -0
  848. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/spec/stderr_splitter.rb +63 -0
  849. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/spec/string_matcher.rb +46 -0
  850. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/spec/with_isolated_directory.rb +13 -0
  851. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
  852. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/spec.rb +81 -0
  853. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/version.rb +7 -0
  854. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support/warnings.rb +39 -0
  855. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.6.0/lib/rspec/support.rb +139 -0
  856. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/LICENSE.txt +20 -0
  857. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/README.md +128 -0
  858. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/assets/logo.png +0 -0
  859. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/assets/output.html.erb +261 -0
  860. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/bin/rubocop +17 -0
  861. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/config/default.yml +1338 -0
  862. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/config/disabled.yml +115 -0
  863. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/config/enabled.yml +1588 -0
  864. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/ast_node/builder.rb +30 -0
  865. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/ast_node/sexp.rb +13 -0
  866. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/ast_node/traversal.rb +171 -0
  867. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/ast_node.rb +624 -0
  868. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cached_data.rb +63 -0
  869. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cli.rb +185 -0
  870. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/comment_config.rb +157 -0
  871. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/config.rb +346 -0
  872. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/config_loader.rb +205 -0
  873. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/config_loader_resolver.rb +43 -0
  874. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/config_store.rb +48 -0
  875. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/autocorrect_logic.rb +26 -0
  876. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/bundler/duplicated_gem.rb +69 -0
  877. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/bundler/ordered_gems.rb +54 -0
  878. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/commissioner.rb +103 -0
  879. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/cop.rb +304 -0
  880. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/corrector.rb +135 -0
  881. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/force.rb +41 -0
  882. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/ignored_node.rb +38 -0
  883. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/ambiguous_operator.rb +50 -0
  884. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +36 -0
  885. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/assignment_in_condition.rb +66 -0
  886. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/block_alignment.rb +198 -0
  887. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/circular_argument_reference.rb +69 -0
  888. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/condition_position.rb +54 -0
  889. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/debugger.rb +52 -0
  890. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/def_end_alignment.rb +57 -0
  891. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/deprecated_class_methods.rb +80 -0
  892. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/duplicate_case_condition.rb +49 -0
  893. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/duplicate_methods.rb +137 -0
  894. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/duplicated_key.rb +30 -0
  895. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/each_with_object_argument.rb +28 -0
  896. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/else_layout.rb +68 -0
  897. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/empty_ensure.rb +18 -0
  898. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/empty_expression.rb +32 -0
  899. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/empty_interpolation.rb +28 -0
  900. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/empty_when.rb +40 -0
  901. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/end_alignment.rb +137 -0
  902. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/end_in_method.rb +17 -0
  903. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/ensure_return.rb +22 -0
  904. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/eval.rb +18 -0
  905. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/float_out_of_range.rb +30 -0
  906. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/format_parameter_mismatch.rb +155 -0
  907. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/handle_exceptions.rb +18 -0
  908. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/implicit_string_concatenation.rb +90 -0
  909. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/ineffective_access_modifier.rb +134 -0
  910. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/inherit_exception.rb +83 -0
  911. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/invalid_character_literal.rb +38 -0
  912. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/literal_in_condition.rb +129 -0
  913. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/literal_in_interpolation.rb +68 -0
  914. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/loop.rb +27 -0
  915. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/nested_method_definition.rb +60 -0
  916. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/next_without_accumulator.rb +45 -0
  917. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +77 -0
  918. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +53 -0
  919. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/percent_string_array.rb +70 -0
  920. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/percent_symbol_array.rb +56 -0
  921. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/rand_one.rb +35 -0
  922. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/require_parentheses.rb +66 -0
  923. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/rescue_exception.rb +25 -0
  924. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/shadowed_exception.rb +131 -0
  925. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +29 -0
  926. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/string_conversion_in_interpolation.rb +51 -0
  927. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/syntax.rb +55 -0
  928. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +38 -0
  929. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/unified_integer.rb +37 -0
  930. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/unneeded_disable.rb +207 -0
  931. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/unneeded_splat_expansion.rb +136 -0
  932. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/unreachable_code.rb +32 -0
  933. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/unused_block_argument.rb +143 -0
  934. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/unused_method_argument.rb +51 -0
  935. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/useless_access_modifier.rb +202 -0
  936. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/useless_assignment.rb +113 -0
  937. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/useless_comparison.rb +25 -0
  938. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/useless_else_without_rescue.rb +31 -0
  939. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/useless_setter_call.rb +150 -0
  940. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/lint/void.rb +56 -0
  941. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/abc_size.rb +39 -0
  942. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/block_length.rb +26 -0
  943. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/block_nesting.rb +52 -0
  944. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/class_length.rb +24 -0
  945. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +31 -0
  946. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/line_length.rb +168 -0
  947. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/method_length.rb +27 -0
  948. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/module_length.rb +24 -0
  949. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/parameter_lists.rb +44 -0
  950. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/metrics/perceived_complexity.rb +62 -0
  951. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/access_modifier_node.rb +41 -0
  952. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/annotation_comment.rb +36 -0
  953. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/array_hash_indentation.rb +82 -0
  954. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/array_syntax.rb +24 -0
  955. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/autocorrect_alignment.rb +149 -0
  956. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/check_assignment.rb +40 -0
  957. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/classish_length.rb +36 -0
  958. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/code_length.rb +32 -0
  959. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/configurable_enforced_style.rb +91 -0
  960. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/configurable_max.rb +19 -0
  961. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/configurable_naming.rb +44 -0
  962. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/configurable_numbering.rb +58 -0
  963. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/def_node.rb +27 -0
  964. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/documentation_comment.rb +40 -0
  965. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/empty_lines_around_body.rb +161 -0
  966. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/end_keyword_alignment.rb +85 -0
  967. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/first_element_line_break.rb +41 -0
  968. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/frozen_string_literal.rb +34 -0
  969. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/hash_node.rb +14 -0
  970. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/if_node.rb +42 -0
  971. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/integer_node.rb +12 -0
  972. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/match_range.rb +22 -0
  973. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/method_complexity.rb +30 -0
  974. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/method_preference.rb +28 -0
  975. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/min_body_length.rb +19 -0
  976. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +191 -0
  977. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +152 -0
  978. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/negative_conditional.rb +29 -0
  979. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/on_method_def.rb +30 -0
  980. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/on_normal_if_unless.rb +37 -0
  981. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/parentheses.rb +22 -0
  982. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/parser_diagnostic.rb +34 -0
  983. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/percent_literal.rb +32 -0
  984. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/preceding_following_alignment.rb +89 -0
  985. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/safe_assignment.rb +20 -0
  986. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/safe_mode.rb +22 -0
  987. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/space_after_punctuation.rb +55 -0
  988. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/space_before_punctuation.rb +48 -0
  989. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/space_inside.rb +76 -0
  990. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/statement_modifier.rb +73 -0
  991. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/string_help.rb +33 -0
  992. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/string_literals_help.rb +33 -0
  993. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/surrounding_space.rb +40 -0
  994. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/too_many_lines.rb +39 -0
  995. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/trailing_comma.rb +162 -0
  996. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/unused_argument.rb +42 -0
  997. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/offense.rb +188 -0
  998. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/case_when_splat.rb +179 -0
  999. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/casecmp.rb +107 -0
  1000. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/compare_with_block.rb +61 -0
  1001. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/count.rb +98 -0
  1002. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/detect.rb +106 -0
  1003. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/double_start_end_with.rb +68 -0
  1004. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/end_with.rb +54 -0
  1005. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/fixed_size.rb +56 -0
  1006. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/flat_map.rb +73 -0
  1007. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/hash_each_methods.rb +84 -0
  1008. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/lstrip_rstrip.rb +41 -0
  1009. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/range_include.rb +39 -0
  1010. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/redundant_block_call.rb +93 -0
  1011. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/redundant_match.rb +54 -0
  1012. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/redundant_merge.rb +152 -0
  1013. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/redundant_sort_by.rb +45 -0
  1014. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/reverse_each.rb +39 -0
  1015. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/sample.rb +140 -0
  1016. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/size.rb +76 -0
  1017. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/start_with.rb +57 -0
  1018. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/string_replacement.rb +175 -0
  1019. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/performance/times_map.rb +61 -0
  1020. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/action_filter.rb +96 -0
  1021. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/date.rb +130 -0
  1022. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/delegate.rb +106 -0
  1023. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/delegate_allow_blank.rb +62 -0
  1024. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/dynamic_find_by.rb +77 -0
  1025. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/enum_uniqueness.rb +71 -0
  1026. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/exit.rb +61 -0
  1027. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/find_by.rb +53 -0
  1028. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/find_each.rb +59 -0
  1029. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/has_and_belongs_to_many.rb +17 -0
  1030. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/http_positional_arguments.rb +92 -0
  1031. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/not_null_column.rb +44 -0
  1032. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/output.rb +25 -0
  1033. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/output_safety.rb +58 -0
  1034. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/pluralization_grammar.rb +105 -0
  1035. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/read_write_attribute.rb +74 -0
  1036. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/request_referer.rb +38 -0
  1037. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/safe_navigation.rb +88 -0
  1038. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/save_bang.rb +155 -0
  1039. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/scope_args.rb +29 -0
  1040. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/time_zone.rb +195 -0
  1041. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/uniq_before_pluck.rb +90 -0
  1042. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/rails/validation.rb +67 -0
  1043. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/security/json_load.rb +44 -0
  1044. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/severity.rb +76 -0
  1045. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/access_modifier_indentation.rb +80 -0
  1046. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/accessor_method_name.rb +45 -0
  1047. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/alias.rb +119 -0
  1048. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/align_array.rb +20 -0
  1049. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/align_hash.rb +266 -0
  1050. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/align_parameters.rb +69 -0
  1051. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/and_or.rb +140 -0
  1052. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/array_join.rb +30 -0
  1053. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/ascii_comments.rb +38 -0
  1054. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/ascii_identifiers.rb +36 -0
  1055. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/attr.rb +44 -0
  1056. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/auto_resource_cleanup.rb +45 -0
  1057. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/bare_percent_literals.rb +57 -0
  1058. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/begin_block.rb +16 -0
  1059. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/block_comments.rb +46 -0
  1060. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/block_delimiters.rb +230 -0
  1061. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/block_end_newline.rb +56 -0
  1062. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/braces_around_hash_parameters.rb +113 -0
  1063. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/case_equality.rb +18 -0
  1064. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/case_indentation.rb +89 -0
  1065. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/character_literal.rb +43 -0
  1066. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/class_and_module_camel_case.rb +29 -0
  1067. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/class_and_module_children.rb +69 -0
  1068. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/class_check.rb +42 -0
  1069. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/class_methods.rb +67 -0
  1070. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/class_vars.rb +23 -0
  1071. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/closing_parenthesis_indentation.rb +87 -0
  1072. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/collection_methods.rb +51 -0
  1073. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/colon_method_call.rb +40 -0
  1074. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/command_literal.rb +119 -0
  1075. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/comment_annotation.rb +62 -0
  1076. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/comment_indentation.rb +71 -0
  1077. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/conditional_assignment.rb +681 -0
  1078. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/constant_name.rb +29 -0
  1079. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/copyright.rb +89 -0
  1080. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/def_with_parentheses.rb +31 -0
  1081. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/documentation.rb +79 -0
  1082. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/documentation_method.rb +79 -0
  1083. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/dot_position.rb +88 -0
  1084. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/double_negation.rb +34 -0
  1085. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/each_for_simple_loop.rb +57 -0
  1086. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/each_with_object.rb +88 -0
  1087. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/else_alignment.rb +111 -0
  1088. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_case_condition.rb +93 -0
  1089. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_else.rb +140 -0
  1090. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_line_between_defs.rb +73 -0
  1091. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_lines.rb +60 -0
  1092. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_lines_around_access_modifier.rb +95 -0
  1093. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_lines_around_block_body.rb +41 -0
  1094. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_lines_around_class_body.rb +39 -0
  1095. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_lines_around_method_body.rb +41 -0
  1096. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_lines_around_module_body.rb +44 -0
  1097. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_literal.rb +100 -0
  1098. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/empty_method.rb +96 -0
  1099. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/encoding.rb +92 -0
  1100. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/end_block.rb +17 -0
  1101. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/end_of_line.rb +30 -0
  1102. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/even_odd.rb +56 -0
  1103. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/extra_spacing.rb +237 -0
  1104. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/file_name.rb +163 -0
  1105. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/first_array_element_line_break.rb +41 -0
  1106. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/first_hash_element_line_break.rb +33 -0
  1107. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/first_method_argument_line_break.rb +49 -0
  1108. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/first_method_parameter_line_break.rb +42 -0
  1109. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/first_parameter_indentation.rb +111 -0
  1110. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/flip_flop.rb +20 -0
  1111. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/for.rb +52 -0
  1112. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/format_string.rb +76 -0
  1113. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/frozen_string_literal_comment.rb +67 -0
  1114. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/global_vars.rb +70 -0
  1115. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/guard_clause.rb +96 -0
  1116. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/hash_syntax.rb +232 -0
  1117. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/identical_conditional_branches.rb +92 -0
  1118. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/if_inside_else.rb +48 -0
  1119. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/if_unless_modifier.rb +89 -0
  1120. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +44 -0
  1121. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/if_with_semicolon.rb +20 -0
  1122. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/implicit_runtime_error.rb +31 -0
  1123. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/indent_array.rb +114 -0
  1124. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/indent_assignment.rb +42 -0
  1125. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/indent_hash.rb +133 -0
  1126. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/indentation_consistency.rb +51 -0
  1127. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/indentation_width.rb +302 -0
  1128. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/infinite_loop.rb +92 -0
  1129. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/initial_indentation.rb +42 -0
  1130. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/inline_comment.rb +32 -0
  1131. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/lambda.rb +209 -0
  1132. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/lambda_call.rb +62 -0
  1133. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/leading_comment_space.rb +43 -0
  1134. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/line_end_concatenation.rb +115 -0
  1135. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/method_call_parentheses.rb +78 -0
  1136. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/method_called_on_do_end_block.rb +41 -0
  1137. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/method_def_parentheses.rb +83 -0
  1138. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/method_missing.rb +81 -0
  1139. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/method_name.rb +28 -0
  1140. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/missing_else.rb +73 -0
  1141. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/module_function.rb +64 -0
  1142. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_array_brace_layout.rb +81 -0
  1143. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_assignment_layout.rb +88 -0
  1144. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_block_chain.rb +42 -0
  1145. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_block_layout.rb +134 -0
  1146. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_hash_brace_layout.rb +81 -0
  1147. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_if_modifier.rb +73 -0
  1148. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_if_then.rb +41 -0
  1149. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_memoization.rb +44 -0
  1150. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_method_call_brace_layout.rb +98 -0
  1151. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_method_call_indentation.rb +196 -0
  1152. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_method_definition_brace_layout.rb +82 -0
  1153. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_operation_indentation.rb +88 -0
  1154. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/multiline_ternary_operator.rb +23 -0
  1155. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/mutable_constant.rb +63 -0
  1156. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/negated_if.rb +47 -0
  1157. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/negated_while.rb +47 -0
  1158. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/nested_modifier.rb +114 -0
  1159. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/nested_parenthesized_calls.rb +59 -0
  1160. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/nested_ternary_operator.rb +23 -0
  1161. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/next.rb +223 -0
  1162. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/nil_comparison.rb +35 -0
  1163. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/non_nil_check.rb +125 -0
  1164. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/not.rb +72 -0
  1165. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/numeric_literal_prefix.rb +97 -0
  1166. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/numeric_literals.rb +79 -0
  1167. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/numeric_predicate.rb +140 -0
  1168. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/one_line_conditional.rb +85 -0
  1169. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/op_method.rb +41 -0
  1170. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/option_hash.rb +69 -0
  1171. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/optional_arguments.rb +62 -0
  1172. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/parallel_assignment.rb +295 -0
  1173. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/parentheses_around_condition.rb +60 -0
  1174. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/percent_literal_delimiters.rb +85 -0
  1175. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/percent_q_literals.rb +49 -0
  1176. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/perl_backrefs.rb +31 -0
  1177. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/predicate_name.rb +67 -0
  1178. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/preferred_hash_methods.rb +78 -0
  1179. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/proc.rb +26 -0
  1180. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/raise_args.rb +136 -0
  1181. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/redundant_begin.rb +47 -0
  1182. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/redundant_exception.rb +55 -0
  1183. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/redundant_freeze.rb +46 -0
  1184. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/redundant_parentheses.rb +177 -0
  1185. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/redundant_return.rb +125 -0
  1186. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/redundant_self.rb +163 -0
  1187. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/regexp_literal.rb +114 -0
  1188. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/rescue_ensure_alignment.rb +86 -0
  1189. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/rescue_modifier.rb +49 -0
  1190. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/safe_navigation.rb +138 -0
  1191. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/self_assignment.rb +93 -0
  1192. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/semicolon.rb +70 -0
  1193. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/send.rb +22 -0
  1194. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/signal_exception.rb +109 -0
  1195. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/single_line_block_params.rb +68 -0
  1196. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/single_line_methods.rb +77 -0
  1197. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_after_colon.rb +42 -0
  1198. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_after_comma.rb +21 -0
  1199. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_after_method_name.rb +37 -0
  1200. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_after_not.rb +39 -0
  1201. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_after_semicolon.rb +21 -0
  1202. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_around_block_parameters.rb +109 -0
  1203. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_around_equals_in_parameter_default.rb +68 -0
  1204. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_around_keyword.rb +225 -0
  1205. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_around_operators.rb +136 -0
  1206. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_before_block_braces.rb +54 -0
  1207. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_before_comma.rb +16 -0
  1208. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_before_comment.rb +27 -0
  1209. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_before_first_arg.rb +59 -0
  1210. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_before_semicolon.rb +16 -0
  1211. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_in_lambda_literal.rb +87 -0
  1212. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_inside_array_percent_literal.rb +53 -0
  1213. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_inside_block_braces.rb +158 -0
  1214. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_inside_brackets.rb +20 -0
  1215. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_inside_hash_literal_braces.rb +150 -0
  1216. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_inside_parens.rb +16 -0
  1217. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_inside_percent_literal_delimiters.rb +64 -0
  1218. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_inside_range_literal.rb +63 -0
  1219. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/space_inside_string_interpolation.rb +65 -0
  1220. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/special_global_vars.rb +156 -0
  1221. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +112 -0
  1222. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/string_literals.rb +102 -0
  1223. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/string_literals_in_interpolation.rb +30 -0
  1224. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/string_methods.rb +31 -0
  1225. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/struct_inheritance.rb +43 -0
  1226. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/symbol_array.rb +106 -0
  1227. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/symbol_literal.rb +32 -0
  1228. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/symbol_proc.rb +143 -0
  1229. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/tab.rb +57 -0
  1230. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/ternary_parentheses.rb +172 -0
  1231. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/trailing_blank_lines.rb +78 -0
  1232. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +70 -0
  1233. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/trailing_comma_in_literal.rb +56 -0
  1234. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/trailing_underscore_variable.rb +110 -0
  1235. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/trailing_whitespace.rb +28 -0
  1236. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/trivial_accessors.rb +176 -0
  1237. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/unless_else.rb +43 -0
  1238. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/unneeded_capital_w.rb +42 -0
  1239. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/unneeded_interpolation.rb +98 -0
  1240. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/unneeded_percent_q.rb +96 -0
  1241. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/variable_interpolation.rb +44 -0
  1242. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/variable_name.rb +39 -0
  1243. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/variable_number.rb +78 -0
  1244. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/when_then.rb +22 -0
  1245. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/while_until_do.rb +40 -0
  1246. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/while_until_modifier.rb +40 -0
  1247. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/word_array.rb +160 -0
  1248. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/style/zero_length_predicate.rb +83 -0
  1249. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/team.rb +189 -0
  1250. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/util.rb +276 -0
  1251. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/variable_force/assignment.rb +97 -0
  1252. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/variable_force/locatable.rb +200 -0
  1253. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/variable_force/reference.rb +51 -0
  1254. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/variable_force/scope.rb +91 -0
  1255. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/variable_force/variable.rb +102 -0
  1256. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/variable_force/variable_table.rb +128 -0
  1257. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/variable_force.rb +458 -0
  1258. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/error.rb +11 -0
  1259. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/formatter/base_formatter.rb +123 -0
  1260. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/formatter/clang_style_formatter.rb +54 -0
  1261. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/formatter/colorizable.rb +41 -0
  1262. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/formatter/disabled_config_formatter.rb +180 -0
  1263. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/formatter/disabled_lines_formatter.rb +57 -0
  1264. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/formatter/emacs_style_formatter.rb +24 -0
  1265. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/formatter/file_list_formatter.rb +19 -0
  1266. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/formatter/formatter_set.rb +102 -0
  1267. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/formatter/fuubar_style_formatter.rb +80 -0
  1268. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/formatter/html_formatter.rb +133 -0
  1269. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/formatter/json_formatter.rb +74 -0
  1270. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/formatter/offense_count_formatter.rb +55 -0
  1271. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/formatter/progress_formatter.rb +63 -0
  1272. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/formatter/simple_text_formatter.rb +134 -0
  1273. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/formatter/text_util.rb +20 -0
  1274. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/formatter/worst_offenders_formatter.rb +60 -0
  1275. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/name_similarity.rb +21 -0
  1276. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/node_pattern.rb +542 -0
  1277. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/options.rb +320 -0
  1278. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/path_util.rb +31 -0
  1279. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/processed_source.rb +151 -0
  1280. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/rake_task.rb +86 -0
  1281. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/remote_config.rb +66 -0
  1282. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/result_cache.rb +176 -0
  1283. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/rspec/cop_helper.rb +87 -0
  1284. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/rspec/host_environment_simulation_helper.rb +32 -0
  1285. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/rspec/shared_contexts.rb +78 -0
  1286. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/rspec/shared_examples.rb +100 -0
  1287. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/rspec/support.rb +8 -0
  1288. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/runner.rb +323 -0
  1289. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/string_interpreter.rb +57 -0
  1290. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/string_util.rb +156 -0
  1291. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/target_finder.rb +139 -0
  1292. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/token.rb +25 -0
  1293. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/version.rb +21 -0
  1294. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/warning.rb +11 -0
  1295. data/vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop.rb +452 -0
  1296. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/LICENSE.txt +19 -0
  1297. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/README.md +38 -0
  1298. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/Rakefile +2 -0
  1299. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/base.rb +183 -0
  1300. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/calculators/length.rb +99 -0
  1301. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/calculators/running_average.rb +9 -0
  1302. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components/bar.rb +96 -0
  1303. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components/percentage.rb +29 -0
  1304. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components/rate.rb +43 -0
  1305. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components/time.rb +107 -0
  1306. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components/title.rb +13 -0
  1307. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components.rb +5 -0
  1308. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/errors/invalid_progress_error.rb +4 -0
  1309. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/format/formatter.rb +27 -0
  1310. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/format/molecule.rb +59 -0
  1311. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/format/string.rb +36 -0
  1312. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/format.rb +3 -0
  1313. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/output.rb +68 -0
  1314. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/outputs/non_tty.rb +47 -0
  1315. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/outputs/null.rb +33 -0
  1316. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/outputs/tty.rb +32 -0
  1317. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/progress.rb +118 -0
  1318. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/refinements/enumerator.rb +25 -0
  1319. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/refinements.rb +1 -0
  1320. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/throttle.rb +25 -0
  1321. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/time.rb +30 -0
  1322. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/timer.rb +72 -0
  1323. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/version.rb +3 -0
  1324. data/vendor/bundle/ruby/2.3.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar.rb +18 -0
  1325. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/CHANGELOG.md +411 -0
  1326. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/CONTRIBUTING.md +48 -0
  1327. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/Gemfile +38 -0
  1328. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/MIT-LICENSE +20 -0
  1329. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/README.md +633 -0
  1330. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/Rakefile +41 -0
  1331. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/cucumber.yml +13 -0
  1332. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/doc/alternate-formatters.md +36 -0
  1333. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/doc/commercial-services.md +20 -0
  1334. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/doc/editor-integration.md +13 -0
  1335. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/config_autoload.feature +46 -0
  1336. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/config_command_name.feature +45 -0
  1337. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/config_coverage_dir.feature +33 -0
  1338. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/config_deactivate_merging.feature +42 -0
  1339. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/config_formatters.feature +77 -0
  1340. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/config_merge_timeout.feature +39 -0
  1341. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/config_nocov_token.feature +79 -0
  1342. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/config_profiles.feature +44 -0
  1343. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/config_project_name.feature +27 -0
  1344. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/config_styles.feature +121 -0
  1345. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/config_tracked_files.feature +29 -0
  1346. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/cucumber_basic.feature +29 -0
  1347. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/maximum_coverage_drop.feature +36 -0
  1348. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/merging_test_unit_and_rspec.feature +44 -0
  1349. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/minimum_coverage.feature +59 -0
  1350. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/refuse_coverage_drop.feature +35 -0
  1351. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/rspec_basic.feature +32 -0
  1352. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/rspec_fails_on_initialization.feature +14 -0
  1353. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/rspec_groups_and_filters_basic.feature +29 -0
  1354. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/rspec_groups_and_filters_complex.feature +37 -0
  1355. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/rspec_groups_using_filter_class.feature +41 -0
  1356. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/rspec_without_simplecov.feature +20 -0
  1357. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/skipping_code_blocks_manually.feature +70 -0
  1358. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/step_definitions/html_steps.rb +44 -0
  1359. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/step_definitions/simplecov_steps.rb +68 -0
  1360. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/step_definitions/transformers.rb +13 -0
  1361. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/step_definitions/web_steps.rb +64 -0
  1362. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/support/env.rb +50 -0
  1363. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/test_unit_basic.feature +34 -0
  1364. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/test_unit_groups_and_filters_basic.feature +29 -0
  1365. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/test_unit_groups_and_filters_complex.feature +35 -0
  1366. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/test_unit_groups_using_filter_class.feature +40 -0
  1367. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/test_unit_without_simplecov.feature +20 -0
  1368. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/features/unicode_compatiblity.feature +67 -0
  1369. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/command_guesser.rb +59 -0
  1370. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/configuration.rb +296 -0
  1371. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/defaults.rb +122 -0
  1372. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/exit_codes.rb +8 -0
  1373. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/file_list.rb +59 -0
  1374. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/filter.rb +54 -0
  1375. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/formatter/multi_formatter.rb +32 -0
  1376. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/formatter/simple_formatter.rb +23 -0
  1377. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/formatter.rb +8 -0
  1378. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/jruby_fix.rb +42 -0
  1379. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/last_run.rb +22 -0
  1380. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/merge_helpers.rb +37 -0
  1381. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/no_defaults.rb +2 -0
  1382. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/profiles.rb +31 -0
  1383. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/railtie.rb +7 -0
  1384. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/railties/tasks.rake +11 -0
  1385. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/result.rb +87 -0
  1386. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/result_merger.rb +88 -0
  1387. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/source_file.rb +194 -0
  1388. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov/version.rb +25 -0
  1389. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/lib/simplecov.rb +184 -0
  1390. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/simplecov.gemspec +27 -0
  1391. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/1_8_fallbacks_spec.rb +31 -0
  1392. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/command_guesser_spec.rb +48 -0
  1393. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/deleted_source_spec.rb +12 -0
  1394. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/Gemfile +6 -0
  1395. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/Rakefile +8 -0
  1396. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/cucumber.yml +13 -0
  1397. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/features/step_definitions/my_steps.rb +22 -0
  1398. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/features/support/env.rb +12 -0
  1399. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/features/test_stuff.feature +6 -0
  1400. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/lib/faked_project/framework_specific.rb +18 -0
  1401. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/lib/faked_project/meta_magic.rb +24 -0
  1402. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/lib/faked_project/some_class.rb +28 -0
  1403. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/lib/faked_project/untested_class.rb +11 -0
  1404. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/lib/faked_project.rb +11 -0
  1405. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/spec/faked_spec.rb +11 -0
  1406. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/spec/forking_spec.rb +8 -0
  1407. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/spec/meta_magic_spec.rb +15 -0
  1408. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/spec/some_class_spec.rb +13 -0
  1409. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/spec/spec_helper.rb +11 -0
  1410. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/test/faked_test.rb +11 -0
  1411. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/test/meta_magic_test.rb +13 -0
  1412. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/test/some_class_test.rb +15 -0
  1413. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/faked_project/test/test_helper.rb +12 -0
  1414. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/file_list_spec.rb +50 -0
  1415. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/filters_spec.rb +98 -0
  1416. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/fixtures/app/controllers/sample_controller.rb +10 -0
  1417. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/fixtures/app/models/user.rb +10 -0
  1418. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/fixtures/deleted_source_sample.rb +15 -0
  1419. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/fixtures/frameworks/rspec_bad.rb +9 -0
  1420. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/fixtures/frameworks/rspec_good.rb +9 -0
  1421. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/fixtures/frameworks/testunit_bad.rb +9 -0
  1422. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/fixtures/frameworks/testunit_good.rb +9 -0
  1423. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/fixtures/iso-8859.rb +3 -0
  1424. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/fixtures/resultset1.rb +4 -0
  1425. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/fixtures/resultset2.rb +4 -0
  1426. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/fixtures/sample.rb +16 -0
  1427. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/fixtures/utf-8.rb +3 -0
  1428. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/helper.rb +24 -0
  1429. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/merge_helpers_spec.rb +126 -0
  1430. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/multi_formatter_spec.rb +20 -0
  1431. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/result_spec.rb +209 -0
  1432. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/return_codes_spec.rb +34 -0
  1433. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/source_file_line_spec.rb +155 -0
  1434. data/vendor/bundle/ruby/2.3.0/gems/simplecov-0.13.0/spec/source_file_spec.rb +77 -0
  1435. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/CHANGELOG.md +13 -0
  1436. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/Gemfile +34 -0
  1437. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/Guardfile +12 -0
  1438. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/LICENSE +20 -0
  1439. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/README.md +30 -0
  1440. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/Rakefile +41 -0
  1441. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/assets/javascripts/application.js +127 -0
  1442. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/assets/javascripts/libraries/jquery-1.6.2.min.js +18 -0
  1443. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/assets/javascripts/plugins/highlight.pack.js +1 -0
  1444. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/assets/javascripts/plugins/jquery.colorbox.js +1090 -0
  1445. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/assets/javascripts/plugins/jquery.dataTables.min.js +152 -0
  1446. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/assets/javascripts/plugins/jquery.timeago.js +141 -0
  1447. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/assets/javascripts/plugins/jquery.url.js +174 -0
  1448. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/assets/stylesheets/application.css +3 -0
  1449. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/assets/stylesheets/plugins/highlight.css +129 -0
  1450. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/assets/stylesheets/plugins/jquery-ui-1.8.4.custom.css +295 -0
  1451. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/assets/stylesheets/plugins/jquery.colorbox.css +52 -0
  1452. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/assets/stylesheets/reset.css +103 -0
  1453. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/assets/stylesheets/screen.css.sass +220 -0
  1454. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/lib/simplecov-html/version.rb +7 -0
  1455. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/lib/simplecov-html.rb +110 -0
  1456. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/application.css +799 -0
  1457. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/application.js +1707 -0
  1458. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/colorbox/border.png +0 -0
  1459. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/colorbox/controls.png +0 -0
  1460. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/colorbox/loading.gif +0 -0
  1461. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/colorbox/loading_background.png +0 -0
  1462. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/favicon_green.png +0 -0
  1463. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/favicon_red.png +0 -0
  1464. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/favicon_yellow.png +0 -0
  1465. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/loading.gif +0 -0
  1466. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/magnify.png +0 -0
  1467. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  1468. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  1469. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  1470. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  1471. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  1472. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  1473. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  1474. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  1475. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-icons_222222_256x240.png +0 -0
  1476. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  1477. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-icons_454545_256x240.png +0 -0
  1478. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-icons_888888_256x240.png +0 -0
  1479. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/public/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  1480. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/simplecov-html.gemspec +22 -0
  1481. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/test/helper.rb +4 -0
  1482. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/test/test_simple_cov-html.rb +8 -0
  1483. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/views/file_list.erb +45 -0
  1484. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/views/layout.erb +41 -0
  1485. data/vendor/bundle/ruby/2.3.0/gems/simplecov-html-0.10.2/views/source_file.erb +23 -0
  1486. data/vendor/bundle/ruby/2.3.0/gems/unicode-display_width-1.3.0/CHANGELOG.md +96 -0
  1487. data/vendor/bundle/ruby/2.3.0/gems/unicode-display_width-1.3.0/MIT-LICENSE.txt +22 -0
  1488. data/vendor/bundle/ruby/2.3.0/gems/unicode-display_width-1.3.0/README.md +120 -0
  1489. data/vendor/bundle/ruby/2.3.0/gems/unicode-display_width-1.3.0/Rakefile +64 -0
  1490. data/vendor/bundle/ruby/2.3.0/gems/unicode-display_width-1.3.0/data/display_width.marshal.gz +0 -0
  1491. data/vendor/bundle/ruby/2.3.0/gems/unicode-display_width-1.3.0/lib/unicode/display_width/constants.rb +8 -0
  1492. data/vendor/bundle/ruby/2.3.0/gems/unicode-display_width-1.3.0/lib/unicode/display_width/index.rb +7 -0
  1493. data/vendor/bundle/ruby/2.3.0/gems/unicode-display_width-1.3.0/lib/unicode/display_width/no_string_ext.rb +7 -0
  1494. data/vendor/bundle/ruby/2.3.0/gems/unicode-display_width-1.3.0/lib/unicode/display_width/string_ext.rb +17 -0
  1495. data/vendor/bundle/ruby/2.3.0/gems/unicode-display_width-1.3.0/lib/unicode/display_width.rb +51 -0
  1496. data/vendor/bundle/ruby/2.3.0/gems/unicode-display_width-1.3.0/spec/display_width_spec.rb +156 -0
  1497. data/vendor/bundle/ruby/2.3.0/gems/unicode-display_width-1.3.0/unicode-display_width.gemspec +18 -0
  1498. data/vendor/bundle/ruby/2.3.0/specifications/ast-2.3.0.gemspec +59 -0
  1499. data/vendor/bundle/ruby/2.3.0/specifications/byebug-9.1.0.gemspec +38 -0
  1500. data/vendor/bundle/ruby/2.3.0/specifications/codeclimate-test-reporter-1.0.8.gemspec +50 -0
  1501. data/vendor/bundle/ruby/2.3.0/specifications/diff-lcs-1.3.gemspec +61 -0
  1502. data/vendor/bundle/ruby/2.3.0/specifications/docile-1.1.5.gemspec +48 -0
  1503. data/vendor/bundle/ruby/2.3.0/specifications/json-2.1.0.gemspec +0 -0
  1504. data/vendor/bundle/ruby/2.3.0/specifications/parser-2.4.0.0.gemspec +61 -0
  1505. data/vendor/bundle/ruby/2.3.0/specifications/powerpack-0.1.1.gemspec +41 -0
  1506. data/vendor/bundle/ruby/2.3.0/specifications/rainbow-2.2.2.gemspec +39 -0
  1507. data/vendor/bundle/ruby/2.3.0/specifications/rake-12.1.0.gemspec +49 -0
  1508. data/vendor/bundle/ruby/2.3.0/specifications/rspec-3.6.0.gemspec +42 -0
  1509. data/vendor/bundle/ruby/2.3.0/specifications/rspec-core-3.6.0.gemspec +62 -0
  1510. data/vendor/bundle/ruby/2.3.0/specifications/rspec-expectations-3.6.0.gemspec +50 -0
  1511. data/vendor/bundle/ruby/2.3.0/specifications/rspec-mocks-3.6.0.gemspec +50 -0
  1512. data/vendor/bundle/ruby/2.3.0/specifications/rspec-support-3.6.0.gemspec +41 -0
  1513. data/vendor/bundle/ruby/2.3.0/specifications/rubocop-0.46.0.gemspec +51 -0
  1514. data/vendor/bundle/ruby/2.3.0/specifications/ruby-progressbar-1.9.0.gemspec +46 -0
  1515. data/vendor/bundle/ruby/2.3.0/specifications/simplecov-0.13.0.gemspec +42 -0
  1516. data/vendor/bundle/ruby/2.3.0/specifications/simplecov-html-0.10.2.gemspec +33 -0
  1517. data/vendor/bundle/ruby/2.3.0/specifications/unicode-display_width-1.3.0.gemspec +38 -0
  1518. metadata +1525 -3
@@ -0,0 +1,3376 @@
1
+ # encoding: ascii-8bit
2
+
3
+ require 'helper'
4
+ require 'complex'
5
+
6
+ class TestLexer < Minitest::Test
7
+ def setup_lexer(version)
8
+ @lex = Parser::Lexer.new(version)
9
+
10
+ @lex.comments = []
11
+ @lex.diagnostics = Parser::Diagnostic::Engine.new
12
+ @lex.diagnostics.all_errors_are_fatal = true
13
+ # @lex.diagnostics.consumer = lambda { |diag| $stderr.puts "", diag.render }
14
+ end
15
+
16
+ def setup
17
+ setup_lexer 18
18
+ end
19
+
20
+ #
21
+ # Tools
22
+ #
23
+
24
+ def utf(str)
25
+ if str.respond_to?(:force_encoding)
26
+ str.force_encoding(Encoding::UTF_8)
27
+ else
28
+ str
29
+ end
30
+ end
31
+
32
+ #
33
+ # Additional matchers
34
+ #
35
+
36
+ def refute_scanned(s, *args)
37
+ assert_raises Parser::SyntaxError do
38
+ assert_scanned(s, *args)
39
+ end
40
+ end
41
+
42
+ def assert_escape(expected, input)
43
+ source_buffer = Parser::Source::Buffer.new('(assert_escape)')
44
+
45
+ if defined?(Encoding)
46
+ source_buffer.source = "\"\\#{input}\"".encode(input.encoding)
47
+ else
48
+ source_buffer.source = "\"\\#{input}\""
49
+ end
50
+
51
+ @lex.reset
52
+ @lex.source_buffer = source_buffer
53
+
54
+ lex_token, (lex_value, *) = @lex.advance
55
+
56
+ if lex_value.respond_to?(:force_encoding)
57
+ lex_value.force_encoding(Encoding::BINARY)
58
+ end
59
+
60
+ assert_equal [:tSTRING, expected],
61
+ [lex_token, lex_value],
62
+ source_buffer.source
63
+ end
64
+
65
+ def refute_escape(input)
66
+ err = assert_raises Parser::SyntaxError do
67
+ @lex.state = :expr_beg
68
+ assert_scanned "%Q[\\#{input}]"
69
+ end
70
+ assert_equal :fatal, err.diagnostic.level
71
+ end
72
+
73
+ def assert_lex_fname(name, type, range)
74
+ begin_pos, end_pos = range
75
+ assert_scanned("def #{name} ",
76
+ :kDEF, 'def', [0, 3],
77
+ type, name, [begin_pos + 4, end_pos + 4])
78
+
79
+ assert_equal :expr_endfn, @lex.state
80
+ end
81
+
82
+ def assert_scanned(input, *args)
83
+ source_buffer = Parser::Source::Buffer.new('(assert_scanned)')
84
+ source_buffer.source = input
85
+
86
+ @lex.reset(false)
87
+ @lex.source_buffer = source_buffer
88
+
89
+ until args.empty? do
90
+ token, value, (begin_pos, end_pos) = args.shift(3)
91
+
92
+ lex_token, (lex_value, lex_range) = @lex.advance
93
+ assert lex_token, 'no more tokens'
94
+ assert_operator [lex_token, lex_value], :eql?, [token, value], input
95
+ assert_equal begin_pos, lex_range.begin_pos
96
+ assert_equal end_pos, lex_range.end_pos
97
+ end
98
+
99
+ lex_token, (lex_value, *) = @lex.advance
100
+ refute lex_token, "must be empty, but had #{[lex_token, lex_value].inspect}"
101
+ end
102
+
103
+ #
104
+ # Tests
105
+ #
106
+
107
+ def test_read_escape
108
+ assert_escape "\\", "\\"
109
+ assert_escape "\n", "n"
110
+ assert_escape "\t", "t"
111
+ assert_escape "\r", "r"
112
+ assert_escape "\f", "f"
113
+ assert_escape "\13", "v"
114
+ assert_escape "\0", "0"
115
+ assert_escape "\07", "a"
116
+ assert_escape "\007", "a"
117
+ assert_escape "\033", "e"
118
+ assert_escape "\377", "377"
119
+ assert_escape "\377", "xff"
120
+ assert_escape "\010", "b"
121
+ assert_escape " ", "s"
122
+ assert_escape "q", "q" # plain vanilla escape
123
+ end
124
+
125
+ def test_read_escape_c
126
+ assert_escape "\030", "C-x"
127
+ assert_escape "\030", "cx"
128
+ assert_escape "\230", 'C-\M-x'
129
+ assert_escape "\230", 'c\M-x'
130
+
131
+ assert_escape "\177", "C-?"
132
+ assert_escape "\177", "c?"
133
+ assert_escape "\r", "cM"
134
+ end
135
+
136
+ def test_read_escape_m
137
+ assert_escape "\370", "M-x"
138
+ assert_escape "\230", 'M-\C-x'
139
+ assert_escape "\230", 'M-\cx'
140
+ end
141
+
142
+ def test_read_escape_errors
143
+ refute_escape ""
144
+
145
+ refute_escape "M"
146
+ refute_escape "M-"
147
+ refute_escape "Mx"
148
+
149
+ refute_escape "Cx"
150
+ refute_escape "C"
151
+ refute_escape "C-"
152
+
153
+ refute_escape "c"
154
+
155
+ refute_escape "x"
156
+ end
157
+
158
+ def test_read_escape_unicode__19
159
+ if RUBY_VERSION >= '1.9'
160
+ assert_escape "\x09", 'u{9}'
161
+ assert_escape "\x31", 'u{31}'
162
+ assert_escape "\x09\x01", 'u{9 1}'
163
+
164
+ assert_escape "\xc4\xa3", utf('u0123')
165
+ assert_escape "\xc4\xa3\xc3\xb0\xeb\x84\xa3", utf('u{123 f0 B123}')
166
+ end
167
+ end
168
+
169
+ def test_read_escape_unicode_bad__19
170
+ if RUBY_VERSION >= '1.9'
171
+ refute_escape 'u123'
172
+ refute_escape 'u{}'
173
+ refute_escape 'u{123 f0h}'
174
+ refute_escape 'u{123 f0'
175
+ end
176
+ end
177
+
178
+ def test_ambiguous_uminus
179
+ assert_scanned("m -3",
180
+ :tIDENTIFIER, "m", [0, 1],
181
+ :tUMINUS_NUM, "-", [2, 3],
182
+ :tINTEGER, 3, [3, 4])
183
+ end
184
+
185
+ def test_ambiguous_uplus
186
+ assert_scanned("m +3",
187
+ :tIDENTIFIER, "m", [0, 1],
188
+ :tINTEGER, 3, [3, 4])
189
+ end
190
+
191
+ def test_and
192
+ assert_scanned "&", :tAMPER, "&", [0, 1]
193
+ end
194
+
195
+ def test_and2
196
+ @lex.state = :expr_end
197
+
198
+ assert_scanned "&&", :tANDOP, "&&", [0, 2]
199
+ end
200
+
201
+ def test_and2_equals
202
+ @lex.state = :expr_end
203
+
204
+ assert_scanned "&&=", :tOP_ASGN, "&&", [0, 3]
205
+ end
206
+
207
+ def test_and_arg
208
+ @lex.state = :expr_arg
209
+
210
+ assert_scanned(" &y",
211
+ :tAMPER, "&", [1, 2],
212
+ :tIDENTIFIER, "y", [2, 3])
213
+ end
214
+
215
+ def test_and_equals
216
+ @lex.state = :expr_end
217
+
218
+ assert_scanned "&=", :tOP_ASGN, "&", [0, 2]
219
+ end
220
+
221
+ def test_and_expr
222
+ @lex.state = :expr_arg
223
+
224
+ assert_scanned("x & y",
225
+ :tIDENTIFIER, "x", [0, 1],
226
+ :tAMPER2, "&", [2, 3],
227
+ :tIDENTIFIER, "y", [4, 5])
228
+ end
229
+
230
+ def test_and_meth
231
+ assert_lex_fname "&", :tAMPER2, [0, 1]
232
+ end
233
+
234
+ def test_and_dot_arg
235
+ @lex.state = :expr_arg
236
+
237
+ assert_scanned "&.", :tANDDOT, "&.", [0, 2]
238
+ end
239
+
240
+ def test_and_dot_cmdarg
241
+ @lex.state = :expr_cmdarg
242
+
243
+ assert_scanned "&.", :tANDDOT, "&.", [0, 2]
244
+ end
245
+
246
+ def test_assoc
247
+ assert_scanned "=>", :tASSOC, "=>", [0, 2]
248
+ end
249
+
250
+ def test_label__18
251
+ assert_scanned("{a:b",
252
+ :tLBRACE, "{", [0, 1],
253
+ :tIDENTIFIER, "a", [1, 2],
254
+ :tSYMBOL, "b", [2, 4])
255
+ end
256
+
257
+ def test_label_in_params__18
258
+ assert_scanned("foo(a:b",
259
+ :tIDENTIFIER, "foo", [0, 3],
260
+ :tLPAREN2, "(", [3, 4],
261
+ :tIDENTIFIER, "a", [4, 5],
262
+ :tSYMBOL, "b", [5, 7])
263
+ end
264
+
265
+ def test_label__19
266
+ setup_lexer 19
267
+
268
+ assert_scanned("{a:b",
269
+ :tLBRACE, "{", [0, 1],
270
+ :tLABEL, "a", [1, 3],
271
+ :tIDENTIFIER, "b", [3, 4])
272
+ end
273
+
274
+ def test_label_in_params__19
275
+ setup_lexer 19
276
+
277
+ assert_scanned("foo(a:b",
278
+ :tIDENTIFIER, "foo", [0, 3],
279
+ :tLPAREN2, "(", [3, 4],
280
+ :tLABEL, "a", [4, 6],
281
+ :tIDENTIFIER, "b", [6, 7])
282
+ end
283
+
284
+ def test_label_fid__19
285
+ setup_lexer 19
286
+
287
+ assert_scanned("{a?:true",
288
+ :tLBRACE, '{', [0, 1],
289
+ :tLABEL, 'a?', [1, 4],
290
+ :kTRUE, 'true', [4, 8])
291
+ end
292
+
293
+ def test_label__22
294
+ setup_lexer 22
295
+
296
+ assert_scanned("{'a':",
297
+ :tLBRACE, '{', [0, 1],
298
+ :tSTRING_BEG, "'", [1, 2],
299
+ :tSTRING_CONTENT, 'a', [2, 3],
300
+ :tLABEL_END, "'", [3, 5])
301
+ end
302
+
303
+ def test_label_nested__22
304
+ setup_lexer 22
305
+
306
+ assert_scanned("{'a\":':",
307
+ :tLBRACE, '{', [0, 1],
308
+ :tSTRING_BEG, "'", [1, 2],
309
+ :tSTRING_CONTENT, 'a":', [2, 5],
310
+ :tLABEL_END, "'", [5, 7])
311
+ end
312
+
313
+ def test_label_colon2__22
314
+ setup_lexer 22
315
+
316
+ assert_scanned("{'a'::",
317
+ :tLBRACE, '{', [0, 1],
318
+ :tSTRING, "a", [1, 4],
319
+ :tCOLON2, '::', [4, 6])
320
+ end
321
+
322
+ def test_pct_string_colon__22
323
+ setup_lexer 22
324
+
325
+ assert_scanned("{%'a':",
326
+ :tLBRACE, '{', [0, 1],
327
+ :tSTRING_BEG, "%'", [1, 3],
328
+ :tSTRING_CONTENT, 'a', [3, 4],
329
+ :tSTRING_END, "'", [4, 5],
330
+ :tCOLON, ':', [5, 6])
331
+ end
332
+
333
+ def test_command_start__19
334
+ setup_lexer 19
335
+
336
+ %w[case elsif for in until when while
337
+ if unless and or].each do |keyword|
338
+ token = "k#{keyword.upcase}".to_sym
339
+
340
+ @lex.reset
341
+ assert_scanned("#{keyword} a:b",
342
+ token, keyword, [0, keyword.length],
343
+ :tIDENTIFIER, "a", [keyword.length + 1, keyword.length + 2],
344
+ :tSYMBOL, "b", [keyword.length + 2, keyword.length + 4])
345
+ end
346
+ end
347
+
348
+ def test_mod_not_command_start__19
349
+ setup_lexer 19
350
+
351
+ %w[if unless while until rescue].each do |keyword|
352
+ token = "k#{keyword.upcase}_MOD".to_sym
353
+
354
+ @lex.state = :expr_end
355
+ assert_scanned("#{keyword} a:b",
356
+ token, keyword, [0, keyword.length],
357
+ :tLABEL, "a", [keyword.length + 1, keyword.length + 3],
358
+ :tIDENTIFIER, "b", [keyword.length + 3, keyword.length + 4])
359
+ end
360
+ end
361
+
362
+ def test_back_ref
363
+ assert_scanned("[$&, $`, $', $+]",
364
+ :tLBRACK, "[", [0, 1],
365
+ :tBACK_REF, "$&", [1, 3], :tCOMMA, ",", [3, 4],
366
+ :tBACK_REF, "$`", [5, 7], :tCOMMA, ",", [7, 8],
367
+ :tBACK_REF, "$'", [9, 11], :tCOMMA, ",", [11, 12],
368
+ :tBACK_REF, "$+", [13, 15],
369
+ :tRBRACK, "]", [15, 16])
370
+ end
371
+
372
+ def test_backslash
373
+ assert_scanned("1 \\\n+ 2",
374
+ :tINTEGER, 1, [0, 1],
375
+ :tPLUS, "+", [4, 5],
376
+ :tINTEGER, 2, [6, 7])
377
+ end
378
+
379
+ def test_backslash_bad
380
+ refute_scanned("1 \\ + 2",
381
+ :tINTEGER, 1, [0, 1])
382
+ end
383
+
384
+ def test_backtick
385
+ assert_scanned("`ls`",
386
+ :tXSTRING_BEG, "`", [0, 1],
387
+ :tSTRING_CONTENT, "ls", [1, 3],
388
+ :tSTRING_END, "`", [3, 4])
389
+ end
390
+
391
+ def test_backtick_cmdarg
392
+ @lex.state = :expr_dot
393
+ assert_scanned("\n`", :tBACK_REF2, "`", [1, 2]) # \n ensures expr_cmd
394
+
395
+ assert_equal :expr_arg, @lex.state
396
+ end
397
+
398
+ def test_backtick_dot
399
+ @lex.state = :expr_dot
400
+ assert_scanned("a.`(3)",
401
+ :tIDENTIFIER, "a", [0, 1],
402
+ :tDOT, ".", [1, 2],
403
+ :tBACK_REF2, "`", [2, 3],
404
+ :tLPAREN2, "(", [3, 4],
405
+ :tINTEGER, 3, [4, 5],
406
+ :tRPAREN, ")", [5, 6])
407
+ end
408
+
409
+ def test_backtick_method
410
+ @lex.state = :expr_fname
411
+ assert_scanned("`", :tBACK_REF2, "`", [0, 1])
412
+ assert_equal :expr_endfn, @lex.state
413
+ end
414
+
415
+ def test_bad_char
416
+ refute_scanned(" \010 ")
417
+ end
418
+
419
+ def test_bang
420
+ assert_scanned "!", :tBANG, "!", [0, 1]
421
+ end
422
+
423
+ def test_bang_equals
424
+ assert_scanned "!=", :tNEQ, "!=", [0, 2]
425
+ end
426
+
427
+ def test_bang_tilde
428
+ assert_scanned "!~", :tNMATCH, "!~", [0, 2]
429
+ end
430
+
431
+ def test_def_ubang
432
+ setup_lexer(20)
433
+
434
+ @lex.state = :expr_fname
435
+ assert_scanned '!@', :tBANG, '!@', [0, 2]
436
+ end
437
+
438
+ def test_carat
439
+ assert_scanned "^", :tCARET, "^", [0, 1]
440
+ end
441
+
442
+ def test_carat_equals
443
+ assert_scanned "^=", :tOP_ASGN, "^", [0, 2]
444
+ end
445
+
446
+ def test_colon2
447
+ assert_scanned("A::B",
448
+ :tCONSTANT, "A", [0, 1],
449
+ :tCOLON2, "::", [1, 3],
450
+ :tCONSTANT, "B", [3, 4])
451
+
452
+ @lex.state = :expr_arg
453
+ assert_scanned("::Array",
454
+ :tCOLON2, "::", [0, 2],
455
+ :tCONSTANT, "Array", [2, 7])
456
+ end
457
+
458
+ def test_colon3
459
+ assert_scanned("::Array",
460
+ :tCOLON3, "::", [0, 2],
461
+ :tCONSTANT, "Array", [2, 7])
462
+
463
+ @lex.state = :expr_arg
464
+ assert_scanned(" ::Array",
465
+ :tCOLON3, "::", [1, 3],
466
+ :tCONSTANT, "Array", [3, 8])
467
+ end
468
+
469
+ def test_comma
470
+ assert_scanned ",", :tCOMMA, ",", [0, 1]
471
+ end
472
+
473
+ def test_comment
474
+ assert_scanned("1 # one\n# two\n2",
475
+ :tINTEGER, 1, [0, 1],
476
+ :tNL, nil, [7, 8],
477
+ :tINTEGER, 2, [14, 15])
478
+
479
+ assert_equal 2, @lex.comments.length
480
+ assert_equal '# one', @lex.comments[0].text
481
+ assert_equal '# two', @lex.comments[1].text
482
+ end
483
+
484
+ def test_comment_expr_beg
485
+ assert_scanned("{#1\n}",
486
+ :tLBRACE, "{", [0, 1],
487
+ :tRCURLY, "}", [4, 5])
488
+ end
489
+
490
+ def test_comment_begin
491
+ assert_scanned("=begin\nblah\nblah\n=end\n42",
492
+ :tINTEGER, 42, [22, 24])
493
+ assert_equal 1, @lex.comments.length
494
+ assert_equal "=begin\nblah\nblah\n=end\n", @lex.comments[0].text
495
+ end
496
+
497
+ def test_comment_begin_bad
498
+ refute_scanned("=begin\nblah\nblah\n")
499
+ end
500
+
501
+ def test_comment_begin_not_comment
502
+ assert_scanned("beginfoo = 5\np x \\\n=beginfoo",
503
+ :tIDENTIFIER, "beginfoo", [0, 8],
504
+ :tEQL, "=", [9, 10],
505
+ :tINTEGER, 5, [11, 12],
506
+ :tNL, nil, [12, 13],
507
+ :tIDENTIFIER, "p", [13, 14],
508
+ :tIDENTIFIER, "x", [15, 16],
509
+ :tEQL, "=", [19, 20],
510
+ :tIDENTIFIER, "beginfoo", [20, 28])
511
+ end
512
+
513
+ def test_comment_begin_space
514
+ assert_scanned("=begin blah\nblah\n=end\n")
515
+
516
+ assert_equal 1, @lex.comments.length
517
+ assert_equal "=begin blah\nblah\n=end\n", @lex.comments[0].text
518
+ end
519
+
520
+ def test_comment_end_space_and_text
521
+ assert_scanned("=begin blah\nblah\n=end blab\n")
522
+
523
+ assert_equal 1, @lex.comments.length
524
+ assert_equal "=begin blah\nblah\n=end blab\n", @lex.comments[0].text
525
+ end
526
+
527
+ def test_comment_eos
528
+ assert_scanned("# comment")
529
+ end
530
+
531
+ def test_constant
532
+ assert_scanned("ArgumentError",
533
+ :tCONSTANT, "ArgumentError", [0, 13])
534
+ end
535
+
536
+ def test_constant_semi
537
+ assert_scanned("ArgumentError;",
538
+ :tCONSTANT, "ArgumentError", [0, 13],
539
+ :tSEMI, ";", [13, 14])
540
+ end
541
+
542
+ def test_cvar
543
+ assert_scanned "@@blah", :tCVAR, "@@blah", [0, 6]
544
+ end
545
+
546
+ def test_cvar_bad
547
+ refute_scanned "@@1"
548
+ end
549
+
550
+ def test_div
551
+ assert_scanned("a / 2",
552
+ :tIDENTIFIER, "a", [0, 1],
553
+ :tDIVIDE, "/", [2, 3],
554
+ :tINTEGER, 2, [4, 5])
555
+ end
556
+
557
+ def test_div_equals
558
+ assert_scanned("a /= 2",
559
+ :tIDENTIFIER, "a", [0, 1],
560
+ :tOP_ASGN, "/", [2, 4],
561
+ :tINTEGER, 2, [5, 6])
562
+ end
563
+
564
+ def test_do
565
+ assert_scanned("x do 42 end",
566
+ :tIDENTIFIER, "x", [0, 1],
567
+ :kDO, "do", [2, 4],
568
+ :tINTEGER, 42, [5, 7],
569
+ :kEND, "end", [8, 11])
570
+ end
571
+
572
+ def test_do_cond
573
+ @lex.cond.push(true)
574
+
575
+ assert_scanned("x do 42 end",
576
+ :tIDENTIFIER, "x", [0, 1],
577
+ :kDO_COND, "do", [2, 4],
578
+ :tINTEGER, 42, [5, 7],
579
+ :kEND, "end", [8, 11])
580
+ end
581
+
582
+ def test_do_block
583
+ @lex.state = :expr_endarg
584
+
585
+ assert_scanned("do 42 end",
586
+ :kDO_BLOCK, "do", [0, 2],
587
+ :tINTEGER, 42, [3, 5],
588
+ :kEND, "end", [6, 9])
589
+ end
590
+
591
+ def test_do_cond
592
+ @lex.cond.push true
593
+
594
+ assert_scanned("x do 42 end",
595
+ :tIDENTIFIER, "x", [0, 1],
596
+ :kDO_COND, "do", [2, 4],
597
+ :tINTEGER, 42, [5, 7],
598
+ :kEND, "end", [8, 11])
599
+ end
600
+
601
+ def test_dot
602
+ assert_scanned ".", :tDOT, ".", [0, 1]
603
+ end
604
+
605
+ def test_dot2
606
+ assert_scanned "..", :tDOT2, "..", [0, 2]
607
+ end
608
+
609
+ def test_dot3
610
+ assert_scanned "...", :tDOT3, "...", [0, 3]
611
+ end
612
+
613
+ def test_equals
614
+ assert_scanned "=", :tEQL, "=", [0, 1]
615
+ end
616
+
617
+ def test_equals2
618
+ assert_scanned "==", :tEQ, "==", [0, 2]
619
+ end
620
+
621
+ def test_equals3
622
+ assert_scanned "===", :tEQQ, "===", [0, 3]
623
+ end
624
+
625
+ def test_equals_tilde
626
+ assert_scanned "=~", :tMATCH, "=~", [0, 2]
627
+ end
628
+
629
+ def test_float
630
+ assert_scanned "1.0", :tFLOAT, 1.0, [0, 3]
631
+ end
632
+
633
+ def test_float_bad_no_underscores
634
+ refute_scanned "1__0.0"
635
+ end
636
+
637
+ def test_float_bad_no_zero_leading
638
+ refute_scanned ".0"
639
+ end
640
+
641
+ def test_float_bad_trailing_underscore
642
+ refute_scanned "123_.0"
643
+ end
644
+
645
+ def test_float_call
646
+ assert_scanned("1.0.to_s",
647
+ :tFLOAT, 1.0, [0, 3],
648
+ :tDOT, ".", [3, 4],
649
+ :tIDENTIFIER, "to_s", [4, 8])
650
+ end
651
+
652
+ def test_float_dot_E
653
+ assert_scanned "1.0E10", :tFLOAT, 1.0e10, [0, 6]
654
+ end
655
+
656
+ def test_float_dot_E_neg
657
+ assert_scanned("-1.0E10",
658
+ :tUMINUS_NUM, "-", [0, 1],
659
+ :tFLOAT, 1.0e10, [1, 7])
660
+ end
661
+
662
+ def test_float_dot_e
663
+ assert_scanned "1.0e10", :tFLOAT, 1.0e10, [0, 6]
664
+ end
665
+
666
+ def test_float_dot_e_neg
667
+ assert_scanned("-1.0e10",
668
+ :tUMINUS_NUM, "-", [0, 1],
669
+ :tFLOAT, 1.0e10, [1, 7])
670
+ end
671
+
672
+ def test_float_e
673
+ assert_scanned "1e10", :tFLOAT, 1e10, [0, 4]
674
+ end
675
+
676
+ def test_float_e_bad_trailing_underscore
677
+ refute_scanned "123_e10"
678
+ end
679
+
680
+ def test_float_e_minus
681
+ assert_scanned "1e-10", :tFLOAT, 1e-10, [0, 5]
682
+ end
683
+
684
+ def test_float_e_neg
685
+ assert_scanned("-1e10",
686
+ :tUMINUS_NUM, "-", [0, 1],
687
+ :tFLOAT, 1e10, [1, 5])
688
+ end
689
+
690
+ def test_float_e_neg_minus
691
+ assert_scanned("-1e-10",
692
+ :tUMINUS_NUM, "-", [0, 1],
693
+ :tFLOAT, 1e-10, [1, 6])
694
+ end
695
+
696
+ def test_float_e_neg_plus
697
+ assert_scanned("-1e+10",
698
+ :tUMINUS_NUM, "-", [0, 1],
699
+ :tFLOAT, 1e10, [1, 6])
700
+ end
701
+
702
+ def test_float_e_plus
703
+ assert_scanned "1e+10", :tFLOAT, 1e10, [0, 5]
704
+ end
705
+
706
+ def test_float_e_zero
707
+ assert_scanned "0e0", :tFLOAT, 0e0, [0, 3]
708
+ end
709
+
710
+ def test_float_e_nothing
711
+ [18, 19, 20].each do |version|
712
+ setup_lexer version
713
+
714
+ refute_scanned "1end"
715
+ refute_scanned "1.1end"
716
+ end
717
+
718
+ setup_lexer 21
719
+
720
+ assert_scanned("1end",
721
+ :tINTEGER, 1, [0, 1],
722
+ :kEND, 'end', [1, 4])
723
+ assert_scanned("1.1end",
724
+ :tFLOAT, 1.1, [0, 3],
725
+ :kEND, 'end', [3, 6])
726
+ end
727
+
728
+ def test_float_neg
729
+ assert_scanned("-1.0",
730
+ :tUMINUS_NUM, "-", [0, 1],
731
+ :tFLOAT, 1.0, [1, 4])
732
+ end
733
+
734
+ def test_ge
735
+ assert_scanned("a >= 2",
736
+ :tIDENTIFIER, "a", [0, 1],
737
+ :tGEQ, ">=", [2, 4],
738
+ :tINTEGER, 2, [5, 6])
739
+ end
740
+
741
+ def test_global
742
+ assert_scanned("$blah", :tGVAR, "$blah", [0, 5])
743
+ end
744
+
745
+ def test_global_backref
746
+ assert_scanned("$`", :tBACK_REF, "$`", [0, 2])
747
+ end
748
+
749
+ # This was removed in 2.1.
750
+ # def test_global_dash_nothing
751
+ # assert_scanned("$- ", :tGVAR, "$-")
752
+ # end
753
+
754
+ def test_global_dash_something
755
+ assert_scanned("$-x", :tGVAR, "$-x", [0, 3])
756
+ end
757
+
758
+ def test_global_number
759
+ assert_scanned("$10", :tNTH_REF, 10, [0, 3])
760
+ end
761
+
762
+ def test_global_other
763
+ assert_scanned("[$~, $*, $$, $?, $!, $@, $/, $\\, $;, $,, $., $=, $:, $<, $>, $\"]",
764
+ :tLBRACK, "[", [0, 1],
765
+ :tGVAR, "$~", [1, 3], :tCOMMA, ",", [3, 4],
766
+ :tGVAR, "$*", [5, 7], :tCOMMA, ",", [7, 8],
767
+ :tGVAR, "$$", [9, 11], :tCOMMA, ",", [11, 12],
768
+ :tGVAR, "$\?", [13, 15], :tCOMMA, ",", [15, 16],
769
+ :tGVAR, "$!", [17, 19], :tCOMMA, ",", [19, 20],
770
+ :tGVAR, "$@", [21, 23], :tCOMMA, ",", [23, 24],
771
+ :tGVAR, "$/", [25, 27], :tCOMMA, ",", [27, 28],
772
+ :tGVAR, "$\\", [29, 31], :tCOMMA, ",", [31, 32],
773
+ :tGVAR, "$;", [33, 35], :tCOMMA, ",", [35, 36],
774
+ :tGVAR, "$,", [37, 39], :tCOMMA, ",", [39, 40],
775
+ :tGVAR, "$.", [41, 43], :tCOMMA, ",", [43, 44],
776
+ :tGVAR, "$=", [45, 47], :tCOMMA, ",", [47, 48],
777
+ :tGVAR, "$:", [49, 51], :tCOMMA, ",", [51, 52],
778
+ :tGVAR, "$<", [53, 55], :tCOMMA, ",", [55, 56],
779
+ :tGVAR, "$>", [57, 59], :tCOMMA, ",", [59, 60],
780
+ :tGVAR, "$\"", [61, 63],
781
+ :tRBRACK, "]", [63, 64])
782
+ end
783
+
784
+ def test_global_underscore
785
+ assert_scanned("$_",
786
+ :tGVAR, "$_", [0, 2])
787
+ end
788
+
789
+ def test_global_weird
790
+ assert_scanned("$__blah",
791
+ :tGVAR, "$__blah", [0, 7])
792
+ end
793
+
794
+ def test_global_zero
795
+ assert_scanned("$0", :tGVAR, "$0", [0, 2])
796
+ end
797
+
798
+ def test_gt
799
+ assert_scanned("a > 2",
800
+ :tIDENTIFIER, "a", [0, 1],
801
+ :tGT, ">", [2, 3],
802
+ :tINTEGER, 2, [4, 5])
803
+ end
804
+
805
+ def test_heredoc_backtick
806
+ assert_scanned("a = <<`EOF`\n blah blah\nEOF\n",
807
+ :tIDENTIFIER, "a", [0, 1],
808
+ :tEQL, "=", [2, 3],
809
+ :tXSTRING_BEG, "<<`", [4, 11],
810
+ :tSTRING_CONTENT, " blah blah\n", [12, 24],
811
+ :tSTRING_END, "EOF", [24, 27],
812
+ :tNL, nil, [11, 12])
813
+ end
814
+
815
+ def test_heredoc_double
816
+ assert_scanned("a = <<\"EOF\"\n blah blah\nEOF\n",
817
+ :tIDENTIFIER, "a", [0, 1],
818
+ :tEQL, "=", [2, 3],
819
+ :tSTRING_BEG, "<<\"", [4, 11],
820
+ :tSTRING_CONTENT, " blah blah\n", [12, 24],
821
+ :tSTRING_END, "EOF", [24, 27],
822
+ :tNL, nil, [11, 12])
823
+ end
824
+
825
+ def test_heredoc_double_dash
826
+ assert_scanned("a = <<-\"EOF\"\n blah blah\n EOF\n",
827
+ :tIDENTIFIER, "a", [0, 1],
828
+ :tEQL, "=", [2, 3],
829
+ :tSTRING_BEG, "<<\"", [4, 12],
830
+ :tSTRING_CONTENT, " blah blah\n", [13, 25],
831
+ :tSTRING_END, "EOF", [25, 30],
832
+ :tNL, nil, [12, 13])
833
+ end
834
+
835
+ def test_heredoc_double_eos
836
+ refute_scanned("a = <<\"EOF\"\nblah",
837
+ :tIDENTIFIER, "a", [0, 1],
838
+ :tEQL, "=", [2, 3],
839
+ :tSTRING_BEG, "<<\"", [4, 7])
840
+ end
841
+
842
+ def test_heredoc_double_eos_nl
843
+ refute_scanned("a = <<\"EOF\"\nblah\n",
844
+ :tIDENTIFIER, "a", [0, 1],
845
+ :tEQL, "=", [2, 3],
846
+ :tSTRING_BEG, "<<\"", [4, 7])
847
+ end
848
+
849
+ def test_heredoc_double_interp
850
+ assert_scanned("a = <<\"EOF\"\n#x a \#@a b \#$b c \#{3} \nEOF\n",
851
+ :tIDENTIFIER, "a", [0, 1],
852
+ :tEQL, "=", [2, 3],
853
+ :tSTRING_BEG, "<<\"", [4, 11],
854
+ :tSTRING_CONTENT, "#x a ", [12, 17],
855
+ :tSTRING_DVAR, nil, [17, 18],
856
+ :tIVAR, "@a", [18, 20],
857
+ :tSTRING_CONTENT, " b ", [20, 23],
858
+ :tSTRING_DVAR, nil, [23, 24],
859
+ :tGVAR, "$b", [24, 26],
860
+ :tSTRING_CONTENT, " c ", [26, 29],
861
+ :tSTRING_DBEG, '#{', [29, 31],
862
+ :tINTEGER, 3, [31, 32],
863
+ :tRCURLY, "}", [32, 33],
864
+ :tSTRING_CONTENT, " \n", [33, 35],
865
+ :tSTRING_END, "EOF", [35, 38],
866
+ :tNL, nil, [11, 12])
867
+ end
868
+
869
+ def test_heredoc_empty
870
+ assert_scanned("<<\"\"\n\#{x}\nblah2\n\n",
871
+ :tSTRING_BEG, "<<\"", [0, 4],
872
+ :tSTRING_DBEG, "\#{", [5, 7],
873
+ :tIDENTIFIER, "x", [7, 8],
874
+ :tRCURLY, "}", [8, 9],
875
+ :tSTRING_CONTENT, "\n", [9, 10],
876
+ :tSTRING_CONTENT, "blah2\n", [10, 16],
877
+ :tSTRING_END, "", [16, 16],
878
+ :tNL, nil, [4, 5])
879
+ end
880
+
881
+ def test_heredoc_none
882
+ assert_scanned("a = <<EOF\nblah\nblah\nEOF",
883
+ :tIDENTIFIER, "a", [0, 1],
884
+ :tEQL, "=", [2, 3],
885
+ :tSTRING_BEG, "<<\"", [4, 9],
886
+ :tSTRING_CONTENT, "blah\n", [10, 15],
887
+ :tSTRING_CONTENT, "blah\n", [15, 20],
888
+ :tSTRING_END, "EOF", [20, 23],
889
+ :tNL, nil, [9, 10])
890
+ end
891
+
892
+ def test_heredoc_none_dash
893
+ assert_scanned("a = <<-EOF\nblah\nblah\n EOF",
894
+ :tIDENTIFIER, "a", [0, 1],
895
+ :tEQL, "=", [2, 3],
896
+ :tSTRING_BEG, "<<\"", [4, 10],
897
+ :tSTRING_CONTENT, "blah\n", [11, 16],
898
+ :tSTRING_CONTENT, "blah\n", [16, 21],
899
+ :tSTRING_END, "EOF", [21, 26],
900
+ :tNL, nil, [10, 11])
901
+ end
902
+
903
+ def test_heredoc_single
904
+ assert_scanned("a = <<'EOF'\n blah blah\nEOF\n",
905
+ :tIDENTIFIER, "a", [0, 1],
906
+ :tEQL, "=", [2, 3],
907
+ :tSTRING_BEG, "<<'", [4, 11],
908
+ :tSTRING_CONTENT, " blah blah\n", [12, 24],
909
+ :tSTRING_END, "EOF", [24, 27],
910
+ :tNL, nil, [11, 12])
911
+ end
912
+
913
+ def test_heredoc_single_bad_eos_body
914
+ refute_scanned("a = <<'EOF'\nblah",
915
+ :tIDENTIFIER, "a", [0, 1],
916
+ :tEQL, "=", [2, 3],
917
+ :tSTRING_BEG, "'", [6, 7])
918
+ end
919
+
920
+ def test_heredoc_single_dash
921
+ assert_scanned("a = <<-'EOF'\n blah blah\n EOF\n",
922
+ :tIDENTIFIER, "a", [0, 1],
923
+ :tEQL, "=", [2, 3],
924
+ :tSTRING_BEG, "<<'", [4, 12],
925
+ :tSTRING_CONTENT, " blah blah\n", [13, 25],
926
+ :tSTRING_END, "EOF", [25, 30],
927
+ :tNL, nil, [12, 13])
928
+ end
929
+
930
+ def test_heredoc_one_character
931
+ assert_scanned("a = <<E\nABCDEF\nE\n",
932
+ :tIDENTIFIER, "a", [0, 1],
933
+ :tEQL, "=", [2, 3],
934
+ :tSTRING_BEG, "<<\"", [4, 7],
935
+ :tSTRING_CONTENT, "ABCDEF\n", [8, 15],
936
+ :tSTRING_END, "E", [15, 16],
937
+ :tNL, nil, [7, 8])
938
+ end
939
+
940
+ def test_heredoc_cr
941
+ assert_scanned("a = <<E\r\r\nABCDEF\r\r\nE\r\r\r\n",
942
+ :tIDENTIFIER, "a", [0, 1],
943
+ :tEQL, "=", [2, 3],
944
+ :tSTRING_BEG, "<<\"", [4, 7],
945
+ :tSTRING_CONTENT, "ABCDEF\r\n", [9, 17],
946
+ :tSTRING_END, "E", [17, 20],
947
+ :tNL, nil, [8, 9])
948
+ end
949
+
950
+ def test_identifier
951
+ assert_scanned("identifier",
952
+ :tIDENTIFIER, "identifier", [0, 10])
953
+ end
954
+
955
+ def test_identifier_bang
956
+ assert_scanned("identifier!",
957
+ :tFID, "identifier!", [0, 11])
958
+
959
+ assert_scanned("identifier!=",
960
+ :tIDENTIFIER, "identifier", [0, 10],
961
+ :tNEQ, "!=", [10, 12])
962
+ end
963
+
964
+ def test_identifier_eh
965
+ assert_scanned("identifier?",
966
+ :tFID, "identifier?", [0, 11])
967
+
968
+ assert_scanned("identifier?=",
969
+ :tIDENTIFIER, "identifier", [0, 10],
970
+ :tNEQ, "?=", [10, 12])
971
+ end
972
+
973
+ def test_identifier_cmp
974
+ assert_lex_fname "<=>", :tCMP, [0, 3]
975
+ end
976
+
977
+ def test_identifier_def
978
+ assert_lex_fname "identifier", :tIDENTIFIER, [0, 10]
979
+ end
980
+
981
+ def test_identifier_eh
982
+ assert_scanned("identifier?", :tFID, "identifier?", [0, 11])
983
+ end
984
+
985
+ def test_identifier_equals_arrow
986
+ assert_scanned(":blah==>",
987
+ :tSYMBOL, "blah=", [0, 6],
988
+ :tASSOC, "=>", [6, 8])
989
+ end
990
+
991
+ def test_identifier_equals3
992
+ assert_scanned(":a===b",
993
+ :tSYMBOL, "a", [0, 2],
994
+ :tEQQ, "===", [2, 5],
995
+ :tIDENTIFIER, "b", [5, 6])
996
+ end
997
+
998
+ def test_identifier_equals_equals_arrow
999
+ assert_scanned(":a==>b",
1000
+ :tSYMBOL, "a=", [0, 3],
1001
+ :tASSOC, "=>", [3, 5],
1002
+ :tIDENTIFIER, "b", [5, 6])
1003
+ end
1004
+
1005
+ def test_identifier_equals_caret
1006
+ assert_lex_fname "^", :tCARET, [0, 1]
1007
+ end
1008
+
1009
+ def test_identifier_equals_def
1010
+ assert_lex_fname "identifier=", :tIDENTIFIER, [0, 11]
1011
+ end
1012
+
1013
+ def test_identifier_equals_def2
1014
+ assert_lex_fname "==", :tEQ, [0, 2]
1015
+ end
1016
+
1017
+ def test_identifier_equals_expr
1018
+ @lex.state = :expr_dot
1019
+ assert_scanned("y = arg",
1020
+ :tIDENTIFIER, "y", [0, 1],
1021
+ :tEQL, "=", [2, 3],
1022
+ :tIDENTIFIER, "arg", [4, 7])
1023
+
1024
+ assert_equal :expr_arg, @lex.state
1025
+ end
1026
+
1027
+ def test_identifier_equals_or
1028
+ assert_lex_fname "|", :tPIPE, [0, 1]
1029
+ end
1030
+
1031
+ def test_identifier_equals_slash
1032
+ assert_lex_fname "/", :tDIVIDE, [0, 1]
1033
+ end
1034
+
1035
+ def test_identifier_equals_tilde
1036
+ @lex.state = :expr_fname
1037
+ assert_scanned("identifier=~",
1038
+ :tIDENTIFIER, "identifier=", [0, 11],
1039
+ :tTILDE, "~", [11, 12])
1040
+ end
1041
+
1042
+ def test_identifier_gt
1043
+ assert_lex_fname ">", :tGT, [0, 1]
1044
+ end
1045
+
1046
+ def test_identifier_le
1047
+ assert_lex_fname "<=", :tLEQ, [0, 2]
1048
+ end
1049
+
1050
+ def test_identifier_lt
1051
+ assert_lex_fname "<", :tLT, [0, 1]
1052
+ end
1053
+
1054
+ def test_identifier_tilde
1055
+ assert_lex_fname "~", :tTILDE, [0, 1]
1056
+ end
1057
+
1058
+ def test_identifier_defined?
1059
+ assert_lex_fname "defined?", :kDEFINED, [0, 8]
1060
+ end
1061
+
1062
+ def test_index
1063
+ assert_lex_fname "[]", :tAREF, [0, 2]
1064
+ end
1065
+
1066
+ def test_index_equals
1067
+ assert_lex_fname "[]=", :tASET, [0, 3]
1068
+ end
1069
+
1070
+ def test_integer
1071
+ assert_scanned "42", :tINTEGER, 42, [0, 2]
1072
+ end
1073
+
1074
+ def test_integer_bin
1075
+ assert_scanned "0b101010", :tINTEGER, 42, [0, 8]
1076
+ end
1077
+
1078
+ def test_integer_bin_bad_none
1079
+ refute_scanned "0b "
1080
+ end
1081
+
1082
+ def test_integer_bin_bad_underscores
1083
+ refute_scanned "0b10__01"
1084
+ end
1085
+
1086
+ def test_integer_dec
1087
+ assert_scanned "42", :tINTEGER, 42, [0, 2]
1088
+ end
1089
+
1090
+ def test_integer_dec_bad_underscores
1091
+ refute_scanned "42__24"
1092
+ end
1093
+
1094
+ def test_integer_dec_d
1095
+ assert_scanned "0d42", :tINTEGER, 42, [0, 4]
1096
+ end
1097
+
1098
+ def test_integer_dec_d_bad_none
1099
+ refute_scanned "0d"
1100
+ end
1101
+
1102
+ def test_integer_dec_d_bad_underscores
1103
+ refute_scanned "0d42__24"
1104
+ end
1105
+
1106
+ def test_question_eh_a__18
1107
+ setup_lexer 18
1108
+
1109
+ assert_scanned "?a", :tINTEGER, 97, [0, 2]
1110
+ end
1111
+
1112
+ def test_question_eh_a__19
1113
+ setup_lexer 19
1114
+
1115
+ assert_scanned '?a', :tCHARACTER, "a", [0, 2]
1116
+ end
1117
+
1118
+ def test_question_eh_escape_M_escape_C__18
1119
+ setup_lexer 18
1120
+
1121
+ assert_scanned '?\M-\C-a', :tINTEGER, 129, [0, 8]
1122
+ end
1123
+
1124
+ def test_question_eh_escape_M_escape_C__19
1125
+ setup_lexer 19
1126
+
1127
+ assert_scanned '?\M-\C-a', :tCHARACTER, "\M-\C-a", [0, 8]
1128
+ end
1129
+
1130
+ def test_question_eh_escape_u_1_digit
1131
+ setup_lexer 19
1132
+
1133
+ refute_scanned '?\\u1'
1134
+ end
1135
+
1136
+ def test_question_eh_escape_u_2_digits
1137
+ setup_lexer 19
1138
+
1139
+ refute_scanned '?\\u12'
1140
+ end
1141
+
1142
+ def test_question_eh_escape_u_3_digits
1143
+ setup_lexer 19
1144
+
1145
+ refute_scanned '?\\u123'
1146
+ end
1147
+
1148
+ def test_question_eh_escape_u_4_digits
1149
+ if RUBY_VERSION >= '1.9'
1150
+ setup_lexer 19
1151
+ assert_scanned '?\\u0001', :tCHARACTER, "\u0001", [0, 7]
1152
+ end
1153
+ end
1154
+
1155
+ def test_question_eh_single_unicode_point
1156
+ if RUBY_VERSION >= '1.9'
1157
+ setup_lexer 19
1158
+ assert_scanned '?\\u{123}', :tCHARACTER, "\u0123", [0, 8]
1159
+
1160
+ setup_lexer 19
1161
+ assert_scanned '?\\u{a}', :tCHARACTER, "\n", [0, 6]
1162
+ end
1163
+ end
1164
+
1165
+ def test_question_eh_multiple_unicode_points
1166
+ setup_lexer 19
1167
+ refute_scanned '?\\u{1 2 3}'
1168
+
1169
+ setup_lexer 19
1170
+ refute_scanned '?\\u{a b}'
1171
+ end
1172
+
1173
+ def test_question_eh_escape_u_unclosed_bracket
1174
+ setup_lexer 19
1175
+
1176
+ refute_scanned '?\\u{123'
1177
+ end
1178
+
1179
+ def test_integer_hex
1180
+ assert_scanned "0x2a", :tINTEGER, 42, [0, 4]
1181
+ end
1182
+
1183
+ def test_integer_hex_bad_none
1184
+ refute_scanned "0x "
1185
+ end
1186
+
1187
+ def test_integer_hex_bad_underscores
1188
+ refute_scanned "0xab__cd"
1189
+ end
1190
+
1191
+ def test_integer_oct
1192
+ assert_scanned "052", :tINTEGER, 42, [0, 3]
1193
+ end
1194
+
1195
+ def test_integer_oct_bad_range
1196
+ refute_scanned "08"
1197
+ end
1198
+
1199
+ def test_integer_oct_bad_underscores
1200
+ refute_scanned "01__23"
1201
+ end
1202
+
1203
+ def test_integer_oct_O
1204
+ assert_scanned "0O52", :tINTEGER, 42, [0, 4]
1205
+ end
1206
+
1207
+ def test_integer_oct_O_bad_range
1208
+ refute_scanned "0O1238"
1209
+ end
1210
+
1211
+ def test_integer_oct_O_bad_underscores
1212
+ refute_scanned "0O1__23"
1213
+ end
1214
+
1215
+ def test_integer_oct_O_not_bad_none
1216
+ assert_scanned "0O ", :tINTEGER, 0, [0, 2]
1217
+ end
1218
+
1219
+ def test_integer_oct_o
1220
+ assert_scanned "0o52", :tINTEGER, 42, [0, 4]
1221
+ end
1222
+
1223
+ def test_integer_oct_o_bad_range
1224
+ refute_scanned "0o1283"
1225
+ end
1226
+
1227
+ def test_integer_oct_o_bad_underscores
1228
+ refute_scanned "0o1__23"
1229
+ end
1230
+
1231
+ def test_integer_oct_o_not_bad_none
1232
+ assert_scanned "0o ", :tINTEGER, 0, [0, 2]
1233
+ end
1234
+
1235
+ def test_integer_trailing
1236
+ assert_scanned("1.to_s",
1237
+ :tINTEGER, 1, [0, 1],
1238
+ :tDOT, '.', [1, 2],
1239
+ :tIDENTIFIER, 'to_s', [2, 6])
1240
+ end
1241
+
1242
+ def test_integer_underscore
1243
+ assert_scanned "4_2", :tINTEGER, 42, [0, 3]
1244
+ end
1245
+
1246
+ def test_integer_underscore_bad
1247
+ refute_scanned "4__2"
1248
+ end
1249
+
1250
+ def test_integer_zero
1251
+ assert_scanned "0", :tINTEGER, 0, [0, 1]
1252
+ end
1253
+
1254
+ def test_ivar
1255
+ assert_scanned "@blah", :tIVAR, "@blah", [0, 5]
1256
+ end
1257
+
1258
+ def test_ivar_bad
1259
+ refute_scanned "@1"
1260
+ end
1261
+
1262
+ def test_ivar_bad_0_length
1263
+ refute_scanned "1+@\n", :tINTEGER, 1, [0, 1], :tPLUS, "+", [1, 2]
1264
+ end
1265
+
1266
+ def test_keyword_expr
1267
+ @lex.state = :expr_endarg
1268
+
1269
+ assert_scanned "if", :kIF_MOD, "if", [0, 2]
1270
+
1271
+ assert_equal :expr_beg, @lex.state
1272
+ end
1273
+
1274
+ def test_lt
1275
+ assert_scanned "<", :tLT, "<", [0, 1]
1276
+ end
1277
+
1278
+ def test_lt2
1279
+ assert_scanned("a <\< b",
1280
+ :tIDENTIFIER, "a", [0, 1],
1281
+ :tLSHFT, "<\<", [2, 4],
1282
+ :tIDENTIFIER, "b", [5, 6])
1283
+
1284
+ end
1285
+
1286
+ def test_lt2_equals
1287
+ assert_scanned("a <\<= b",
1288
+ :tIDENTIFIER, "a", [0, 1],
1289
+ :tOP_ASGN, "<\<", [2, 5],
1290
+ :tIDENTIFIER, "b", [6, 7])
1291
+ end
1292
+
1293
+ def test_lt_equals
1294
+ assert_scanned "<=", :tLEQ, "<=", [0, 2]
1295
+ end
1296
+
1297
+ def test_minus
1298
+ assert_scanned("1 - 2",
1299
+ :tINTEGER, 1, [0, 1],
1300
+ :tMINUS, "-", [2, 3],
1301
+ :tINTEGER, 2, [4, 5])
1302
+ end
1303
+
1304
+ def test_minus_equals
1305
+ @lex.state = :expr_end
1306
+
1307
+ assert_scanned "-=", :tOP_ASGN, "-", [0, 2]
1308
+ end
1309
+
1310
+ def test_minus_method
1311
+ @lex.state = :expr_fname
1312
+ assert_scanned "-", :tMINUS, "-", [0, 1]
1313
+ end
1314
+
1315
+ def test_minus_unary_method
1316
+ @lex.state = :expr_fname
1317
+ assert_scanned "-@", :tUMINUS, "-@", [0, 2]
1318
+ end
1319
+
1320
+ def test_minus_unary_number
1321
+ assert_scanned("-42",
1322
+ :tUMINUS_NUM, "-", [0, 1],
1323
+ :tINTEGER, 42, [1, 3])
1324
+ end
1325
+
1326
+ def test_nth_ref
1327
+ assert_scanned('[$1, $2, $3]',
1328
+ :tLBRACK, "[", [0, 1],
1329
+ :tNTH_REF, 1, [1, 3], :tCOMMA, ",", [3, 4],
1330
+ :tNTH_REF, 2, [5, 7], :tCOMMA, ",", [7, 8],
1331
+ :tNTH_REF, 3, [9, 11],
1332
+ :tRBRACK, "]", [11, 12])
1333
+ end
1334
+
1335
+ def test_open_bracket
1336
+ assert_scanned("(", :tLPAREN, "(", [0, 1])
1337
+ end
1338
+
1339
+ def test_open_bracket_cmdarg
1340
+ assert_scanned("m (", :tIDENTIFIER, "m", [0, 1],
1341
+ :tLPAREN_ARG, "(", [2, 3])
1342
+ end
1343
+
1344
+ def test_open_bracket_exprarg
1345
+ assert_scanned("m(", :tIDENTIFIER, "m", [0, 1],
1346
+ :tLPAREN2, "(", [1, 2])
1347
+ end
1348
+
1349
+ def test_open_curly_bracket
1350
+ assert_scanned("{",
1351
+ :tLBRACE, "{", [0, 1])
1352
+ end
1353
+
1354
+ def test_open_curly_bracket_arg
1355
+ assert_scanned("m { 3 }",
1356
+ :tIDENTIFIER, "m", [0, 1],
1357
+ :tLCURLY, "{", [2, 3],
1358
+ :tINTEGER, 3, [4, 5],
1359
+ :tRCURLY, "}", [6, 7])
1360
+ end
1361
+
1362
+ def test_open_curly_bracket_block
1363
+ @lex.state = :expr_endarg # seen m(3)
1364
+
1365
+ assert_scanned("{ 4 }",
1366
+ :tLBRACE_ARG, "{", [0, 1],
1367
+ :tINTEGER, 4, [2, 3],
1368
+ :tRCURLY, "}", [4, 5])
1369
+ end
1370
+
1371
+ def test_open_square_bracket_arg
1372
+ assert_scanned("m [ 3 ]",
1373
+ :tIDENTIFIER, "m", [0, 1],
1374
+ :tLBRACK, "[", [2, 3],
1375
+ :tINTEGER, 3, [4, 5],
1376
+ :tRBRACK, "]", [6, 7])
1377
+ end
1378
+
1379
+ def test_open_square_bracket_ary
1380
+ assert_scanned("[1, 2, 3]",
1381
+ :tLBRACK, "[", [0, 1],
1382
+ :tINTEGER, 1, [1, 2],
1383
+ :tCOMMA, ",", [2, 3],
1384
+ :tINTEGER, 2, [4, 5],
1385
+ :tCOMMA, ",", [5, 6],
1386
+ :tINTEGER, 3, [7, 8],
1387
+ :tRBRACK, "]", [8, 9])
1388
+ end
1389
+
1390
+ def test_open_square_bracket_meth
1391
+ assert_scanned("m[3]",
1392
+ :tIDENTIFIER, "m", [0, 1],
1393
+ :tLBRACK2, "[", [1, 2],
1394
+ :tINTEGER, 3, [2, 3],
1395
+ :tRBRACK, "]", [3, 4])
1396
+ end
1397
+
1398
+ def test_or
1399
+ assert_scanned "|", :tPIPE, "|", [0, 1]
1400
+ end
1401
+
1402
+ def test_or2
1403
+ assert_scanned "||", :tOROP, "||", [0, 2]
1404
+ end
1405
+
1406
+ def test_or2_equals
1407
+ assert_scanned "||=", :tOP_ASGN, "||", [0, 3]
1408
+ end
1409
+
1410
+ def test_or_equals
1411
+ assert_scanned "|=", :tOP_ASGN, "|", [0, 2]
1412
+ end
1413
+
1414
+ def test_percent
1415
+ assert_scanned("a % 2",
1416
+ :tIDENTIFIER, "a", [0, 1],
1417
+ :tPERCENT, "%", [2, 3],
1418
+ :tINTEGER, 2, [4, 5])
1419
+ end
1420
+
1421
+ def test_percent_equals
1422
+ assert_scanned("a %= 2",
1423
+ :tIDENTIFIER, "a", [0, 1],
1424
+ :tOP_ASGN, "%", [2, 4],
1425
+ :tINTEGER, 2, [5, 6])
1426
+ end
1427
+
1428
+ def test_plus
1429
+ assert_scanned("1 + 1",
1430
+ :tINTEGER, 1, [0, 1],
1431
+ :tPLUS, "+", [2, 3],
1432
+ :tINTEGER, 1, [4, 5])
1433
+ end
1434
+
1435
+ def test_plus_equals
1436
+ @lex.state = :expr_end
1437
+
1438
+ assert_scanned "+=", :tOP_ASGN, "+", [0, 2]
1439
+ end
1440
+
1441
+ def test_plus_method
1442
+ @lex.state = :expr_fname
1443
+ assert_scanned "+", :tPLUS, "+", [0, 1]
1444
+ end
1445
+
1446
+ def test_plus_unary_method
1447
+ @lex.state = :expr_fname
1448
+ assert_scanned "+@", :tUPLUS, "+@", [0, 2]
1449
+ end
1450
+
1451
+ def test_numbers
1452
+ assert_scanned "0b10", :tINTEGER, 2, [0, 4]
1453
+ assert_scanned "0B10", :tINTEGER, 2, [0, 4]
1454
+
1455
+ assert_scanned "0d10", :tINTEGER, 10, [0, 4]
1456
+ assert_scanned "0D10", :tINTEGER, 10, [0, 4]
1457
+
1458
+ assert_scanned "0x10", :tINTEGER, 16, [0, 4]
1459
+ assert_scanned "0X10", :tINTEGER, 16, [0, 4]
1460
+
1461
+ assert_scanned "0o10", :tINTEGER, 8, [0, 4]
1462
+ assert_scanned "0O10", :tINTEGER, 8, [0, 4]
1463
+ assert_scanned "0o", :tINTEGER, 0, [0, 2]
1464
+ assert_scanned "0O", :tINTEGER, 0, [0, 2]
1465
+
1466
+ assert_scanned "0o", :tINTEGER, 0, [0, 2]
1467
+ assert_scanned "0O", :tINTEGER, 0, [0, 2]
1468
+
1469
+ assert_scanned "0777_333", :tINTEGER, 261851, [0, 8]
1470
+
1471
+ assert_scanned "0", :tINTEGER, 0, [0, 1]
1472
+
1473
+ refute_scanned "0x"
1474
+ refute_scanned "0X"
1475
+ refute_scanned "0b"
1476
+ refute_scanned "0B"
1477
+ refute_scanned "0d"
1478
+ refute_scanned "0D"
1479
+
1480
+ refute_scanned "08"
1481
+ refute_scanned "09"
1482
+ refute_scanned "0o8"
1483
+ refute_scanned "0o9"
1484
+ refute_scanned "0O8"
1485
+ refute_scanned "0O9"
1486
+
1487
+ refute_scanned "1_e1"
1488
+ refute_scanned "1_.1"
1489
+ refute_scanned "1__1"
1490
+
1491
+ refute_scanned "1end"
1492
+ refute_scanned "1.1end"
1493
+ end
1494
+
1495
+ def test_plus_unary_number
1496
+ assert_scanned("+42",
1497
+ :tINTEGER, 42, [1, 3])
1498
+ end
1499
+
1500
+ def test_question__18
1501
+ setup_lexer 18
1502
+
1503
+ assert_scanned "?*", :tINTEGER, 42, [0, 2]
1504
+ end
1505
+
1506
+ def test_question__19
1507
+ setup_lexer 19
1508
+
1509
+ assert_scanned "?*", :tCHARACTER, "*", [0, 2]
1510
+ end
1511
+
1512
+ def test_question_bad_eos
1513
+ refute_scanned "?"
1514
+ end
1515
+
1516
+ def test_question_bad_ws
1517
+ assert_scanned "? ", :tEH, "?", [0, 1]
1518
+ assert_scanned "?\n", :tEH, "?", [0, 1]
1519
+ assert_scanned "?\t", :tEH, "?", [0, 1]
1520
+ assert_scanned "?\v", :tEH, "?", [0, 1]
1521
+ assert_scanned "?\r", :tEH, "?", [0, 1]
1522
+ assert_scanned "?\f", :tEH, "?", [0, 1]
1523
+ end
1524
+
1525
+ def test_question_ws_backslashed__18
1526
+ setup_lexer 18
1527
+
1528
+ @lex.state = :expr_beg
1529
+ assert_scanned "?\\ ", :tINTEGER, 32, [0, 3]
1530
+ @lex.state = :expr_beg
1531
+ assert_scanned "?\\n", :tINTEGER, 10, [0, 3]
1532
+ @lex.state = :expr_beg
1533
+ assert_scanned "?\\t", :tINTEGER, 9, [0, 3]
1534
+ @lex.state = :expr_beg
1535
+ assert_scanned "?\\v", :tINTEGER, 11, [0, 3]
1536
+ @lex.state = :expr_beg
1537
+ assert_scanned "?\\r", :tINTEGER, 13, [0, 3]
1538
+ @lex.state = :expr_beg
1539
+ assert_scanned "?\\f", :tINTEGER, 12, [0, 3]
1540
+ end
1541
+
1542
+ def test_question_ws_backslashed__19
1543
+ setup_lexer 19
1544
+
1545
+ @lex.state = :expr_beg
1546
+ assert_scanned "?\\ ", :tCHARACTER, " ", [0, 3]
1547
+ @lex.state = :expr_beg
1548
+ assert_scanned "?\\n", :tCHARACTER, "\n", [0, 3]
1549
+ @lex.state = :expr_beg
1550
+ assert_scanned "?\\t", :tCHARACTER, "\t", [0, 3]
1551
+ @lex.state = :expr_beg
1552
+ assert_scanned "?\\v", :tCHARACTER, "\v", [0, 3]
1553
+ @lex.state = :expr_beg
1554
+ assert_scanned "?\\r", :tCHARACTER, "\r", [0, 3]
1555
+ @lex.state = :expr_beg
1556
+ assert_scanned "?\\f", :tCHARACTER, "\f", [0, 3]
1557
+ end
1558
+
1559
+ def test_rbracket
1560
+ assert_scanned "]", :tRBRACK, "]", [0, 1]
1561
+ end
1562
+
1563
+ def test_rcurly
1564
+ assert_scanned "}", :tRCURLY, "}", [0, 1]
1565
+ end
1566
+
1567
+ def test_regexp
1568
+ assert_scanned("/regexp/",
1569
+ :tREGEXP_BEG, "/", [0, 1],
1570
+ :tSTRING_CONTENT, "regexp", [1, 7],
1571
+ :tSTRING_END, "/", [7, 8],
1572
+ :tREGEXP_OPT, "", [8, 8])
1573
+ end
1574
+
1575
+ def test_regexp_ambiguous
1576
+ assert_scanned("method /regexp/",
1577
+ :tIDENTIFIER, "method", [0, 6],
1578
+ :tREGEXP_BEG, "/", [7, 8],
1579
+ :tSTRING_CONTENT, "regexp", [8, 14],
1580
+ :tSTRING_END, "/", [14, 15],
1581
+ :tREGEXP_OPT, "", [15, 15])
1582
+ end
1583
+
1584
+ def test_regexp_bad
1585
+ refute_scanned("/.*/xyz",
1586
+ :tREGEXP_BEG, "/", [0, 1],
1587
+ :tSTRING_CONTENT, ".*", [1, 3],
1588
+ :tSTRING_END, "/", [3, 4])
1589
+ end
1590
+
1591
+ def test_regexp_escape_C
1592
+ assert_scanned('/regex\\C-x/',
1593
+ :tREGEXP_BEG, "/", [0, 1],
1594
+ :tSTRING_CONTENT, "regex\\C-x", [1, 10],
1595
+ :tSTRING_END, "/", [10, 11],
1596
+ :tREGEXP_OPT, "", [11, 11])
1597
+ end
1598
+
1599
+ def test_regexp_escape_C_M
1600
+ assert_scanned('/regex\\C-\\M-x/',
1601
+ :tREGEXP_BEG, "/", [0, 1],
1602
+ :tSTRING_CONTENT, "regex\\C-\\M-x", [1, 13],
1603
+ :tSTRING_END, "/", [13, 14],
1604
+ :tREGEXP_OPT, "", [14, 14])
1605
+ end
1606
+
1607
+ def test_regexp_escape_C_M_craaaazy
1608
+ assert_scanned("/regex\\C-\\\n\\M-x/",
1609
+ :tREGEXP_BEG, "/", [0, 1],
1610
+ :tSTRING_CONTENT, "regex\\C-\\M-x", [1, 15],
1611
+ :tSTRING_END, "/", [15, 16],
1612
+ :tREGEXP_OPT, "", [16, 16])
1613
+ end
1614
+
1615
+ def test_regexp_escape_C_bad_dash
1616
+ refute_scanned '/regex\\Cx/', :tREGEXP_BEG, "/", [0, 1]
1617
+ end
1618
+
1619
+ def test_regexp_escape_C_bad_dash_eos
1620
+ refute_scanned '/regex\\C-/', :tREGEXP_BEG, "/", [0, 1]
1621
+ end
1622
+
1623
+ def test_regexp_escape_C_bad_dash_eos2
1624
+ refute_scanned '/regex\\C-', :tREGEXP_BEG, "/", [0, 1]
1625
+ end
1626
+
1627
+ def test_regexp_escape_C_bad_eos
1628
+ refute_scanned '/regex\\C/', :tREGEXP_BEG, "/", [0, 1]
1629
+ end
1630
+
1631
+ def test_regexp_escape_C_bad_eos2
1632
+ refute_scanned '/regex\\c', :tREGEXP_BEG, "/", [0, 1]
1633
+ end
1634
+
1635
+ def test_regexp_escape_M
1636
+ assert_scanned('/regex\\M-x/',
1637
+ :tREGEXP_BEG, "/", [0, 1],
1638
+ :tSTRING_CONTENT, "regex\\M-x", [1, 10],
1639
+ :tSTRING_END, "/", [10, 11],
1640
+ :tREGEXP_OPT, "", [11, 11])
1641
+ end
1642
+
1643
+ def test_regexp_escape_M_C
1644
+ assert_scanned('/regex\\M-\\C-x/',
1645
+ :tREGEXP_BEG, "/", [0, 1],
1646
+ :tSTRING_CONTENT, "regex\\M-\\C-x", [1, 13],
1647
+ :tSTRING_END, "/", [13, 14],
1648
+ :tREGEXP_OPT, "", [14, 14])
1649
+ end
1650
+
1651
+ def test_regexp_escape_M_bad_dash
1652
+ refute_scanned '/regex\\Mx/', :tREGEXP_BEG, "/", [0, 1]
1653
+ end
1654
+
1655
+ def test_regexp_escape_M_bad_dash_eos
1656
+ refute_scanned '/regex\\M-/', :tREGEXP_BEG, "/", [0, 1]
1657
+ end
1658
+
1659
+ def test_regexp_escape_M_bad_dash_eos2
1660
+ refute_scanned '/regex\\M-', :tREGEXP_BEG, "/", [0, 1]
1661
+ end
1662
+
1663
+ def test_regexp_escape_M_bad_eos
1664
+ refute_scanned '/regex\\M/', :tREGEXP_BEG, "/", [0, 1]
1665
+ end
1666
+
1667
+ def test_regexp_escape_backslash_slash
1668
+ assert_scanned('/\\//',
1669
+ :tREGEXP_BEG, "/", [0, 1],
1670
+ :tSTRING_CONTENT, '/', [1, 3],
1671
+ :tSTRING_END, "/", [3, 4],
1672
+ :tREGEXP_OPT, "", [4, 4])
1673
+ end
1674
+
1675
+ def test_regexp_escape_backslash_terminator
1676
+ assert_scanned('%r%blah\\%blah%',
1677
+ :tREGEXP_BEG, "%r%", [0, 3],
1678
+ :tSTRING_CONTENT, "blah%blah", [3, 13],
1679
+ :tSTRING_END, "%", [13, 14],
1680
+ :tREGEXP_OPT, "", [14, 14])
1681
+ end
1682
+
1683
+ def test_regexp_escape_backslash_terminator_meta1
1684
+ assert_scanned('%r{blah\\}blah}',
1685
+ :tREGEXP_BEG, "%r{", [0, 3],
1686
+ :tSTRING_CONTENT, "blah\\}blah", [3, 13],
1687
+ :tSTRING_END, "}", [13, 14],
1688
+ :tREGEXP_OPT, "", [14, 14])
1689
+ end
1690
+
1691
+ def test_regexp_escape_backslash_terminator_meta2
1692
+ assert_scanned('%r/blah\\/blah/',
1693
+ :tREGEXP_BEG, "%r/", [0, 3],
1694
+ :tSTRING_CONTENT, "blah/blah", [3, 13],
1695
+ :tSTRING_END, "/", [13, 14],
1696
+ :tREGEXP_OPT, "", [14, 14])
1697
+ end
1698
+
1699
+ def test_regexp_escape_backslash_terminator_meta3
1700
+ assert_scanned('%r/blah\\%blah/',
1701
+ :tREGEXP_BEG, "%r/", [0, 3],
1702
+ :tSTRING_CONTENT, "blah\\%blah", [3, 13],
1703
+ :tSTRING_END, "/", [13, 14],
1704
+ :tREGEXP_OPT, "", [14, 14])
1705
+ end
1706
+
1707
+ def test_regexp_escape_bad_eos
1708
+ refute_scanned '/regex\\', :tREGEXP_BEG, "/", [0, 1]
1709
+ end
1710
+
1711
+ def test_regexp_escape_bs
1712
+ assert_scanned('/regex\\\\regex/',
1713
+ :tREGEXP_BEG, "/", [0, 1],
1714
+ :tSTRING_CONTENT, "regex\\\\regex", [1, 13],
1715
+ :tSTRING_END, "/", [13, 14],
1716
+ :tREGEXP_OPT, "", [14, 14])
1717
+ end
1718
+
1719
+ def test_regexp_escape_c
1720
+ assert_scanned('/regex\\cxxx/',
1721
+ :tREGEXP_BEG, "/", [0, 1],
1722
+ :tSTRING_CONTENT, "regex\\cxxx", [1, 11],
1723
+ :tSTRING_END, "/", [11, 12],
1724
+ :tREGEXP_OPT, "", [12, 12])
1725
+ end
1726
+
1727
+ def test_regexp_escape_c_backslash
1728
+ assert_scanned('/regex\\c\\n/',
1729
+ :tREGEXP_BEG, "/", [0, 1],
1730
+ :tSTRING_CONTENT, "regex\\c\\n", [1, 10],
1731
+ :tSTRING_END, "/", [10, 11],
1732
+ :tREGEXP_OPT, "", [11, 11])
1733
+ end
1734
+
1735
+ def test_regexp_escape_chars
1736
+ assert_scanned('/re\\tge\\nxp/',
1737
+ :tREGEXP_BEG, "/", [0, 1],
1738
+ :tSTRING_CONTENT, "re\\tge\\nxp", [1, 11],
1739
+ :tSTRING_END, "/", [11, 12],
1740
+ :tREGEXP_OPT, "", [12, 12])
1741
+ end
1742
+
1743
+ def test_regexp_escape_double_backslash
1744
+ assert_scanned('/[\\/\\\\]$/',
1745
+ :tREGEXP_BEG, "/", [0, 1],
1746
+ :tSTRING_CONTENT,'[/\\\\]$', [1, 8],
1747
+ :tSTRING_END, "/", [8, 9],
1748
+ :tREGEXP_OPT, "", [9, 9])
1749
+ end
1750
+
1751
+ def test_regexp_escape_hex
1752
+ assert_scanned('/regex\\x61xp/',
1753
+ :tREGEXP_BEG, "/", [0, 1],
1754
+ :tSTRING_CONTENT, "regex\\x61xp", [1, 12],
1755
+ :tSTRING_END, "/", [12, 13],
1756
+ :tREGEXP_OPT, "", [13, 13])
1757
+ end
1758
+
1759
+ def test_regexp_escape_hex_bad
1760
+ refute_scanned '/regex\\xzxp/', :tREGEXP_BEG, "/", [0, 1]
1761
+ end
1762
+
1763
+ def test_regexp_escape_hex_one
1764
+ assert_scanned('/^[\\xd\\xa]{2}/on',
1765
+ :tREGEXP_BEG, '/', [0, 1],
1766
+ :tSTRING_CONTENT, '^[\\xd\\xa]{2}', [1, 13],
1767
+ :tSTRING_END, "/", [13, 14],
1768
+ :tREGEXP_OPT, 'on', [14, 16])
1769
+ end
1770
+
1771
+ def test_regexp_escape_oct1
1772
+ assert_scanned('/regex\\0xp/',
1773
+ :tREGEXP_BEG, "/", [0, 1],
1774
+ :tSTRING_CONTENT, "regex\\0xp", [1, 10],
1775
+ :tSTRING_END, "/", [10, 11],
1776
+ :tREGEXP_OPT, "", [11, 11])
1777
+ end
1778
+
1779
+ def test_regexp_escape_oct2
1780
+ assert_scanned('/regex\\07xp/',
1781
+ :tREGEXP_BEG, "/", [0, 1],
1782
+ :tSTRING_CONTENT, "regex\\07xp", [1, 11],
1783
+ :tSTRING_END, "/", [11, 12],
1784
+ :tREGEXP_OPT, "", [12, 12])
1785
+ end
1786
+
1787
+ def test_regexp_escape_oct3
1788
+ assert_scanned('/regex\\10142/',
1789
+ :tREGEXP_BEG, "/", [0, 1],
1790
+ :tSTRING_CONTENT, "regex\\10142", [1, 12],
1791
+ :tSTRING_END, "/", [12, 13],
1792
+ :tREGEXP_OPT, "", [13, 13])
1793
+ end
1794
+
1795
+ def test_regexp_escape_return
1796
+ assert_scanned("/regex\\\nregex/",
1797
+ :tREGEXP_BEG, "/", [0, 1],
1798
+ :tSTRING_CONTENT, "regexregex", [1, 13],
1799
+ :tSTRING_END, "/", [13, 14],
1800
+ :tREGEXP_OPT, "", [14, 14])
1801
+ end
1802
+
1803
+ def test_regexp_escape_delimiter_meta
1804
+ assert_scanned("%r(\\))",
1805
+ :tREGEXP_BEG, "%r(", [0, 3],
1806
+ :tSTRING_CONTENT, "\\)", [3, 5],
1807
+ :tSTRING_END, ")", [5, 6],
1808
+ :tREGEXP_OPT, "", [6, 6])
1809
+ end
1810
+
1811
+ def test_regexp_escape_delimiter_nonmeta
1812
+ assert_scanned("%r'\\''",
1813
+ :tREGEXP_BEG, "%r'", [0, 3],
1814
+ :tSTRING_CONTENT, "'", [3, 5],
1815
+ :tSTRING_END, "'", [5, 6],
1816
+ :tREGEXP_OPT, "", [6, 6])
1817
+ end
1818
+
1819
+ def test_regexp_escape_other_meta
1820
+ assert_scanned("/\\.\\$\\*\\+\\.\\?\\|/",
1821
+ :tREGEXP_BEG, "/", [0, 1],
1822
+ :tSTRING_CONTENT, "\\.\\$\\*\\+\\.\\?\\|", [1, 15],
1823
+ :tSTRING_END, "/", [15, 16],
1824
+ :tREGEXP_OPT, "", [16, 16])
1825
+ end
1826
+
1827
+ def test_regexp_nm
1828
+ assert_scanned("/.*/nm",
1829
+ :tREGEXP_BEG, "/", [0, 1],
1830
+ :tSTRING_CONTENT, ".*", [1, 3],
1831
+ :tSTRING_END, "/", [3, 4],
1832
+ :tREGEXP_OPT, "nm", [4, 6])
1833
+ end
1834
+
1835
+ def test_rparen
1836
+ assert_scanned ")", :tRPAREN, ")", [0, 1]
1837
+ end
1838
+
1839
+ def test_rshft
1840
+ assert_scanned("a >> 2",
1841
+ :tIDENTIFIER, "a", [0, 1],
1842
+ :tRSHFT, ">>", [2, 4],
1843
+ :tINTEGER, 2, [5, 6])
1844
+ end
1845
+
1846
+ def test_rshft_equals
1847
+ assert_scanned("a >>= 2",
1848
+ :tIDENTIFIER, "a", [0, 1],
1849
+ :tOP_ASGN, ">>", [2, 5],
1850
+ :tINTEGER, 2, [6, 7])
1851
+ end
1852
+
1853
+ def test_star
1854
+ assert_scanned("a * ",
1855
+ :tIDENTIFIER, "a", [0, 1],
1856
+ :tSTAR2, "*", [2, 3])
1857
+
1858
+ assert_equal :expr_beg, @lex.state
1859
+ end
1860
+
1861
+ def test_star2
1862
+ assert_scanned("a ** ",
1863
+ :tIDENTIFIER, "a", [0, 1],
1864
+ :tPOW, "**", [2, 4])
1865
+
1866
+ assert_equal :expr_beg, @lex.state
1867
+ end
1868
+
1869
+ def test_star2_equals
1870
+ assert_scanned("a **= ",
1871
+ :tIDENTIFIER, "a", [0, 1],
1872
+ :tOP_ASGN, "**", [2, 5])
1873
+
1874
+ assert_equal :expr_beg, @lex.state
1875
+ end
1876
+
1877
+ def test_star2_beg
1878
+ assert_scanned("** ",
1879
+ :tDSTAR, "**", [0, 2])
1880
+
1881
+ assert_equal :expr_beg, @lex.state
1882
+ end
1883
+
1884
+ def test_star_arg
1885
+ @lex.state = :expr_arg
1886
+
1887
+ assert_scanned(" *a",
1888
+ :tSTAR, "*", [1, 2],
1889
+ :tIDENTIFIER, "a", [2, 3])
1890
+
1891
+ assert_equal :expr_arg, @lex.state
1892
+ end
1893
+
1894
+ def test_star_arg_beg
1895
+ @lex.state = :expr_beg
1896
+
1897
+ assert_scanned("*a",
1898
+ :tSTAR, "*", [0, 1],
1899
+ :tIDENTIFIER, "a", [1, 2])
1900
+
1901
+ assert_equal :expr_arg, @lex.state
1902
+ end
1903
+
1904
+ def test_star_arg_beg_fname
1905
+ @lex.state = :expr_fname
1906
+
1907
+ assert_scanned("*a",
1908
+ :tSTAR2, "*", [0, 1],
1909
+ :tIDENTIFIER, "a", [1, 2])
1910
+
1911
+ assert_equal :expr_arg, @lex.state
1912
+ end
1913
+
1914
+ def test_star_equals
1915
+ assert_scanned("a *= ",
1916
+ :tIDENTIFIER, "a", [0, 1],
1917
+ :tOP_ASGN, "*", [2, 4])
1918
+
1919
+ assert_equal :expr_beg, @lex.state
1920
+ end
1921
+
1922
+ def test_string_bad_eos
1923
+ refute_scanned('%',
1924
+ :tSTRING_BEG, '%', [0, 1])
1925
+ end
1926
+
1927
+ def test_string_bad_eos_quote
1928
+ refute_scanned('%{nest',
1929
+ :tSTRING_BEG, '%}', [0, 2])
1930
+ end
1931
+
1932
+ def test_string_double
1933
+ assert_scanned('"string"',
1934
+ :tSTRING, "string", [0, 8])
1935
+ end
1936
+
1937
+ def test_string_double_escape_C
1938
+ assert_scanned('"\\C-a"',
1939
+ :tSTRING, "\001", [0, 6])
1940
+ end
1941
+
1942
+ def test_string_double_escape_C_backslash
1943
+ assert_scanned('"\\C-\\\\"',
1944
+ :tSTRING, "\034", [0, 7])
1945
+ end
1946
+
1947
+ def test_string_double_escape_C_escape
1948
+ assert_scanned('"\\C-\\M-a"',
1949
+ :tSTRING, "\201", [0, 9])
1950
+ end
1951
+
1952
+ def test_string_double_escape_C_question
1953
+ assert_scanned('"\\C-?"',
1954
+ :tSTRING, "\177", [0, 6])
1955
+ end
1956
+
1957
+ def test_string_double_escape_M
1958
+ assert_scanned('"\\M-a"',
1959
+ :tSTRING, "\341", [0, 6])
1960
+ end
1961
+
1962
+ def test_string_double_escape_M_backslash
1963
+ assert_scanned('"\\M-\\\\"',
1964
+ :tSTRING, "\334", [0, 7])
1965
+ end
1966
+
1967
+ def test_string_double_escape_M_escape
1968
+ assert_scanned('"\\M-\\C-a"',
1969
+ :tSTRING, "\201", [0, 9])
1970
+ end
1971
+
1972
+ def test_string_double_escape_bs1
1973
+ assert_scanned('"a\\a\\a"',
1974
+ :tSTRING, "a\a\a", [0, 7])
1975
+ end
1976
+
1977
+ def test_string_double_escape_bs2
1978
+ assert_scanned('"a\\\\a"',
1979
+ :tSTRING, "a\\a", [0, 6])
1980
+ end
1981
+
1982
+ def test_string_double_escape_c
1983
+ assert_scanned('"\\ca"',
1984
+ :tSTRING, "\001", [0, 5])
1985
+ end
1986
+
1987
+ def test_string_double_escape_c_escape
1988
+ assert_scanned('"\\c\\M-a"',
1989
+ :tSTRING, "\201", [0, 8])
1990
+ end
1991
+
1992
+ def test_string_double_escape_c_question
1993
+ assert_scanned('"\\c?"',
1994
+ :tSTRING, "\177", [0, 5])
1995
+ end
1996
+
1997
+ def test_string_double_escape_chars
1998
+ assert_scanned('"s\\tri\\ng"',
1999
+ :tSTRING, "s\tri\ng", [0, 10])
2000
+ end
2001
+
2002
+ def test_string_double_escape_hex
2003
+ assert_scanned('"n = \\x61\\x62\\x63"',
2004
+ :tSTRING, "n = abc", [0, 18])
2005
+ end
2006
+
2007
+ def test_string_double_escape_octal
2008
+ assert_scanned('"n = \\101\\102\\103"',
2009
+ :tSTRING, "n = ABC", [0, 18])
2010
+ end
2011
+
2012
+ def test_string_double_escape_octal_wrap
2013
+ assert_scanned('"\\753"',
2014
+ :tSTRING, "\xEB", [0, 6])
2015
+ end
2016
+
2017
+ def test_string_double_interp
2018
+ assert_scanned("\"blah #x a \#@a b \#$b c \#{3} # \"",
2019
+ :tSTRING_BEG, "\"", [0, 1],
2020
+ :tSTRING_CONTENT, "blah #x a ", [1, 11],
2021
+ :tSTRING_DVAR, nil, [11, 12],
2022
+ :tIVAR, "@a", [12, 14],
2023
+ :tSTRING_CONTENT, " b ", [14, 17],
2024
+ :tSTRING_DVAR, nil, [17, 18],
2025
+ :tGVAR, "$b", [18, 20],
2026
+ :tSTRING_CONTENT, " c ", [20, 23],
2027
+ :tSTRING_DBEG, '#{', [23, 25],
2028
+ :tINTEGER, 3, [25, 26],
2029
+ :tRCURLY, "}", [26, 27],
2030
+ :tSTRING_CONTENT, " # ", [27, 30],
2031
+ :tSTRING_END, "\"", [30, 31])
2032
+ end
2033
+
2034
+ def test_string_double_interp_label
2035
+ assert_scanned('"#{foo:bar}"',
2036
+ :tSTRING_BEG, '"', [0, 1],
2037
+ :tSTRING_DBEG, '#{', [1, 3],
2038
+ :tIDENTIFIER, 'foo', [3, 6],
2039
+ :tSYMBOL, 'bar', [6, 10],
2040
+ :tRCURLY, '}', [10, 11],
2041
+ :tSTRING_END, '"', [11, 12])
2042
+ end
2043
+
2044
+ def test_string_double_nested_curlies
2045
+ assert_scanned('%{nest{one{two}one}nest}',
2046
+ :tSTRING_BEG, '%{', [0, 2],
2047
+ :tSTRING_CONTENT, "nest{one{two}one}nest", [2, 23],
2048
+ :tSTRING_END, '}', [23, 24])
2049
+ end
2050
+
2051
+ def test_string_double_no_interp
2052
+ assert_scanned("\"# blah\"", # pound first
2053
+ :tSTRING, "# blah", [0, 8])
2054
+
2055
+ assert_scanned("\"blah # blah\"", # pound not first
2056
+ :tSTRING, "blah # blah", [0, 13])
2057
+ end
2058
+
2059
+ def test_string_escape_x_single
2060
+ assert_scanned('"\\x0"',
2061
+ :tSTRING, "\000", [0, 5])
2062
+ end
2063
+
2064
+ def test_string_pct_Q
2065
+ assert_scanned("%Q[s1 s2]",
2066
+ :tSTRING_BEG, '%Q[', [0, 3],
2067
+ :tSTRING_CONTENT, "s1 s2", [3, 8],
2068
+ :tSTRING_END, ']', [8, 9])
2069
+ end
2070
+
2071
+ def test_string_pct_W
2072
+ assert_scanned("%W[s1 s2\ns3]",
2073
+ :tWORDS_BEG, "%W[", [0, 3],
2074
+ :tSTRING_CONTENT, "s1", [3, 5],
2075
+ :tSPACE, nil, [5, 6],
2076
+ :tSTRING_CONTENT, "s2", [6, 8],
2077
+ :tSPACE, nil, [8, 9],
2078
+ :tSTRING_CONTENT, "s3", [9, 11],
2079
+ :tSPACE, nil, [11, 11],
2080
+ :tSTRING_END, ']', [11, 12])
2081
+ end
2082
+
2083
+ def test_string_pct_W_bs_nl
2084
+ assert_scanned("%W[s1 \\\ns2]",
2085
+ :tWORDS_BEG, "%W[", [0, 3],
2086
+ :tSTRING_CONTENT, "s1", [3, 5],
2087
+ :tSPACE, nil, [5, 6],
2088
+ :tSTRING_CONTENT, "\ns2", [6, 10],
2089
+ :tSPACE, nil, [10, 10],
2090
+ :tSTRING_END, ']', [10, 11])
2091
+ end
2092
+
2093
+ def test_string_pct_W_interp
2094
+ assert_scanned('%W[#{1}#{2} #@a]',
2095
+ :tWORDS_BEG, '%W[', [0, 3],
2096
+ :tSTRING_DBEG, '#{', [3, 5],
2097
+ :tINTEGER, 1, [5, 6],
2098
+ :tRCURLY, '}', [6, 7],
2099
+ :tSTRING_DBEG, '#{', [7, 9],
2100
+ :tINTEGER, 2, [9, 10],
2101
+ :tRCURLY, '}', [10, 11],
2102
+ :tSPACE, nil, [11, 12],
2103
+ :tSTRING_DVAR, nil, [12, 13],
2104
+ :tIVAR, '@a', [13, 15],
2105
+ :tSPACE, nil, [15, 15],
2106
+ :tSTRING_END, ']', [15, 16])
2107
+ end
2108
+
2109
+ def test_string_pct_I
2110
+ assert_scanned("%I(s1 s2)",
2111
+ :tSYMBOLS_BEG, "%I(", [0, 3],
2112
+ :tSTRING_CONTENT, "s1", [3, 5],
2113
+ :tSPACE, nil, [5, 6],
2114
+ :tSTRING_CONTENT, "s2", [6, 8],
2115
+ :tSPACE, nil, [8, 8],
2116
+ :tSTRING_END, ')', [8, 9])
2117
+ end
2118
+
2119
+ def test_string_pct_angle
2120
+ assert_scanned("%<blah>",
2121
+ :tSTRING_BEG, '%<', [0, 2],
2122
+ :tSTRING_CONTENT, "blah", [2, 6],
2123
+ :tSTRING_END, '>', [6, 7])
2124
+ end
2125
+
2126
+ def test_string_pct_pct
2127
+ assert_scanned("%%blah%",
2128
+ :tSTRING_BEG, '%%', [0, 2],
2129
+ :tSTRING_CONTENT, "blah", [2, 6],
2130
+ :tSTRING_END, '%', [6, 7])
2131
+ end
2132
+
2133
+ def test_string_pct_w
2134
+ assert_scanned("%w[s1 s2 ]",
2135
+ :tQWORDS_BEG, "%w[", [0, 3],
2136
+ :tSTRING_CONTENT, "s1", [3, 5],
2137
+ :tSPACE, nil, [5, 6],
2138
+ :tSTRING_CONTENT, "s2", [6, 8],
2139
+ :tSPACE, nil, [8, 9],
2140
+ :tSTRING_END, "]", [9, 10])
2141
+ end
2142
+
2143
+ def test_string_pct_w_incomplete
2144
+ refute_scanned("%w[s1 ",
2145
+ :tQWORDS_BEG, "%w[", [0, 3],
2146
+ :tSTRING_CONTENT, "s1", [3, 5],
2147
+ :tSPACE, nil, [5, 6])
2148
+ end
2149
+
2150
+ def test_string_pct_w_bs_nl
2151
+ assert_scanned("%w[s1 \\\ns2]",
2152
+ :tQWORDS_BEG, "%w[", [0, 3],
2153
+ :tSTRING_CONTENT, "s1", [3, 5],
2154
+ :tSPACE, nil, [5, 6],
2155
+ :tSTRING_CONTENT, "\ns2", [6, 10],
2156
+ :tSPACE, nil, [10, 10],
2157
+ :tSTRING_END, ']', [10, 11])
2158
+ end
2159
+
2160
+ def test_string_pct_w_bs_sp
2161
+ assert_scanned("%w[s\\ 1 s\\ 2]",
2162
+ :tQWORDS_BEG, "%w[", [0, 3],
2163
+ :tSTRING_CONTENT, "s 1", [3, 7],
2164
+ :tSPACE, nil, [7, 8],
2165
+ :tSTRING_CONTENT, "s 2", [8, 12],
2166
+ :tSPACE, nil, [12, 12],
2167
+ :tSTRING_END, ']', [12, 13])
2168
+ end
2169
+
2170
+ def test_string_pct_w_tab
2171
+ assert_scanned("%w[abc\tdef]",
2172
+ :tQWORDS_BEG, "%w[", [0, 3],
2173
+ :tSTRING_CONTENT, "abc", [3, 6],
2174
+ :tSPACE, nil, [6, 7],
2175
+ :tSTRING_CONTENT, "def", [7, 10],
2176
+ :tSPACE, nil, [10, 10],
2177
+ :tSTRING_END, ']', [10, 11])
2178
+ end
2179
+
2180
+ def test_string_pct_i
2181
+ assert_scanned("%i(s1 s2)",
2182
+ :tQSYMBOLS_BEG, "%i(", [0, 3],
2183
+ :tSTRING_CONTENT, "s1", [3, 5],
2184
+ :tSPACE, nil, [5, 6],
2185
+ :tSTRING_CONTENT, "s2", [6, 8],
2186
+ :tSPACE, nil, [8, 8],
2187
+ :tSTRING_END, ')', [8, 9])
2188
+ end
2189
+
2190
+ def test_string_pct_backslash
2191
+ assert_scanned("%\\a\\",
2192
+ :tSTRING_BEG, "%\\", [0, 2],
2193
+ :tSTRING_CONTENT, "a", [2, 3],
2194
+ :tSTRING_END, "\\", [3, 4])
2195
+ end
2196
+
2197
+ def test_string_pct_w_backslash
2198
+ assert_scanned("%w\\s1 s2 \\",
2199
+ :tQWORDS_BEG, "%w\\", [0, 3],
2200
+ :tSTRING_CONTENT, "s1", [3, 5],
2201
+ :tSPACE, nil, [5, 6],
2202
+ :tSTRING_CONTENT, "s2", [6, 8],
2203
+ :tSPACE, nil, [8, 9],
2204
+ :tSTRING_END, "\\", [9, 10])
2205
+ end
2206
+
2207
+ def test_string_pct_w_backslash_nl
2208
+ assert_scanned("%w\\s1 s2 \\\n",
2209
+ :tQWORDS_BEG, "%w\\", [0, 3],
2210
+ :tSTRING_CONTENT, "s1", [3, 5],
2211
+ :tSPACE, nil, [5, 6],
2212
+ :tSTRING_CONTENT, "s2", [6, 8],
2213
+ :tSPACE, nil, [8, 9],
2214
+ :tSTRING_END, "\\", [9, 10],
2215
+ :tNL, nil, [10, 11])
2216
+ end
2217
+
2218
+ def test_string_pct_w_backslash_interp_nl
2219
+ assert_scanned("%W\\blah #x a \#@a b \#$b c \#{3} # \\",
2220
+ :tWORDS_BEG, "%W\\", [0, 3],
2221
+ :tSTRING_CONTENT, "blah", [3, 7],
2222
+ :tSPACE, nil, [7, 8],
2223
+ :tSTRING_CONTENT, "#x", [8, 10],
2224
+ :tSPACE, nil, [10, 11],
2225
+ :tSTRING_CONTENT, "a", [11, 12],
2226
+ :tSPACE, nil, [12, 13],
2227
+ :tSTRING_DVAR, nil, [13, 14],
2228
+ :tIVAR, "@a", [14, 16],
2229
+ :tSPACE, nil, [16, 17],
2230
+ :tSTRING_CONTENT, "b", [17, 18],
2231
+ :tSPACE, nil, [18, 19],
2232
+ :tSTRING_DVAR, nil, [19, 20],
2233
+ :tGVAR, "$b", [20, 22],
2234
+ :tSPACE, nil, [22, 23],
2235
+ :tSTRING_CONTENT, "c", [23, 24],
2236
+ :tSPACE, nil, [24, 25],
2237
+ :tSTRING_DBEG, '#{', [25, 27],
2238
+ :tINTEGER, 3, [27, 28],
2239
+ :tRCURLY, "}", [28, 29],
2240
+ :tSPACE, nil, [29, 30],
2241
+ :tSTRING_CONTENT, "#", [30, 31],
2242
+ :tSPACE, nil, [31, 32],
2243
+ :tSTRING_END, "\\", [32, 33])
2244
+ end
2245
+
2246
+ def test_string_pct_backslash_with_bad_escape
2247
+ # No escapes are allowed in a backslash-delimited string
2248
+ refute_scanned("%\\a\\n\\",
2249
+ :tSTRING_BEG, "%\\", [0, 2],
2250
+ :tSTRING_CONTENT, "a", [2, 3],
2251
+ :tSTRING_END, "\\", [3, 4],
2252
+ :tIDENTIFIER, "n", [4, 5])
2253
+ end
2254
+
2255
+ def test_string_pct_intertwined_with_heredoc
2256
+ assert_scanned("<<-foo + %\\a\nbar\nfoo\nb\\",
2257
+ :tSTRING_BEG, "<<\"", [0, 6],
2258
+ :tSTRING_CONTENT, "bar\n", [13, 17],
2259
+ :tSTRING_END, "foo", [17, 20],
2260
+ :tPLUS, "+", [7, 8],
2261
+ :tSTRING_BEG, "%\\", [9, 11],
2262
+ :tSTRING_CONTENT, "a\n", [11, 13],
2263
+ :tSTRING_CONTENT, "b", [21, 22],
2264
+ :tSTRING_END, "\\", [22, 23])
2265
+ end
2266
+
2267
+ def test_string_pct_q_backslash
2268
+ assert_scanned("%q\\a\\",
2269
+ :tSTRING_BEG, "%q\\", [0, 3],
2270
+ :tSTRING_CONTENT, "a", [3, 4],
2271
+ :tSTRING_END, "\\", [4, 5])
2272
+ end
2273
+
2274
+ def test_string_pct_Q_backslash
2275
+ assert_scanned("%Q\\a\\",
2276
+ :tSTRING_BEG, "%Q\\", [0, 3],
2277
+ :tSTRING_CONTENT, "a", [3, 4],
2278
+ :tSTRING_END, "\\", [4, 5])
2279
+ end
2280
+
2281
+ def test_string_single
2282
+ assert_scanned("'string'",
2283
+ :tSTRING, "string", [0, 8])
2284
+ end
2285
+
2286
+ def test_string_single_escape_chars
2287
+ assert_scanned("'s\\tri\\ng'",
2288
+ :tSTRING, "s\\tri\\ng", [0, 10])
2289
+ end
2290
+
2291
+ def test_string_single_nl
2292
+ assert_scanned("'blah\\\nblah'",
2293
+ :tSTRING_BEG, "'", [0, 1],
2294
+ :tSTRING_CONTENT, "blah\\\n", [1, 7],
2295
+ :tSTRING_CONTENT, "blah", [7, 11],
2296
+ :tSTRING_END, "'", [11, 12])
2297
+ end
2298
+
2299
+ def test_symbol
2300
+ assert_scanned(":symbol",
2301
+ :tSYMBOL, "symbol", [0, 7])
2302
+ end
2303
+
2304
+ def test_symbol_double
2305
+ assert_scanned(":\"symbol\"",
2306
+ :tSYMBEG, ":\"", [0, 2],
2307
+ :tSTRING_CONTENT, "symbol", [2, 8],
2308
+ :tSTRING_END, "\"", [8, 9])
2309
+ end
2310
+
2311
+ def test_symbol_single
2312
+ assert_scanned(":'symbol'",
2313
+ :tSYMBEG, ":'", [0, 2],
2314
+ :tSTRING_CONTENT, "symbol", [2, 8],
2315
+ :tSTRING_END, "'", [8, 9])
2316
+ end
2317
+
2318
+ def test_ternary
2319
+ assert_scanned("a ? b : c",
2320
+ :tIDENTIFIER, "a", [0, 1],
2321
+ :tEH, "?", [2, 3],
2322
+ :tIDENTIFIER, "b", [4, 5],
2323
+ :tCOLON, ":", [6, 7],
2324
+ :tIDENTIFIER, "c", [8, 9])
2325
+
2326
+ assert_scanned("a ?b : c",
2327
+ :tIDENTIFIER, "a", [0, 1],
2328
+ :tINTEGER, 98, [2, 4],
2329
+ :tCOLON, ":", [5, 6],
2330
+ :tIDENTIFIER, "c", [7, 8])
2331
+
2332
+ assert_scanned("a ?bb : c", # GAH! MATZ!!!
2333
+ :tIDENTIFIER, "a", [0, 1],
2334
+ :tEH, "?", [2, 3],
2335
+ :tIDENTIFIER, "bb", [3, 5],
2336
+ :tCOLON, ":", [6, 7],
2337
+ :tIDENTIFIER, "c", [8, 9])
2338
+
2339
+ assert_scanned("42 ?", # 42 forces expr_end
2340
+ :tINTEGER, 42, [0, 2],
2341
+ :tEH, "?", [3, 4])
2342
+ end
2343
+
2344
+ def test_tilde
2345
+ assert_scanned "~", :tTILDE, "~", [0, 1]
2346
+ end
2347
+
2348
+ def test_tilde_unary
2349
+ @lex.state = :expr_fname
2350
+ assert_scanned "~@", :tTILDE, "~@", [0, 2]
2351
+ end
2352
+
2353
+ def test_uminus
2354
+ assert_scanned("-blah",
2355
+ :tUMINUS, "-", [0, 1],
2356
+ :tIDENTIFIER, "blah", [1, 5])
2357
+ end
2358
+
2359
+ def test_underscore
2360
+ assert_scanned("_var", :tIDENTIFIER, "_var", [0, 4])
2361
+ end
2362
+
2363
+ def test_underscore_end
2364
+ assert_scanned("__END__\n")
2365
+ assert_scanned("__END__")
2366
+ assert_scanned("__END__ foo",
2367
+ :tIDENTIFIER, '__END__', [0, 7],
2368
+ :tIDENTIFIER, 'foo', [8, 11])
2369
+ assert_scanned("__END__\rfoo",
2370
+ :tIDENTIFIER, '__END__', [0, 7],
2371
+ :tIDENTIFIER, 'foo', [8, 11])
2372
+ end
2373
+
2374
+ def test_uplus
2375
+ assert_scanned("+blah",
2376
+ :tUPLUS, "+", [0, 1],
2377
+ :tIDENTIFIER, "blah", [1, 5])
2378
+ end
2379
+
2380
+ def test_if_unless_mod
2381
+ assert_scanned("return if true unless false",
2382
+ :kRETURN, "return", [0, 6],
2383
+ :kIF_MOD, "if", [7, 9],
2384
+ :kTRUE, "true", [10, 14],
2385
+ :kUNLESS_MOD, "unless", [15, 21],
2386
+ :kFALSE, "false", [22, 27])
2387
+ end
2388
+
2389
+ def test_if_stmt
2390
+ assert_scanned("if true\n return end",
2391
+ :kIF, "if", [0, 2],
2392
+ :kTRUE, "true", [3, 7],
2393
+ :tNL, nil, [7, 8],
2394
+ :kRETURN, "return", [9, 15],
2395
+ :kEND, "end", [16, 19])
2396
+ end
2397
+
2398
+ def test_sclass_label
2399
+ setup_lexer 20
2400
+ assert_scanned("class << a:b",
2401
+ :kCLASS, 'class', [0, 5],
2402
+ :tLSHFT, '<<', [6, 8],
2403
+ :tIDENTIFIER, 'a', [9, 10],
2404
+ :tSYMBOL, 'b', [10, 12])
2405
+ end
2406
+
2407
+ def test_fname_pct_s__22
2408
+ setup_lexer 22
2409
+ @lex.state = :expr_fname
2410
+ assert_scanned("%s(a)",
2411
+ :tPERCENT, '%', [0, 1],
2412
+ :tIDENTIFIER, 's', [1, 2],
2413
+ :tLPAREN2, '(', [2, 3],
2414
+ :tIDENTIFIER, 'a', [3, 4],
2415
+ :tRPAREN, ')', [4, 5])
2416
+ end
2417
+
2418
+ def test_fname_pct_s__23
2419
+ setup_lexer 23
2420
+ @lex.state = :expr_fname
2421
+ assert_scanned("%s(a)",
2422
+ :tSYMBEG, '%s(', [0, 3],
2423
+ :tSTRING_CONTENT, 'a', [3, 4],
2424
+ :tSTRING_END, ')', [4, 5])
2425
+ end
2426
+
2427
+ def test_static_env
2428
+ env = Parser::StaticEnvironment.new
2429
+ env.declare "a"
2430
+
2431
+ @lex.static_env = env
2432
+ assert_scanned("a [42]",
2433
+ :tIDENTIFIER, "a", [0, 1],
2434
+ :tLBRACK2, "[", [2, 3],
2435
+ :tINTEGER, 42, [3, 5],
2436
+ :tRBRACK, "]", [5, 6])
2437
+ end
2438
+
2439
+ def test_int_suffix
2440
+ [18, 19, 20].each do |version|
2441
+ setup_lexer version
2442
+
2443
+ assert_scanned("42r",
2444
+ :tINTEGER, 42, [0, 2],
2445
+ :tIDENTIFIER, 'r', [2, 3])
2446
+
2447
+ assert_scanned("42if",
2448
+ :tINTEGER, 42, [0, 2],
2449
+ :kIF_MOD, 'if', [2, 4])
2450
+ end
2451
+
2452
+ setup_lexer 21
2453
+
2454
+ assert_scanned("42r", :tRATIONAL, Rational(42), [0, 3])
2455
+ assert_scanned("42i", :tIMAGINARY, Complex(0, 42), [0, 3])
2456
+ assert_scanned("42ri", :tIMAGINARY, Complex(0, Rational(42)), [0, 4])
2457
+ end
2458
+
2459
+ def test_float_suffix
2460
+ [18, 19, 20].each do |version|
2461
+ setup_lexer version
2462
+
2463
+ assert_scanned("42.1r",
2464
+ :tFLOAT, 42.1, [0, 4],
2465
+ :tIDENTIFIER, 'r', [4, 5])
2466
+
2467
+ assert_scanned("42.1if",
2468
+ :tFLOAT, 42.1, [0, 4],
2469
+ :kIF_MOD, 'if', [4, 6])
2470
+
2471
+ assert_scanned("1e1r",
2472
+ :tFLOAT, 1e1, [0, 3],
2473
+ :tIDENTIFIER, 'r', [3, 4])
2474
+ end
2475
+
2476
+ begin
2477
+ # Feature-check.
2478
+ Rational("10")
2479
+
2480
+ setup_lexer 21
2481
+
2482
+ assert_scanned("42.1r", :tRATIONAL, Rational(421, 10), [0, 5])
2483
+ assert_scanned("42.1i", :tIMAGINARY, Complex(0, 42.1), [0, 5])
2484
+ assert_scanned("42.1ri", :tIMAGINARY, Complex(0, Rational(421, 10)), [0, 6])
2485
+ assert_scanned("42.1ir",
2486
+ :tIMAGINARY, Complex(0, 42.1), [0, 5],
2487
+ :tIDENTIFIER, 'r', [5, 6])
2488
+
2489
+ assert_scanned("1e1i", :tIMAGINARY, Complex(0, 1e1), [0, 4])
2490
+ assert_scanned("1e1r",
2491
+ :tFLOAT, 1e1, [0, 3],
2492
+ :tIDENTIFIER, 'r', [3, 4])
2493
+ assert_scanned("1e1ri",
2494
+ :tFLOAT, 1e1, [0, 3],
2495
+ :tIDENTIFIER, 'ri', [3, 5])
2496
+ assert_scanned("1e1ir",
2497
+ :tIMAGINARY, Complex(0, 1e1), [0, 4],
2498
+ :tIDENTIFIER, 'r', [4, 5])
2499
+ rescue NoMethodError
2500
+ # Ruby not modern enough
2501
+ end
2502
+ end
2503
+
2504
+ def test_eof
2505
+ assert_scanned("self",
2506
+ :kSELF, "self", [0, 4])
2507
+ assert_equal([false, ["$eof", Parser::Source::Range.new(@lex.source_buffer, 4, 4)]],
2508
+ @lex.advance)
2509
+ end
2510
+
2511
+ #
2512
+ # Test for 'fluent interface'
2513
+ #
2514
+
2515
+ def test_fluent_dot
2516
+ assert_scanned("x\n.y",
2517
+ :tIDENTIFIER, 'x', [0, 1],
2518
+ :tDOT, '.', [2, 3],
2519
+ :tIDENTIFIER, 'y', [3, 4])
2520
+
2521
+ assert_scanned("x\n .y",
2522
+ :tIDENTIFIER, 'x', [0, 1],
2523
+ :tDOT, '.', [4, 5],
2524
+ :tIDENTIFIER, 'y', [5, 6])
2525
+
2526
+ assert_scanned("x # comment\n .y",
2527
+ :tIDENTIFIER, 'x', [0, 1],
2528
+ :tDOT, '.', [14, 15],
2529
+ :tIDENTIFIER, 'y', [15, 16])
2530
+ end
2531
+
2532
+ def test_fluent_and_dot
2533
+ assert_scanned("x\n&.y",
2534
+ :tIDENTIFIER, 'x', [0, 1],
2535
+ :tANDDOT, '&.', [2, 4],
2536
+ :tIDENTIFIER, 'y', [4, 5])
2537
+ end
2538
+
2539
+ #
2540
+ # Tests for whitespace.
2541
+ #
2542
+
2543
+ def test_whitespace_fname
2544
+ @lex.state = :expr_fname
2545
+ assert_scanned('class',
2546
+ :kCLASS, 'class', [0, 5])
2547
+
2548
+ @lex.state = :expr_fname
2549
+ assert_scanned(' class',
2550
+ :kCLASS, 'class', [1, 6])
2551
+
2552
+ @lex.state = :expr_fname
2553
+ assert_scanned("\nclass",
2554
+ :kCLASS, 'class', [1, 6])
2555
+
2556
+ @lex.state = :expr_fname
2557
+ assert_scanned("\\\nclass",
2558
+ :kCLASS, 'class', [2, 7])
2559
+
2560
+ @lex.state = :expr_fname
2561
+ assert_scanned("#foo\nclass",
2562
+ :kCLASS, 'class', [5, 10])
2563
+ end
2564
+
2565
+ def test_whitespace_endfn
2566
+ setup_lexer(21)
2567
+
2568
+ @lex.state = :expr_endfn
2569
+ assert_scanned('foo:',
2570
+ :tLABEL, 'foo', [0, 4])
2571
+
2572
+ @lex.state = :expr_endfn
2573
+ assert_scanned(' foo:',
2574
+ :tLABEL, 'foo', [1, 5])
2575
+
2576
+ @lex.state = :expr_endfn
2577
+ assert_scanned("\nfoo:",
2578
+ :tNL, nil, [0, 1],
2579
+ :tIDENTIFIER, 'foo', [1, 4],
2580
+ :tCOLON, ':', [4, 5])
2581
+
2582
+ @lex.state = :expr_endfn
2583
+ assert_scanned("\nfoo: ",
2584
+ :tNL, nil, [0, 1],
2585
+ :tIDENTIFIER, 'foo', [1, 4],
2586
+ :tCOLON, ':', [4, 5])
2587
+
2588
+ @lex.state = :expr_endfn
2589
+ assert_scanned("\\\nfoo:",
2590
+ :tLABEL, 'foo', [2, 6])
2591
+
2592
+ @lex.state = :expr_endfn
2593
+ assert_scanned("#foo\nfoo:",
2594
+ :tNL, nil, [4, 5],
2595
+ :tIDENTIFIER, 'foo', [5, 8],
2596
+ :tCOLON, ':', [8, 9])
2597
+
2598
+ @lex.state = :expr_endfn
2599
+ assert_scanned("#foo\nfoo: ",
2600
+ :tNL, nil, [4, 5],
2601
+ :tIDENTIFIER, 'foo', [5, 8],
2602
+ :tCOLON, ':', [8, 9])
2603
+ end
2604
+
2605
+ def test_whitespace_dot
2606
+ @lex.state = :expr_dot
2607
+ assert_scanned('class',
2608
+ :tIDENTIFIER, 'class', [0, 5])
2609
+
2610
+ @lex.state = :expr_dot
2611
+ assert_scanned(' class',
2612
+ :tIDENTIFIER, 'class', [1, 6])
2613
+
2614
+ @lex.state = :expr_dot
2615
+ assert_scanned("\nclass",
2616
+ :tIDENTIFIER, 'class', [1, 6])
2617
+
2618
+ @lex.state = :expr_dot
2619
+ assert_scanned("\\\nclass",
2620
+ :tIDENTIFIER, 'class', [2, 7])
2621
+
2622
+ @lex.state = :expr_dot
2623
+ assert_scanned("#foo\nclass",
2624
+ :tIDENTIFIER, 'class', [5, 10])
2625
+ end
2626
+
2627
+ def test_whitespace_arg
2628
+ @lex.state = :expr_arg
2629
+ assert_scanned('+',
2630
+ :tPLUS, '+', [0, 1])
2631
+
2632
+ @lex.state = :expr_arg
2633
+ assert_scanned(' +',
2634
+ :tUPLUS, '+', [1, 2])
2635
+
2636
+ @lex.state = :expr_arg
2637
+ assert_scanned("\n+",
2638
+ :tNL, nil, [0, 1],
2639
+ :tUPLUS, '+', [1, 2])
2640
+
2641
+ @lex.state = :expr_arg
2642
+ assert_scanned("\\\n+",
2643
+ :tUPLUS, '+', [2, 3])
2644
+
2645
+ @lex.state = :expr_arg
2646
+ assert_scanned("\\\n +",
2647
+ :tUPLUS, '+', [3, 4])
2648
+
2649
+ @lex.state = :expr_arg
2650
+ assert_scanned("#foo\n+",
2651
+ :tNL, nil, [4, 5],
2652
+ :tUPLUS, '+', [5, 6])
2653
+ end
2654
+
2655
+ def test_whitespace_endarg
2656
+ @lex.state = :expr_endarg
2657
+ assert_scanned('{',
2658
+ :tLBRACE_ARG, '{', [0, 1])
2659
+
2660
+ @lex.state = :expr_endarg
2661
+ assert_scanned(' {',
2662
+ :tLBRACE_ARG, '{', [1, 2])
2663
+
2664
+ @lex.state = :expr_endarg
2665
+ assert_scanned("\n{",
2666
+ :tNL, nil, [0, 1],
2667
+ :tLBRACE, '{', [1, 2])
2668
+
2669
+ @lex.state = :expr_endarg
2670
+ assert_scanned("\\\n{",
2671
+ :tLBRACE_ARG, '{', [2, 3])
2672
+
2673
+ @lex.state = :expr_endarg
2674
+ assert_scanned("#foo\n{",
2675
+ :tNL, nil, [4, 5],
2676
+ :tLBRACE, '{', [5, 6])
2677
+ end
2678
+
2679
+ def test_whitespace_mid
2680
+ @lex.state = :expr_mid
2681
+ assert_scanned('+',
2682
+ :tUPLUS, '+', [0, 1])
2683
+
2684
+ @lex.state = :expr_mid
2685
+ assert_scanned(' +',
2686
+ :tUPLUS, '+', [1, 2])
2687
+
2688
+ @lex.state = :expr_mid
2689
+ assert_scanned("\n+",
2690
+ :tNL, nil, [0, 1],
2691
+ :tUPLUS, '+', [1, 2])
2692
+
2693
+ @lex.state = :expr_mid
2694
+ assert_scanned("\\\n+",
2695
+ :tUPLUS, '+', [2, 3])
2696
+
2697
+ @lex.state = :expr_mid
2698
+ assert_scanned("#foo\n+",
2699
+ :tNL, nil, [4, 5],
2700
+ :tUPLUS, '+', [5, 6])
2701
+ end
2702
+
2703
+ def test_whitespace_beg
2704
+ @lex.state = :expr_beg
2705
+ assert_scanned('+',
2706
+ :tUPLUS, '+', [0, 1])
2707
+
2708
+ @lex.state = :expr_beg
2709
+ assert_scanned(' +',
2710
+ :tUPLUS, '+', [1, 2])
2711
+
2712
+ @lex.state = :expr_beg
2713
+ assert_scanned("\n+",
2714
+ :tUPLUS, '+', [1, 2])
2715
+
2716
+ @lex.state = :expr_beg
2717
+ assert_scanned("\\\n+",
2718
+ :tUPLUS, '+', [2, 3])
2719
+
2720
+ @lex.state = :expr_beg
2721
+ assert_scanned("#foo\n+",
2722
+ :tUPLUS, '+', [5, 6])
2723
+ end
2724
+
2725
+ def test_whitespace_value
2726
+ setup_lexer(20)
2727
+
2728
+ @lex.state = :expr_value
2729
+ assert_scanned('a:b',
2730
+ :tIDENTIFIER, 'a', [0, 1],
2731
+ :tSYMBOL, 'b', [1, 3])
2732
+
2733
+ @lex.state = :expr_value
2734
+ assert_scanned(' a:b',
2735
+ :tIDENTIFIER, 'a', [1, 2],
2736
+ :tSYMBOL, 'b', [2, 4])
2737
+
2738
+ @lex.state = :expr_value
2739
+ assert_scanned("\na:b",
2740
+ :tIDENTIFIER, 'a', [1, 2],
2741
+ :tSYMBOL, 'b', [2, 4])
2742
+
2743
+ @lex.state = :expr_value
2744
+ assert_scanned("\\\na:b",
2745
+ :tIDENTIFIER, 'a', [2, 3],
2746
+ :tSYMBOL, 'b', [3, 5])
2747
+
2748
+ @lex.state = :expr_value
2749
+ assert_scanned("#foo\na:b",
2750
+ :tIDENTIFIER, 'a', [5, 6],
2751
+ :tSYMBOL, 'b', [6, 8])
2752
+ end
2753
+
2754
+ def test_whitespace_end
2755
+ @lex.state = :expr_end
2756
+ assert_scanned('+ 1',
2757
+ :tPLUS, '+', [0, 1],
2758
+ :tINTEGER, 1, [2, 3])
2759
+
2760
+ @lex.state = :expr_end
2761
+ assert_scanned(' + 1',
2762
+ :tPLUS, '+', [1, 2],
2763
+ :tINTEGER, 1, [3, 4])
2764
+
2765
+ @lex.state = :expr_end
2766
+ assert_scanned("\n+ 1",
2767
+ :tNL, nil, [0, 1],
2768
+ :tUPLUS, '+', [1, 2],
2769
+ :tINTEGER, 1, [3, 4])
2770
+
2771
+ @lex.state = :expr_end
2772
+ assert_scanned("\\\n+ 1",
2773
+ :tPLUS, '+', [2, 3],
2774
+ :tINTEGER, 1, [4, 5])
2775
+
2776
+ @lex.state = :expr_end
2777
+ assert_scanned("#foo\n+ 1",
2778
+ :tNL, nil, [4, 5],
2779
+ :tUPLUS, '+', [5, 6],
2780
+ :tINTEGER, 1, [7, 8])
2781
+ end
2782
+
2783
+ def test_whitespace_cr
2784
+ setup_lexer(20)
2785
+ assert_scanned("<<E\nfoo\nE\rO",
2786
+ :tSTRING_BEG, '<<"', [0, 3],
2787
+ :tSTRING_CONTENT, "foo\n", [4, 8],
2788
+ :tSTRING_END, 'E', [8, 11],
2789
+ :tNL, nil, [3, 4])
2790
+
2791
+ setup_lexer(21)
2792
+ refute_scanned("<<E\nfoo\nE\rO",
2793
+ :tSTRING_BEG, '<<"', [0, 3],
2794
+ :tSTRING_CONTENT, "foo\n", [4, 8])
2795
+ end
2796
+
2797
+ #
2798
+ # Handling of encoding-related issues.
2799
+ #
2800
+
2801
+ if defined?(Encoding)
2802
+ def test_transcoded_source_is_converted_back_to_original_encoding
2803
+ setup_lexer(19)
2804
+ @lex.force_utf32 = true
2805
+ @lex.tokens = []
2806
+ assert_scanned(utf('"a" + "b"'),
2807
+ :tSTRING, "a", [0, 3],
2808
+ :tPLUS, "+", [4, 5],
2809
+ :tSTRING, "b", [6, 9])
2810
+
2811
+ @lex.tokens.each do |_type, (str, _range)|
2812
+ assert_equal Encoding::UTF_8, str.encoding
2813
+ end
2814
+ end
2815
+ end
2816
+
2817
+ #
2818
+ # Tests for bugs.
2819
+ #
2820
+ # These tests should be moved from nursery and properly
2821
+ # categorized when it's clear how to do that.
2822
+ #
2823
+
2824
+ def test_bug_sclass_joined
2825
+ assert_scanned("class<<self",
2826
+ :kCLASS, "class", [0, 5],
2827
+ :tLSHFT, "<<", [5, 7],
2828
+ :kSELF, "self", [7, 11])
2829
+ end
2830
+
2831
+ def test_bug_const_expr_end
2832
+ assert_scanned("Option",
2833
+ :tCONSTANT, 'Option', [0, 6])
2834
+
2835
+ assert_equal :expr_cmdarg, @lex.state
2836
+ end
2837
+
2838
+ def test_bug_expr_beg_div
2839
+ @lex.state = :expr_beg
2840
+ assert_scanned("/=/",
2841
+ :tREGEXP_BEG, "/", [0, 1],
2842
+ :tSTRING_CONTENT, "=", [1, 2],
2843
+ :tSTRING_END, "/", [2, 3],
2844
+ :tREGEXP_OPT, "", [3, 3])
2845
+
2846
+ @lex.state = :expr_beg
2847
+ assert_scanned("/ = /",
2848
+ :tREGEXP_BEG, "/", [0, 1],
2849
+ :tSTRING_CONTENT, " = ", [1, 4],
2850
+ :tSTRING_END, "/", [4, 5],
2851
+ :tREGEXP_OPT, "", [5, 5])
2852
+ end
2853
+
2854
+ def test_bug_expr_beg_percent
2855
+ @lex.state = :expr_beg
2856
+ assert_scanned("%=foo=",
2857
+ :tSTRING_BEG, "%=", [0, 2],
2858
+ :tSTRING_CONTENT, 'foo', [2, 5],
2859
+ :tSTRING_END, "=", [5, 6])
2860
+
2861
+ @lex.state = :expr_beg
2862
+ assert_scanned("% = ",
2863
+ :tSTRING_BEG, "% ", [0, 2],
2864
+ :tSTRING_CONTENT, '=', [2, 3],
2865
+ :tSTRING_END, ' ', [3, 4])
2866
+ end
2867
+
2868
+ def test_bug_expr_beg_document
2869
+ @lex.state = :expr_beg
2870
+ assert_scanned(" \n=begin\n=end\nend",
2871
+ :kEND, "end", [14, 17])
2872
+
2873
+ end
2874
+
2875
+ def test_bug_expr_beg_number
2876
+ @lex.state = :expr_beg
2877
+ assert_scanned("86400_000_000",
2878
+ :tINTEGER, 86400_000_000, [0, 13])
2879
+ end
2880
+
2881
+ def test_bug_expr_beg_backspace_nl
2882
+ @lex.state = :expr_beg
2883
+ assert_scanned("\n/foo/",
2884
+ :tREGEXP_BEG, "/", [1, 2],
2885
+ :tSTRING_CONTENT, "foo", [2, 5],
2886
+ :tSTRING_END, "/", [5, 6],
2887
+ :tREGEXP_OPT, "", [6, 6])
2888
+ end
2889
+
2890
+ def test_bug_expr_beg_heredoc
2891
+ assert_scanned("<<EOL % [\nfoo\nEOL\n]",
2892
+ :tSTRING_BEG, '<<"', [0, 5],
2893
+ :tSTRING_CONTENT, "foo\n", [10, 14],
2894
+ :tSTRING_END, 'EOL', [14, 17],
2895
+ :tPERCENT, '%', [6, 7],
2896
+ :tLBRACK, '[', [8, 9],
2897
+ :tRBRACK, ']', [18, 19])
2898
+ end
2899
+
2900
+ def test_bug_expr_beg_fid
2901
+ assert_scanned("Rainbows!",
2902
+ :tFID, 'Rainbows!', [0, 9])
2903
+ end
2904
+
2905
+ def test_bug_expr_beg_rescue_assoc
2906
+ assert_scanned("rescue=>",
2907
+ :kRESCUE, 'rescue', [0, 6],
2908
+ :tASSOC, '=>', [6, 8])
2909
+ end
2910
+
2911
+ def test_bug_expr_arg_percent
2912
+ @lex.state = :expr_arg
2913
+ assert_scanned("%[",
2914
+ :tPERCENT, "%", [0, 1],
2915
+ :tLBRACK, "[", [1, 2])
2916
+
2917
+ @lex.state = :expr_arg
2918
+ assert_scanned("%=1",
2919
+ :tOP_ASGN, "%", [0, 2],
2920
+ :tINTEGER, 1, [2, 3])
2921
+
2922
+ @lex.state = :expr_arg
2923
+ assert_scanned(" %[1]",
2924
+ :tSTRING_BEG, "%[", [1, 3],
2925
+ :tSTRING_CONTENT, '1', [3, 4],
2926
+ :tSTRING_END, ']', [4, 5])
2927
+
2928
+ @lex.state = :expr_arg
2929
+ assert_scanned(" %=1=",
2930
+ :tOP_ASGN, "%", [1, 3],
2931
+ :tINTEGER, 1, [3, 4],
2932
+ :tEQL, "=", [4, 5])
2933
+
2934
+ @lex.state = :expr_arg
2935
+ assert_scanned(" %\n",
2936
+ :tPERCENT, '%', [1, 2])
2937
+ end
2938
+
2939
+ def test_bug_expr_arg_lt_lt
2940
+ @lex.state = :expr_arg
2941
+ assert_scanned("<<EOS\nEOS",
2942
+ :tLSHFT, "<<", [0, 2],
2943
+ :tCONSTANT, "EOS", [2, 5],
2944
+ :tNL, nil, [5, 6],
2945
+ :tCONSTANT, "EOS", [6, 9])
2946
+
2947
+ @lex.state = :expr_arg
2948
+ assert_scanned(" <<EOS\nEOS",
2949
+ :tSTRING_BEG, "<<\"", [1, 6],
2950
+ :tSTRING_END, "EOS", [7, 10],
2951
+ :tNL, nil, [6, 7])
2952
+ end
2953
+
2954
+ def test_bug_expr_arg_slash
2955
+ @lex.state = :expr_arg
2956
+ assert_scanned("/1",
2957
+ :tDIVIDE, "/", [0, 1],
2958
+ :tINTEGER, 1, [1, 2])
2959
+
2960
+ @lex.state = :expr_arg
2961
+ assert_scanned("/ 1",
2962
+ :tDIVIDE, "/", [0, 1],
2963
+ :tINTEGER, 1, [2, 3])
2964
+
2965
+ @lex.state = :expr_arg
2966
+ assert_scanned(" /1/",
2967
+ :tREGEXP_BEG, "/", [1, 2],
2968
+ :tSTRING_CONTENT, "1", [2, 3],
2969
+ :tSTRING_END, "/", [3, 4],
2970
+ :tREGEXP_OPT, "", [4, 4])
2971
+
2972
+ @lex.state = :expr_arg
2973
+ assert_scanned(" / 1",
2974
+ :tDIVIDE, "/", [1, 2],
2975
+ :tINTEGER, 1, [3, 4])
2976
+ end
2977
+
2978
+ def test_bug_expr_arg_label
2979
+ setup_lexer 19
2980
+
2981
+ @lex.state = :expr_arg
2982
+ assert_scanned(" unless:",
2983
+ :tLABEL, 'unless', [1, 8])
2984
+
2985
+ @lex.state = :expr_arg
2986
+ assert_scanned(" unless: ",
2987
+ :tLABEL, 'unless', [1, 8])
2988
+ end
2989
+
2990
+ def test_bug_heredoc_continuation
2991
+ @lex.state = :expr_arg
2992
+ assert_scanned(" <<EOS\nEOS\nend",
2993
+ :tSTRING_BEG, "<<\"", [1, 6],
2994
+ :tSTRING_END, "EOS", [7, 10],
2995
+ :tNL, nil, [6, 7],
2996
+ :kEND, "end", [11, 14])
2997
+ end
2998
+
2999
+ def test_bug_heredoc_cr_lf
3000
+ assert_scanned("<<FIN\r\nfoo\r\nFIN\r\n",
3001
+ :tSTRING_BEG, "<<\"", [0, 5],
3002
+ :tSTRING_CONTENT, "foo\n", [6, 10],
3003
+ :tSTRING_END, "FIN", [10, 13],
3004
+ :tNL, nil, [5, 6])
3005
+ end
3006
+
3007
+ def test_bug_eh_symbol_no_newline
3008
+ assert_scanned("?\"\nfoo",
3009
+ :tINTEGER, 34, [0, 2],
3010
+ :tNL, nil, [2, 3],
3011
+ :tIDENTIFIER, "foo", [3, 6])
3012
+ end
3013
+
3014
+ def test_bug_expr_arg_newline
3015
+ @lex.state = :expr_arg
3016
+ assert_scanned("\nfoo",
3017
+ :tNL, nil, [0, 1],
3018
+ :tIDENTIFIER, "foo", [1, 4])
3019
+
3020
+ @lex.state = :expr_arg
3021
+ assert_scanned(" \nfoo",
3022
+ :tNL, nil, [1, 2],
3023
+ :tIDENTIFIER, "foo", [2, 5])
3024
+
3025
+ @lex.state = :expr_arg
3026
+ assert_scanned("#foo\nfoo",
3027
+ :tNL, nil, [4, 5],
3028
+ :tIDENTIFIER, "foo", [5, 8])
3029
+ end
3030
+
3031
+ def test_bug_expr_arg_comment_newline
3032
+ @lex.state = :expr_arg
3033
+ assert_scanned(" #\nfoo",
3034
+ :tNL, nil, [2, 3],
3035
+ :tIDENTIFIER, 'foo', [3, 6])
3036
+ end
3037
+
3038
+ def test_bug_expr_arg_eh_crlf
3039
+ @lex.state = :expr_arg
3040
+ assert_scanned(" ?\r\n",
3041
+ :tEH, '?', [1, 2])
3042
+ end
3043
+
3044
+ def test_bug_heredoc_backspace_nl
3045
+ assert_scanned(" <<'XXX'\nf \\\nXXX\n",
3046
+ :tSTRING_BEG, "<<'", [1, 8],
3047
+ :tSTRING_CONTENT, "f \\\n", [9, 13],
3048
+ :tSTRING_END, "XXX", [13, 16],
3049
+ :tNL, nil, [8, 9])
3050
+ end
3051
+
3052
+ def test_bug_heredoc_lshft
3053
+ assert_scanned("<<RULES << CLEANINGS\nRULES",
3054
+ :tSTRING_BEG, '<<"', [0, 7],
3055
+ :tSTRING_END, 'RULES', [21, 26],
3056
+ :tLSHFT, '<<', [8, 10],
3057
+ :tCONSTANT, 'CLEANINGS', [11, 20])
3058
+ end
3059
+
3060
+ def test_bug_sclass_comment_lshft_label
3061
+ assert_scanned("class # foo\n<< a:b;end",
3062
+ :kCLASS, 'class', [0, 5],
3063
+ :tLSHFT, '<<', [12, 14],
3064
+ :tIDENTIFIER, 'a', [15, 16],
3065
+ :tSYMBOL, 'b', [16, 18],
3066
+ :tSEMI, ';', [18, 19],
3067
+ :kEND, 'end', [19, 22])
3068
+ end
3069
+
3070
+ def test_bug_expr_dot_comment
3071
+ assert_scanned("foo. #bar\nbaz",
3072
+ :tIDENTIFIER, 'foo', [0, 3],
3073
+ :tDOT, '.', [3, 4],
3074
+ :tIDENTIFIER, 'baz', [10, 13])
3075
+ end
3076
+
3077
+ def test_bug_expr_dot_fid
3078
+ assert_scanned("foo.S?",
3079
+ :tIDENTIFIER, 'foo', [0, 3],
3080
+ :tDOT, '.', [3, 4],
3081
+ :tFID, 'S?', [4, 6])
3082
+ end
3083
+
3084
+ def test_bug_expr_dot_id_eq
3085
+ assert_scanned("foo.x= 1",
3086
+ :tIDENTIFIER, 'foo', [0, 3],
3087
+ :tDOT, '.', [3, 4],
3088
+ :tIDENTIFIER, 'x', [4, 5],
3089
+ :tEQL, '=', [5, 6],
3090
+ :tINTEGER, 1, [7, 8])
3091
+ end
3092
+
3093
+ def test_bug_expr_dot_fid_mod
3094
+ assert_scanned("foo.x!if 1",
3095
+ :tIDENTIFIER, 'foo', [0, 3],
3096
+ :tDOT, '.', [3, 4],
3097
+ :tFID, 'x!', [4, 6],
3098
+ :kIF_MOD, 'if', [6, 8],
3099
+ :tINTEGER, 1, [9, 10])
3100
+ end
3101
+
3102
+ def test_bug_expr_mid_comment
3103
+ assert_scanned("rescue #bar\nprint",
3104
+ :kRESCUE, 'rescue', [0, 6],
3105
+ :tNL, nil, [11, 12],
3106
+ :tIDENTIFIER, 'print', [12, 17])
3107
+ end
3108
+
3109
+ def test_bug_expr_mid_bareword
3110
+ assert_scanned("begin; rescue rescue1",
3111
+ :kBEGIN, 'begin', [0, 5],
3112
+ :tSEMI, ';', [5, 6],
3113
+ :kRESCUE, 'rescue', [7, 13],
3114
+ :tIDENTIFIER, 'rescue1', [14, 21])
3115
+ end
3116
+
3117
+ def test_bug_expr_value_document
3118
+ assert_scanned("1;\n=begin\n=end",
3119
+ :tINTEGER, 1, [0, 1],
3120
+ :tSEMI, ';', [1, 2])
3121
+ end
3122
+
3123
+ def test_bug_expr_end_colon
3124
+ assert_scanned("'foo':'bar'",
3125
+ :tSTRING, 'foo', [0, 5],
3126
+ :tCOLON, ':', [5, 6],
3127
+ :tSTRING, 'bar', [6, 11])
3128
+ end
3129
+
3130
+ def test_bug_expr_value_rescue_colon2
3131
+ @lex.state = :expr_value
3132
+ assert_scanned("rescue::Exception",
3133
+ :kRESCUE, 'rescue', [0, 6],
3134
+ :tCOLON3, '::', [6, 8],
3135
+ :tCONSTANT, 'Exception', [8, 17])
3136
+ end
3137
+
3138
+ def test_bug_expr_endarg_braces
3139
+ assert_scanned("let [] {",
3140
+ :tIDENTIFIER, 'let', [0, 3],
3141
+ :tLBRACK, '[', [4, 5],
3142
+ :tRBRACK, ']', [5, 6],
3143
+ :tLBRACE_ARG, '{', [7, 8])
3144
+ end
3145
+
3146
+ def test_bug_line_begin_label
3147
+ setup_lexer(19)
3148
+ assert_scanned("foo:bar",
3149
+ :tIDENTIFIER, 'foo', [0, 3],
3150
+ :tSYMBOL, 'bar', [3, 7])
3151
+ end
3152
+
3153
+ def test_bug_interp_expr_value
3154
+ assert_scanned('"#{f:a}"',
3155
+ :tSTRING_BEG, '"', [0, 1],
3156
+ :tSTRING_DBEG, '#{', [1, 3],
3157
+ :tIDENTIFIER, 'f', [3, 4],
3158
+ :tSYMBOL, 'a', [4, 6],
3159
+ :tRCURLY, '}', [6, 7],
3160
+ :tSTRING_END, '"', [7, 8])
3161
+ end
3162
+
3163
+ def test_bug_const_e
3164
+ assert_scanned('E10',
3165
+ :tCONSTANT, 'E10', [0, 3])
3166
+ assert_scanned('E4U',
3167
+ :tCONSTANT, 'E4U', [0, 3])
3168
+ end
3169
+
3170
+ def test_bug_symbol_newline
3171
+ assert_scanned(":foo\n",
3172
+ :tSYMBOL, 'foo', [0, 4],
3173
+ :tNL, nil, [4, 5])
3174
+
3175
+ assert_scanned(":foo=\n",
3176
+ :tSYMBOL, 'foo=', [0, 5],
3177
+ :tNL, nil, [5, 6])
3178
+ end
3179
+
3180
+ def test_bug_interleaved_heredoc
3181
+ assert_scanned(%Q{<<w; "\nfoo\nw\n"},
3182
+ :tSTRING_BEG, '<<"', [0, 3],
3183
+ :tSTRING_CONTENT, "foo\n", [7, 11],
3184
+ :tSTRING_END, 'w', [11, 12],
3185
+ :tSEMI, ';', [3, 4],
3186
+ :tSTRING_BEG, '"', [5, 6],
3187
+ :tSTRING_CONTENT, "\n", [6, 7],
3188
+ :tSTRING_END, '"', [13, 14])
3189
+
3190
+ @lex.state = :expr_beg
3191
+ assert_scanned(%Q{<<w; %w[\nfoo\nw\n1]},
3192
+ :tSTRING_BEG, '<<"', [0, 3],
3193
+ :tSTRING_CONTENT, "foo\n", [9, 13],
3194
+ :tSTRING_END, 'w', [13, 14],
3195
+ :tSEMI, ';', [3, 4],
3196
+ :tQWORDS_BEG, '%w[', [5, 8],
3197
+ :tSTRING_CONTENT, "1", [15, 16],
3198
+ :tSPACE, nil, [16, 16],
3199
+ :tSTRING_END, ']', [16, 17])
3200
+
3201
+ @lex.state = :expr_beg
3202
+ assert_scanned(%Q{<<w; "\#{\nfoo\nw\n}"},
3203
+ :tSTRING_BEG, '<<"', [0, 3],
3204
+ :tSTRING_CONTENT, "foo\n", [9, 13],
3205
+ :tSTRING_END, 'w', [13, 14],
3206
+ :tSEMI, ';', [3, 4],
3207
+ :tSTRING_BEG, '"', [5, 6],
3208
+ :tSTRING_DBEG, '#{', [6, 8],
3209
+ :tRCURLY, '}', [15, 16],
3210
+ :tSTRING_END, '"', [16, 17])
3211
+ end
3212
+
3213
+ def test_bug_fid_char
3214
+ setup_lexer(19)
3215
+ assert_scanned('eof??a',
3216
+ :tFID, 'eof?', [0, 4],
3217
+ :tCHARACTER, 'a', [4, 6])
3218
+ end
3219
+
3220
+ def test_bug_nonlabel_context__18
3221
+ env = Parser::StaticEnvironment.new
3222
+ env.declare "a"
3223
+
3224
+ @lex.static_env = env
3225
+ assert_scanned("1+a:a",
3226
+ :tINTEGER, 1, [0, 1],
3227
+ :tPLUS, '+', [1, 2],
3228
+ :tIDENTIFIER, 'a', [2, 3],
3229
+ :tCOLON, ':', [3, 4],
3230
+ :tIDENTIFIER, 'a', [4, 5])
3231
+ end
3232
+
3233
+ def test_bug_string_percent_newline
3234
+ assert_scanned(%Q{%\nfoo\n},
3235
+ :tSTRING_BEG, "%\n", [0, 2],
3236
+ :tSTRING_CONTENT, 'foo', [2, 5],
3237
+ :tSTRING_END, "\n", [5, 6])
3238
+ end
3239
+
3240
+ def test_bug_string_percent_zero
3241
+ assert_scanned(%Q{%\0foo\0},
3242
+ :tSTRING_BEG, "%\0", [0, 2],
3243
+ :tSTRING_CONTENT, 'foo', [2, 5],
3244
+ :tSTRING_END, "\0", [5, 6])
3245
+ end
3246
+
3247
+ def test_bug_string_utf_escape_composition
3248
+ assert_scanned(%q{"\xE2\x80\x99"},
3249
+ :tSTRING, "\xE2\x80\x99", [0, 14])
3250
+
3251
+ if defined?(Encoding)
3252
+ assert_scanned(utf(%q{"\xE2\x80\x99"}),
3253
+ :tSTRING, utf('’'), [0, 14])
3254
+ assert_scanned(utf(%q{"\342\200\231"}),
3255
+ :tSTRING, utf('’'), [0, 14])
3256
+ assert_scanned(utf(%q{"\M-b\C-\M-@\C-\M-Y"}),
3257
+ :tSTRING, utf('’'), [0, 20])
3258
+ end
3259
+ end
3260
+
3261
+ def test_bug_string_utf_escape_noop
3262
+ if defined?(Encoding)
3263
+ assert_scanned(utf(%q{"\あ"}),
3264
+ :tSTRING, utf("あ"), [0, 4])
3265
+ end
3266
+ end
3267
+
3268
+ def test_bug_string_non_utf
3269
+ assert_scanned(%Q{"caf\xE9"},
3270
+ :tSTRING, "caf\xE9", [0, 6])
3271
+ assert_scanned(%Q{"caf\xC3\xA9"},
3272
+ :tSTRING, "caf\xC3\xA9", [0, 7])
3273
+
3274
+ if defined?(Encoding)
3275
+ assert_scanned(utf(%q{"café"}),
3276
+ :tSTRING, utf("café"), [0, 6])
3277
+ end
3278
+ end
3279
+
3280
+ def test_bug_semi__END__
3281
+ assert_scanned(%Q{foo;\n__END__},
3282
+ :tIDENTIFIER, 'foo', [0, 3],
3283
+ :tSEMI, ';', [3, 4])
3284
+ end
3285
+
3286
+ def test_bug_eql_end
3287
+ assert_scanned(%Q{=begin\n#=end\n=end})
3288
+ end
3289
+
3290
+ def test_bug_hidden_eof
3291
+ @lex.state = :expr_beg
3292
+ assert_scanned(%Q{"foo\0\x1a\x04bar"},
3293
+ :tSTRING_BEG, '"', [0, 1],
3294
+ :tSTRING_CONTENT, "foo\0", [1, 5],
3295
+ :tSTRING_CONTENT, "\x1a", [5, 6],
3296
+ :tSTRING_CONTENT, "\x04", [6, 7],
3297
+ :tSTRING_CONTENT, "bar", [7, 10],
3298
+ :tSTRING_END, '"', [10, 11])
3299
+
3300
+ @lex.state = :expr_beg
3301
+ assert_scanned(%Q{'foo\0\x1a\x04bar'},
3302
+ :tSTRING_BEG, "'", [0, 1],
3303
+ :tSTRING_CONTENT, "foo\0", [1, 5],
3304
+ :tSTRING_CONTENT, "\x1a", [5, 6],
3305
+ :tSTRING_CONTENT, "\x04", [6, 7],
3306
+ :tSTRING_CONTENT, "bar", [7, 10],
3307
+ :tSTRING_END, "'", [10, 11])
3308
+
3309
+ @lex.state = :expr_beg
3310
+ assert_scanned(%Q{%w[foo\0\x1a\x04bar]},
3311
+ :tQWORDS_BEG, '%w[', [0, 3],
3312
+ :tSTRING_CONTENT, "foo\0", [3, 7],
3313
+ :tSTRING_CONTENT, "\x1a", [7, 8],
3314
+ :tSTRING_CONTENT, "\x04", [8, 9],
3315
+ :tSTRING_CONTENT, "bar", [9, 12],
3316
+ :tSPACE, nil, [12, 12],
3317
+ :tSTRING_END, ']', [12, 13])
3318
+
3319
+ @lex.state = :expr_beg
3320
+ assert_scanned(%Q{%W[foo\0\x1a\x04bar]},
3321
+ :tWORDS_BEG, '%W[', [0, 3],
3322
+ :tSTRING_CONTENT, "foo\0", [3, 7],
3323
+ :tSTRING_CONTENT, "\x1a", [7, 8],
3324
+ :tSTRING_CONTENT, "\x04", [8, 9],
3325
+ :tSTRING_CONTENT, "bar", [9, 12],
3326
+ :tSPACE, nil, [12, 12],
3327
+ :tSTRING_END, ']', [12, 13])
3328
+
3329
+ @lex.state = :expr_beg
3330
+ assert_scanned(%Q{# foo\0\nbar},
3331
+ :tIDENTIFIER, 'bar', [7, 10])
3332
+
3333
+ @lex.state = :line_begin
3334
+ assert_scanned(%Q{=begin\n\0\n=end\nbar},
3335
+ :tIDENTIFIER, 'bar', [14, 17])
3336
+ end
3337
+
3338
+ def test_bug_num_adj_kw
3339
+ assert_scanned('1if',
3340
+ :tINTEGER, 1, [0, 1],
3341
+ :kIF_MOD, 'if', [1, 3])
3342
+
3343
+ assert_scanned('1.0if',
3344
+ :tFLOAT, 1.0, [0, 3],
3345
+ :kIF_MOD, 'if', [3, 5])
3346
+ end
3347
+
3348
+ if defined?(Encoding)
3349
+ def test_bug_unicode_in_literal
3350
+ setup_lexer(19)
3351
+ assert_scanned('"\u00a4"',
3352
+ :tSTRING, "\u00a4", [0, 8])
3353
+ end
3354
+
3355
+ def test_bug_utf32le_leak
3356
+ setup_lexer(19)
3357
+ @lex.force_utf32 = true
3358
+ assert_scanned('"F0"',
3359
+ :tSTRING, "F0", [0, 4])
3360
+ end
3361
+ end
3362
+
3363
+ def test_bug_ragel_stack
3364
+ assert_scanned("\"\#{$2 ? $2 : 1}\"",
3365
+ :tSTRING_BEG, "\"", [0, 1],
3366
+ :tSTRING_DBEG, "\#{", [1, 3],
3367
+ :tNTH_REF, 2, [3, 5],
3368
+ :tEH, "?", [6, 7],
3369
+ :tNTH_REF, 2, [8, 10],
3370
+ :tCOLON, ":", [11, 12],
3371
+ :tINTEGER, 1, [13, 14],
3372
+ :tRCURLY, "}", [14, 15],
3373
+ :tSTRING_END, "\"", [15, 16])
3374
+ end
3375
+
3376
+ end