dirwatch 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,2270 @@
1
+ %%machine lex; # % fix highlighting
2
+
3
+ #
4
+ # === BEFORE YOU START ===
5
+ #
6
+ # Read the Ruby Hacking Guide chapter 11, available in English at
7
+ # http://whitequark.org/blog/2013/04/01/ruby-hacking-guide-ch-11-finite-state-lexer/
8
+ #
9
+ # Remember two things about Ragel scanners:
10
+ #
11
+ # 1) Longest match wins.
12
+ #
13
+ # 2) If two matches have the same length, the first
14
+ # in source code wins.
15
+ #
16
+ # General rules of making Ragel and Bison happy:
17
+ #
18
+ # * `p` (position) and `@te` contain the index of the character
19
+ # they're pointing to ("current"), plus one. `@ts` contains the index
20
+ # of the corresponding character. The code for extracting matched token is:
21
+ #
22
+ # @source_buffer.slice(@ts...@te)
23
+ #
24
+ # * If your input is `foooooooobar` and the rule is:
25
+ #
26
+ # 'f' 'o'+
27
+ #
28
+ # the result will be:
29
+ #
30
+ # foooooooobar
31
+ # ^ ts=0 ^ p=te=9
32
+ #
33
+ # * A Ragel lexer action should not emit more than one token, unless
34
+ # you know what you are doing.
35
+ #
36
+ # * All Ragel commands (fnext, fgoto, ...) end with a semicolon.
37
+ #
38
+ # * If an action emits the token and transitions to another state, use
39
+ # these Ragel commands:
40
+ #
41
+ # emit($whatever)
42
+ # fnext $next_state; fbreak;
43
+ #
44
+ # If you perform `fgoto` in an action which does not emit a token nor
45
+ # rewinds the stream pointer, the parser's side-effectful,
46
+ # context-sensitive lookahead actions will break in a hard to detect
47
+ # and debug way.
48
+ #
49
+ # * If an action does not emit a token:
50
+ #
51
+ # fgoto $next_state;
52
+ #
53
+ # * If an action features lookbehind, i.e. matches characters with the
54
+ # intent of passing them to another action:
55
+ #
56
+ # p = @ts - 1
57
+ # fgoto $next_state;
58
+ #
59
+ # or, if the lookbehind consists of a single character:
60
+ #
61
+ # fhold; fgoto $next_state;
62
+ #
63
+ # * Ragel merges actions. So, if you have `e_lparen = '(' %act` and
64
+ # `c_lparen = '('` and a lexer action `e_lparen | c_lparen`, the result
65
+ # _will_ invoke the action `act`.
66
+ #
67
+ # e_something stands for "something with **e**mbedded action".
68
+ #
69
+ # * EOF is explicit and is matched by `c_eof`. If you want to introspect
70
+ # the state of the lexer, add this rule to the state:
71
+ #
72
+ # c_eof => do_eof;
73
+ #
74
+ # * If you proceed past EOF, the lexer will complain:
75
+ #
76
+ # NoMethodError: undefined method `ord' for nil:NilClass
77
+ #
78
+
79
+ class Parser::Lexer
80
+
81
+ %% write data nofinal;
82
+ # %
83
+
84
+ ESCAPES = {
85
+ ?a.ord => "\a", ?b.ord => "\b", ?e.ord => "\e", ?f.ord => "\f",
86
+ ?n.ord => "\n", ?r.ord => "\r", ?s.ord => "\s", ?t.ord => "\t",
87
+ ?v.ord => "\v", ?\\.ord => "\\"
88
+ }.freeze
89
+
90
+ REGEXP_META_CHARACTERS = Regexp.union(*"\\$()*+.<>?[]^{|}".chars).freeze
91
+
92
+ RBRACE_OR_RBRACK = %w"} ]".freeze
93
+
94
+ attr_reader :source_buffer
95
+
96
+ attr_accessor :diagnostics
97
+ attr_accessor :static_env
98
+ attr_accessor :force_utf32
99
+
100
+ attr_accessor :cond, :cmdarg, :in_kwarg
101
+
102
+ attr_accessor :tokens, :comments
103
+
104
+ def initialize(version)
105
+ @version = version
106
+ @static_env = nil
107
+
108
+ @tokens = nil
109
+ @comments = nil
110
+
111
+ reset
112
+ end
113
+
114
+ def reset(reset_state=true)
115
+ # Ragel state:
116
+ if reset_state
117
+ # Unit tests set state prior to resetting lexer.
118
+ @cs = self.class.lex_en_line_begin
119
+
120
+ @cond = StackState.new('cond')
121
+ @cmdarg = StackState.new('cmdarg')
122
+ @cond_stack = []
123
+ @cmdarg_stack = []
124
+ end
125
+
126
+ @force_utf32 = false # Set to true by some tests
127
+
128
+ @source_pts = nil # @source as a codepoint array
129
+
130
+ @p = 0 # stream position (saved manually in #advance)
131
+ @ts = nil # token start
132
+ @te = nil # token end
133
+ @act = 0 # next action
134
+
135
+ @stack = [] # state stack
136
+ @top = 0 # state stack top pointer
137
+
138
+ # Lexer state:
139
+ @token_queue = []
140
+ @literal_stack = []
141
+
142
+ @eq_begin_s = nil # location of last encountered =begin
143
+ @sharp_s = nil # location of last encountered #
144
+
145
+ @newline_s = nil # location of last encountered newline
146
+
147
+ @num_base = nil # last numeric base
148
+ @num_digits_s = nil # starting position of numeric digits
149
+ @num_suffix_s = nil # starting position of numeric suffix
150
+ @num_xfrm = nil # numeric suffix-induced transformation
151
+
152
+ @escape_s = nil # starting position of current sequence
153
+ @escape = nil # last escaped sequence, as string
154
+
155
+ @herebody_s = nil # starting position of current heredoc line
156
+
157
+ # Ruby 1.9 ->() lambdas emit a distinct token if do/{ is
158
+ # encountered after a matching closing parenthesis.
159
+ @paren_nest = 0
160
+ @lambda_stack = []
161
+
162
+ # After encountering the closing line of <<~SQUIGGLY_HEREDOC,
163
+ # we store the indentation level and give it out to the parser
164
+ # on request. It is not possible to infer indentation level just
165
+ # from the AST because escape sequences such as `\ ` or `\t` are
166
+ # expanded inside the lexer, but count as non-whitespace for
167
+ # indentation purposes.
168
+ @dedent_level = nil
169
+
170
+ # If the lexer is in `command state' (aka expr_value)
171
+ # at the entry to #advance, it will transition to expr_cmdarg
172
+ # instead of expr_arg at certain points.
173
+ @command_state = false
174
+
175
+ # True at the end of "def foo a:"
176
+ @in_kwarg = false
177
+ end
178
+
179
+ def source_buffer=(source_buffer)
180
+ @source_buffer = source_buffer
181
+
182
+ if @source_buffer
183
+ source = @source_buffer.source
184
+
185
+ if defined?(Encoding) && source.encoding == Encoding::UTF_8
186
+ @source_pts = source.unpack('U*')
187
+ else
188
+ @source_pts = source.unpack('C*')
189
+ end
190
+
191
+ if @source_pts[0] == 0xfeff
192
+ # Skip byte order mark.
193
+ @p = 1
194
+ end
195
+ else
196
+ @source_pts = nil
197
+ end
198
+ end
199
+
200
+ def encoding
201
+ @source_buffer.source.encoding
202
+ end
203
+
204
+ LEX_STATES = {
205
+ :line_begin => lex_en_line_begin,
206
+ :expr_dot => lex_en_expr_dot,
207
+ :expr_fname => lex_en_expr_fname,
208
+ :expr_value => lex_en_expr_value,
209
+ :expr_beg => lex_en_expr_beg,
210
+ :expr_mid => lex_en_expr_mid,
211
+ :expr_arg => lex_en_expr_arg,
212
+ :expr_cmdarg => lex_en_expr_cmdarg,
213
+ :expr_end => lex_en_expr_end,
214
+ :expr_endarg => lex_en_expr_endarg,
215
+ :expr_endfn => lex_en_expr_endfn,
216
+ :expr_labelarg => lex_en_expr_labelarg,
217
+
218
+ :interp_string => lex_en_interp_string,
219
+ :interp_words => lex_en_interp_words,
220
+ :plain_string => lex_en_plain_string,
221
+ :plain_words => lex_en_plain_string,
222
+ }
223
+
224
+ def state
225
+ LEX_STATES.invert.fetch(@cs, @cs)
226
+ end
227
+
228
+ def state=(state)
229
+ @cs = LEX_STATES.fetch(state)
230
+ end
231
+
232
+ def push_cmdarg
233
+ @cmdarg_stack.push(@cmdarg)
234
+ @cmdarg = StackState.new("cmdarg.#{@cmdarg_stack.count}")
235
+ end
236
+
237
+ def pop_cmdarg
238
+ @cmdarg = @cmdarg_stack.pop
239
+ end
240
+
241
+ def push_cond
242
+ @cond_stack.push(@cond)
243
+ @cond = StackState.new("cond.#{@cond_stack.count}")
244
+ end
245
+
246
+ def pop_cond
247
+ @cond = @cond_stack.pop
248
+ end
249
+
250
+ def dedent_level
251
+ # We erase @dedent_level as a precaution to avoid accidentally
252
+ # using a stale value.
253
+ dedent_level, @dedent_level = @dedent_level, nil
254
+ dedent_level
255
+ end
256
+
257
+ # Return next token: [type, value].
258
+ def advance
259
+ if @token_queue.any?
260
+ return @token_queue.shift
261
+ end
262
+
263
+ # Ugly, but dependent on Ragel output. Consider refactoring it somehow.
264
+ klass = self.class
265
+ _lex_trans_keys = klass.send :_lex_trans_keys
266
+ _lex_key_spans = klass.send :_lex_key_spans
267
+ _lex_index_offsets = klass.send :_lex_index_offsets
268
+ _lex_indicies = klass.send :_lex_indicies
269
+ _lex_trans_targs = klass.send :_lex_trans_targs
270
+ _lex_trans_actions = klass.send :_lex_trans_actions
271
+ _lex_to_state_actions = klass.send :_lex_to_state_actions
272
+ _lex_from_state_actions = klass.send :_lex_from_state_actions
273
+ _lex_eof_trans = klass.send :_lex_eof_trans
274
+
275
+ pe = @source_pts.size + 2
276
+ p, eof = @p, pe
277
+
278
+ @command_state = (@cs == klass.lex_en_expr_value ||
279
+ @cs == klass.lex_en_line_begin)
280
+
281
+ %% write exec;
282
+ # %
283
+
284
+ @p = p
285
+
286
+ if @token_queue.any?
287
+ @token_queue.shift
288
+ elsif @cs == klass.lex_error
289
+ [ false, [ '$error'.freeze, range(p - 1, p) ] ]
290
+ else
291
+ eof = @source_pts.size
292
+ [ false, [ '$eof'.freeze, range(eof, eof) ] ]
293
+ end
294
+ end
295
+
296
+ protected
297
+
298
+ def eof_codepoint?(point)
299
+ [0x04, 0x1a, 0x00].include? point
300
+ end
301
+
302
+ def version?(*versions)
303
+ versions.include?(@version)
304
+ end
305
+
306
+ def stack_pop
307
+ @top -= 1
308
+ @stack[@top]
309
+ end
310
+
311
+ if defined?(Encoding)
312
+ def encode_escape(ord)
313
+ ord.chr.force_encoding(@source_buffer.source.encoding)
314
+ end
315
+ else
316
+ def encode_escape(ord)
317
+ ord.chr
318
+ end
319
+ end
320
+
321
+ def tok(s = @ts, e = @te)
322
+ @source_buffer.slice(s...e)
323
+ end
324
+
325
+ def range(s = @ts, e = @te)
326
+ Parser::Source::Range.new(@source_buffer, s, e)
327
+ end
328
+
329
+ def emit(type, value = tok, s = @ts, e = @te)
330
+ token = [ type, [ value, range(s, e) ] ]
331
+
332
+ @token_queue.push(token)
333
+
334
+ @tokens.push(token) if @tokens
335
+
336
+ token
337
+ end
338
+
339
+ def emit_table(table, s = @ts, e = @te)
340
+ value = tok(s, e)
341
+
342
+ emit(table[value], value, s, e)
343
+ end
344
+
345
+ def emit_do(do_block=false)
346
+ if @cond.active?
347
+ emit(:kDO_COND, 'do'.freeze)
348
+ elsif @cmdarg.active? || do_block
349
+ emit(:kDO_BLOCK, 'do'.freeze)
350
+ else
351
+ emit(:kDO, 'do'.freeze)
352
+ end
353
+ end
354
+
355
+ def arg_or_cmdarg
356
+ if @command_state
357
+ self.class.lex_en_expr_cmdarg
358
+ else
359
+ self.class.lex_en_expr_arg
360
+ end
361
+ end
362
+
363
+ def emit_comment(s = @ts, e = @te)
364
+ if @comments
365
+ @comments.push(Parser::Source::Comment.new(range(s, e)))
366
+ end
367
+
368
+ if @tokens
369
+ @tokens.push([ :tCOMMENT, [ tok(s, e), range(s, e) ] ])
370
+ end
371
+
372
+ nil
373
+ end
374
+
375
+ def diagnostic(type, reason, arguments=nil, location=range, highlights=[])
376
+ @diagnostics.process(
377
+ Parser::Diagnostic.new(type, reason, arguments, location, highlights))
378
+ end
379
+
380
+ #
381
+ # === LITERAL STACK ===
382
+ #
383
+
384
+ def push_literal(*args)
385
+ new_literal = Literal.new(self, *args)
386
+ @literal_stack.push(new_literal)
387
+
388
+ if new_literal.words? && new_literal.backslash_delimited?
389
+ if new_literal.interpolate?
390
+ self.class.lex_en_interp_backslash_delimited_words
391
+ else
392
+ self.class.lex_en_plain_backslash_delimited_words
393
+ end
394
+ elsif new_literal.words? && !new_literal.backslash_delimited?
395
+ if new_literal.interpolate?
396
+ self.class.lex_en_interp_words
397
+ else
398
+ self.class.lex_en_plain_words
399
+ end
400
+ elsif !new_literal.words? && new_literal.backslash_delimited?
401
+ if new_literal.interpolate?
402
+ self.class.lex_en_interp_backslash_delimited
403
+ else
404
+ self.class.lex_en_plain_backslash_delimited
405
+ end
406
+ else
407
+ if new_literal.interpolate?
408
+ self.class.lex_en_interp_string
409
+ else
410
+ self.class.lex_en_plain_string
411
+ end
412
+ end
413
+ end
414
+
415
+ def literal
416
+ @literal_stack.last
417
+ end
418
+
419
+ def pop_literal
420
+ old_literal = @literal_stack.pop
421
+
422
+ @dedent_level = old_literal.dedent_level
423
+
424
+ if old_literal.type == :tREGEXP_BEG
425
+ # Fetch modifiers.
426
+ self.class.lex_en_regexp_modifiers
427
+ else
428
+ self.class.lex_en_expr_end
429
+ end
430
+ end
431
+
432
+ # Mapping of strings to parser tokens.
433
+
434
+ PUNCTUATION = {
435
+ '=' => :tEQL, '&' => :tAMPER2, '|' => :tPIPE,
436
+ '!' => :tBANG, '^' => :tCARET, '+' => :tPLUS,
437
+ '-' => :tMINUS, '*' => :tSTAR2, '/' => :tDIVIDE,
438
+ '%' => :tPERCENT, '~' => :tTILDE, ',' => :tCOMMA,
439
+ ';' => :tSEMI, '.' => :tDOT, '..' => :tDOT2,
440
+ '...' => :tDOT3, '[' => :tLBRACK2, ']' => :tRBRACK,
441
+ '(' => :tLPAREN2, ')' => :tRPAREN, '?' => :tEH,
442
+ ':' => :tCOLON, '&&' => :tANDOP, '||' => :tOROP,
443
+ '-@' => :tUMINUS, '+@' => :tUPLUS, '~@' => :tTILDE,
444
+ '**' => :tPOW, '->' => :tLAMBDA, '=~' => :tMATCH,
445
+ '!~' => :tNMATCH, '==' => :tEQ, '!=' => :tNEQ,
446
+ '>' => :tGT, '>>' => :tRSHFT, '>=' => :tGEQ,
447
+ '<' => :tLT, '<<' => :tLSHFT, '<=' => :tLEQ,
448
+ '=>' => :tASSOC, '::' => :tCOLON2, '===' => :tEQQ,
449
+ '<=>' => :tCMP, '[]' => :tAREF, '[]=' => :tASET,
450
+ '{' => :tLCURLY, '}' => :tRCURLY, '`' => :tBACK_REF2,
451
+ '!@' => :tBANG, '&.' => :tANDDOT,
452
+ }
453
+
454
+ PUNCTUATION_BEGIN = {
455
+ '&' => :tAMPER, '*' => :tSTAR, '**' => :tDSTAR,
456
+ '+' => :tUPLUS, '-' => :tUMINUS, '::' => :tCOLON3,
457
+ '(' => :tLPAREN, '{' => :tLBRACE, '[' => :tLBRACK,
458
+ }
459
+
460
+ KEYWORDS = {
461
+ 'if' => :kIF_MOD, 'unless' => :kUNLESS_MOD,
462
+ 'while' => :kWHILE_MOD, 'until' => :kUNTIL_MOD,
463
+ 'rescue' => :kRESCUE_MOD, 'defined?' => :kDEFINED,
464
+ 'BEGIN' => :klBEGIN, 'END' => :klEND,
465
+ }
466
+
467
+ KEYWORDS_BEGIN = {
468
+ 'if' => :kIF, 'unless' => :kUNLESS,
469
+ 'while' => :kWHILE, 'until' => :kUNTIL,
470
+ 'rescue' => :kRESCUE, 'defined?' => :kDEFINED,
471
+ }
472
+
473
+ %w(class module def undef begin end then elsif else ensure case when
474
+ for break next redo retry in do return yield super self nil true
475
+ false and or not alias __FILE__ __LINE__ __ENCODING__).each do |keyword|
476
+ KEYWORDS_BEGIN[keyword] = KEYWORDS[keyword] = :"k#{keyword.upcase}"
477
+ end
478
+
479
+ %%{
480
+ # %
481
+
482
+ access @;
483
+ getkey (@source_pts[p] || 0);
484
+
485
+ # === CHARACTER CLASSES ===
486
+ #
487
+ # Pay close attention to the differences between c_any and any.
488
+ # c_any does not include EOF and so will cause incorrect behavior
489
+ # for machine subtraction (any-except rules) and default transitions
490
+ # for scanners.
491
+
492
+ action do_nl {
493
+ # Record position of a newline for precise location reporting on tNL
494
+ # tokens.
495
+ #
496
+ # This action is embedded directly into c_nl, as it is idempotent and
497
+ # there are no cases when we need to skip it.
498
+ @newline_s = p
499
+ }
500
+
501
+ c_nl = '\n' $ do_nl;
502
+ c_space = [ \t\r\f\v];
503
+ c_space_nl = c_space | c_nl;
504
+
505
+ c_eof = 0x04 | 0x1a | 0 | zlen; # ^D, ^Z, \0, EOF
506
+ c_eol = c_nl | c_eof;
507
+ c_any = any - c_eof;
508
+
509
+ c_nl_zlen = c_nl | zlen;
510
+ c_line = any - c_nl_zlen;
511
+
512
+ c_unicode = c_any - 0x00..0x7f;
513
+ c_upper = [A-Z];
514
+ c_lower = [a-z_] | c_unicode;
515
+ c_alpha = c_lower | c_upper;
516
+ c_alnum = c_alpha | [0-9];
517
+
518
+ action do_eof {
519
+ # Sit at EOF indefinitely. #advance would return $eof each time.
520
+ # This allows to feed the lexer more data if needed; this is only used
521
+ # in tests.
522
+ #
523
+ # Note that this action is not embedded into e_eof like e_heredoc_nl and e_bs
524
+ # below. This is due to the fact that scanner state at EOF is observed
525
+ # by tests, and encapsulating it in a rule would break the introspection.
526
+ fhold; fbreak;
527
+ }
528
+
529
+ #
530
+ # === TOKEN DEFINITIONS ===
531
+ #
532
+
533
+ # All operators are punctuation. There is more to punctuation
534
+ # than just operators. Operators can be overridden by user;
535
+ # punctuation can not.
536
+
537
+ # A list of operators which are valid in the function name context, but
538
+ # have different semantics in others.
539
+ operator_fname = '[]' | '[]=' | '`' | '-@' | '+@' | '~@' | '!@' ;
540
+
541
+ # A list of operators which can occur within an assignment shortcut (+ → +=).
542
+ operator_arithmetic = '&' | '|' | '&&' | '||' | '^' | '+' | '-' |
543
+ '*' | '/' | '**' | '~' | '<<' | '>>' | '%' ;
544
+
545
+ # A list of all user-definable operators not covered by groups above.
546
+ operator_rest = '=~' | '!~' | '==' | '!=' | '!' | '===' |
547
+ '<' | '<=' | '>' | '>=' | '<=>' | '=>' ;
548
+
549
+ # Note that `{` and `}` need to be referred to as e_lbrace and e_rbrace,
550
+ # as they are ambiguous with interpolation `#{}` and should be counted.
551
+ # These braces are not present in punctuation lists.
552
+
553
+ # A list of punctuation which has different meaning when used at the
554
+ # beginning of expression.
555
+ punctuation_begin = '-' | '+' | '::' | '(' | '[' |
556
+ '*' | '**' | '&' ;
557
+
558
+ # A list of all punctuation except punctuation_begin.
559
+ punctuation_end = ',' | '=' | '->' | '(' | '[' | ']' |
560
+ '::' | '?' | ':' | '.' | '..' | '...' ;
561
+
562
+ # A list of keywords which have different meaning at the beginning of expression.
563
+ keyword_modifier = 'if' | 'unless' | 'while' | 'until' | 'rescue' ;
564
+
565
+ # A list of keywords which accept an argument-like expression, i.e. have the
566
+ # same post-processing as method calls or commands. Example: `yield 1`,
567
+ # `yield (1)`, `yield(1)`, are interpreted as if `yield` was a function.
568
+ keyword_with_arg = 'yield' | 'super' | 'not' | 'defined?' ;
569
+
570
+ # A list of keywords which accept a literal function name as an argument.
571
+ keyword_with_fname = 'def' | 'undef' | 'alias' ;
572
+
573
+ # A list of keywords which accept an expression after them.
574
+ keyword_with_value = 'else' | 'case' | 'ensure' | 'module' | 'elsif' | 'then' |
575
+ 'for' | 'in' | 'do' | 'when' | 'begin' | 'class' |
576
+ 'and' | 'or' ;
577
+
578
+ # A list of keywords which accept a value, and treat the keywords from
579
+ # `keyword_modifier` list as modifiers.
580
+ keyword_with_mid = 'rescue' | 'return' | 'break' | 'next' ;
581
+
582
+ # A list of keywords which do not accept an expression after them.
583
+ keyword_with_end = 'end' | 'self' | 'true' | 'false' | 'retry' |
584
+ 'redo' | 'nil' | 'BEGIN' | 'END' | '__FILE__' |
585
+ '__LINE__' | '__ENCODING__';
586
+
587
+ # All keywords.
588
+ keyword = keyword_with_value | keyword_with_mid |
589
+ keyword_with_end | keyword_with_arg |
590
+ keyword_with_fname | keyword_modifier ;
591
+
592
+ constant = c_upper c_alnum*;
593
+ bareword = c_alpha c_alnum*;
594
+
595
+ call_or_var = c_lower c_alnum*;
596
+ class_var = '@@' bareword;
597
+ instance_var = '@' bareword;
598
+ global_var = '$'
599
+ ( bareword | digit+
600
+ | [`'+~*$&?!@/\\;,.=:<>"] # `
601
+ | '-' c_alnum
602
+ )
603
+ ;
604
+
605
+ # Ruby accepts (and fails on) variables with leading digit
606
+ # in literal context, but not in unquoted symbol body.
607
+ class_var_v = '@@' c_alnum+;
608
+ instance_var_v = '@' c_alnum+;
609
+
610
+ label = bareword [?!]? ':';
611
+
612
+ #
613
+ # === NUMERIC PARSING ===
614
+ #
615
+
616
+ int_hex = ( xdigit+ '_' )* xdigit* '_'? ;
617
+ int_dec = ( digit+ '_' )* digit* '_'? ;
618
+ int_bin = ( [01]+ '_' )* [01]* '_'? ;
619
+
620
+ flo_int = [1-9] [0-9]* ( '_' digit+ )* | '0';
621
+ flo_frac = '.' ( digit+ '_' )* digit+;
622
+ flo_pow = [eE] [+\-]? ( digit+ '_' )* digit+;
623
+
624
+ int_suffix =
625
+ '' % { @num_xfrm = lambda { |chars| emit(:tINTEGER, chars) } }
626
+ | 'r' % { @num_xfrm = lambda { |chars| emit(:tRATIONAL, Rational(chars)) } }
627
+ | 'i' % { @num_xfrm = lambda { |chars| emit(:tIMAGINARY, Complex(0, chars)) } }
628
+ | 'ri' % { @num_xfrm = lambda { |chars| emit(:tIMAGINARY, Complex(0, Rational(chars))) } };
629
+
630
+ flo_pow_suffix =
631
+ '' % { @num_xfrm = lambda { |chars| emit(:tFLOAT, Float(chars)) } }
632
+ | 'i' % { @num_xfrm = lambda { |chars| emit(:tIMAGINARY, Complex(0, Float(chars))) } };
633
+
634
+ flo_suffix =
635
+ flo_pow_suffix
636
+ | 'r' % { @num_xfrm = lambda { |chars| emit(:tRATIONAL, Rational(chars)) } }
637
+ | 'ri' % { @num_xfrm = lambda { |chars| emit(:tIMAGINARY, Complex(0, Rational(chars))) } };
638
+
639
+ #
640
+ # === ESCAPE SEQUENCE PARSING ===
641
+ #
642
+
643
+ # Escape parsing code is a Ragel pattern, not a scanner, and therefore
644
+ # it shouldn't directly raise errors or perform other actions with side effects.
645
+ # In reality this would probably just mess up error reporting in pathological
646
+ # cases, through.
647
+
648
+ # The amount of code required to parse \M\C stuff correctly is ridiculous.
649
+
650
+ escaped_nl = "\\" c_nl;
651
+
652
+ action unicode_points {
653
+ @escape = ""
654
+
655
+ codepoints = tok(@escape_s + 2, p - 1)
656
+ codepoint_s = @escape_s + 2
657
+
658
+ codepoints.split(/[ \t]/).each do |codepoint_str|
659
+ codepoint = codepoint_str.to_i(16)
660
+
661
+ if codepoint >= 0x110000
662
+ diagnostic :error, :unicode_point_too_large, nil,
663
+ range(codepoint_s, codepoint_s + codepoint_str.length)
664
+ break
665
+ end
666
+
667
+ @escape += codepoint.chr(Encoding::UTF_8)
668
+ codepoint_s += codepoint_str.length + 1
669
+ end
670
+ }
671
+
672
+ action unescape_char {
673
+ codepoint = @source_pts[p - 1]
674
+ if (@escape = ESCAPES[codepoint]).nil?
675
+ @escape = encode_escape(@source_buffer.slice(p - 1))
676
+ end
677
+ }
678
+
679
+ action invalid_complex_escape {
680
+ diagnostic :fatal, :invalid_escape
681
+ }
682
+
683
+ action slash_c_char {
684
+ @escape = encode_escape(@escape[0].ord & 0x9f)
685
+ }
686
+
687
+ action slash_m_char {
688
+ @escape = encode_escape(@escape[0].ord | 0x80)
689
+ }
690
+
691
+ maybe_escaped_char = (
692
+ '\\' c_any %unescape_char
693
+ | ( c_any - [\\] ) % { @escape = @source_buffer.slice(p - 1).chr }
694
+ );
695
+
696
+ maybe_escaped_ctrl_char = ( # why?!
697
+ '\\' c_any %unescape_char %slash_c_char
698
+ | '?' % { @escape = "\x7f" }
699
+ | ( c_any - [\\?] ) % { @escape = @source_buffer.slice(p - 1).chr } %slash_c_char
700
+ );
701
+
702
+ escape = (
703
+ # \377
704
+ [0-7]{1,3}
705
+ % { @escape = encode_escape(tok(@escape_s, p).to_i(8) % 0x100) }
706
+
707
+ # \xff
708
+ | 'x' xdigit{1,2}
709
+ % { @escape = encode_escape(tok(@escape_s + 1, p).to_i(16)) }
710
+
711
+ # \u263a
712
+ | 'u' xdigit{4}
713
+ % { @escape = tok(@escape_s + 1, p).to_i(16).chr(Encoding::UTF_8) }
714
+
715
+ # %q[\x]
716
+ | 'x' ( c_any - xdigit )
717
+ % {
718
+ diagnostic :fatal, :invalid_hex_escape, nil, range(@escape_s - 1, p + 2)
719
+ }
720
+
721
+ # %q[\u123] %q[\u{12]
722
+ | 'u' ( c_any{0,4} -
723
+ xdigit{4} - # \u1234 is valid
724
+ ( '{' xdigit{1,3} # \u{1 \u{12 \u{123 are valid
725
+ | '{' xdigit [ \t}] any? # \u{1. \u{1} are valid
726
+ | '{' xdigit{2} [ \t}] # \u{12. \u{12} are valid
727
+ )
728
+ )
729
+ % {
730
+ diagnostic :fatal, :invalid_unicode_escape, nil, range(@escape_s - 1, p)
731
+ }
732
+
733
+ # \u{123 456}
734
+ | 'u{' ( xdigit{1,6} [ \t] )*
735
+ ( xdigit{1,6} '}'
736
+ %unicode_points
737
+ | ( xdigit* ( c_any - xdigit - '}' )+ '}'
738
+ | ( c_any - '}' )* c_eof
739
+ | xdigit{7,}
740
+ ) % {
741
+ diagnostic :fatal, :unterminated_unicode, nil, range(p - 1, p)
742
+ }
743
+ )
744
+
745
+ # \C-\a \cx
746
+ | ( 'C-' | 'c' ) escaped_nl?
747
+ maybe_escaped_ctrl_char
748
+
749
+ # \M-a
750
+ | 'M-' escaped_nl?
751
+ maybe_escaped_char
752
+ %slash_m_char
753
+
754
+ # \C-\M-f \M-\cf \c\M-f
755
+ | ( ( 'C-' | 'c' ) escaped_nl? '\\M-'
756
+ | 'M-\\' escaped_nl? ( 'C-' | 'c' ) ) escaped_nl?
757
+ maybe_escaped_ctrl_char
758
+ %slash_m_char
759
+
760
+ | 'C' c_any %invalid_complex_escape
761
+ | 'M' c_any %invalid_complex_escape
762
+ | ( 'M-\\C' | 'C-\\M' ) c_any %invalid_complex_escape
763
+
764
+ | ( c_any - [0-7xuCMc] ) %unescape_char
765
+
766
+ | c_eof % {
767
+ diagnostic :fatal, :escape_eof, nil, range(p - 1, p)
768
+ }
769
+ );
770
+
771
+ # Use rules in form of `e_bs escape' when you need to parse a sequence.
772
+ e_bs = '\\' % {
773
+ @escape_s = p
774
+ @escape = nil
775
+ };
776
+
777
+ #
778
+ # === STRING AND HEREDOC PARSING ===
779
+ #
780
+
781
+ # Heredoc parsing is quite a complex topic. First, consider that heredocs
782
+ # can be arbitrarily nested. For example:
783
+ #
784
+ # puts <<CODE
785
+ # the result is: #{<<RESULT.inspect
786
+ # i am a heredoc
787
+ # RESULT
788
+ # }
789
+ # CODE
790
+ #
791
+ # which, incidentally, evaluates to:
792
+ #
793
+ # the result is: " i am a heredoc\n"
794
+ #
795
+ # To parse them, lexer refers to two kinds (remember, nested heredocs)
796
+ # of positions in the input stream, namely heredoc_e
797
+ # (HEREDOC declaration End) and @herebody_s (HEREdoc BODY line Start).
798
+ #
799
+ # heredoc_e is simply contained inside the corresponding Literal, and
800
+ # when the heredoc is closed, the lexing is restarted from that position.
801
+ #
802
+ # @herebody_s is quite more complex. First, @herebody_s changes after each
803
+ # heredoc line is lexed. This way, at '\n' tok(@herebody_s, @te) always
804
+ # contains the current line, and also when a heredoc is started, @herebody_s
805
+ # contains the position from which the heredoc will be lexed.
806
+ #
807
+ # Second, as (insanity) there are nested heredocs, we need to maintain a
808
+ # stack of these positions. Each time #push_literal is called, it saves current
809
+ # @heredoc_s to literal.saved_herebody_s, and after an interpolation (possibly
810
+ # containing another heredocs) is closed, the previous value is restored.
811
+
812
+ e_heredoc_nl = c_nl % {
813
+ # After every heredoc was parsed, @herebody_s contains the
814
+ # position of next token after all heredocs.
815
+ if @herebody_s
816
+ p = @herebody_s
817
+ @herebody_s = nil
818
+ end
819
+ };
820
+
821
+ action extend_string {
822
+ string = tok
823
+
824
+ # tLABEL_END is only possible in non-cond context on >= 2.2
825
+ if @version >= 22 && !@cond.active?
826
+ lookahead = @source_buffer.slice(@te...@te+2)
827
+ end
828
+
829
+ current_literal = literal
830
+ if !current_literal.heredoc? &&
831
+ (token = current_literal.nest_and_try_closing(string, @ts, @te, lookahead))
832
+ if token[0] == :tLABEL_END
833
+ p += 1
834
+ pop_literal
835
+ fnext expr_labelarg;
836
+ else
837
+ fnext *pop_literal;
838
+ end
839
+ fbreak;
840
+ else
841
+ current_literal.extend_string(string, @ts, @te)
842
+ end
843
+ }
844
+
845
+ action extend_string_escaped {
846
+ current_literal = literal
847
+ # Get the first character after the backslash.
848
+ escaped_char = @source_buffer.slice(@escape_s).chr
849
+
850
+ if current_literal.munge_escape? escaped_char
851
+ # If this particular literal uses this character as an opening
852
+ # or closing delimiter, it is an escape sequence for that
853
+ # particular character. Write it without the backslash.
854
+
855
+ if current_literal.regexp? && REGEXP_META_CHARACTERS.match(escaped_char)
856
+ # Regular expressions should include escaped delimiters in their
857
+ # escaped form, except when the escaped character is
858
+ # a closing delimiter but not a regexp metacharacter.
859
+ #
860
+ # The backslash itself cannot be used as a closing delimiter
861
+ # at the same time as an escape symbol, but it is always munged,
862
+ # so this branch also executes for the non-closing-delimiter case
863
+ # for the backslash.
864
+ current_literal.extend_string(tok, @ts, @te)
865
+ else
866
+ current_literal.extend_string(escaped_char, @ts, @te)
867
+ end
868
+ else
869
+ # It does not. So this is an actual escape sequence, yay!
870
+ if current_literal.regexp?
871
+ # Regular expressions should include escape sequences in their
872
+ # escaped form. On the other hand, escaped newlines are removed.
873
+ current_literal.extend_string(tok.gsub("\\\n".freeze, ''.freeze), @ts, @te)
874
+ else
875
+ current_literal.extend_string(@escape || tok, @ts, @te)
876
+ end
877
+ end
878
+ }
879
+
880
+ # Extend a string with a newline or a EOF character.
881
+ # As heredoc closing line can immediately precede EOF, this action
882
+ # has to handle such case specially.
883
+ action extend_string_eol {
884
+ current_literal = literal
885
+ if @te == pe
886
+ diagnostic :fatal, :string_eof, nil,
887
+ range(current_literal.str_s, current_literal.str_s + 1)
888
+ end
889
+
890
+ if current_literal.heredoc?
891
+ line = tok(@herebody_s, @ts).gsub(/\r+$/, ''.freeze)
892
+
893
+ if version?(18, 19, 20)
894
+ # See ruby:c48b4209c
895
+ line = line.gsub(/\r.*$/, ''.freeze)
896
+ end
897
+
898
+ # Try ending the heredoc with the complete most recently
899
+ # scanned line. @herebody_s always refers to the start of such line.
900
+ if current_literal.nest_and_try_closing(line, @herebody_s, @ts)
901
+ # Adjust @herebody_s to point to the next line.
902
+ @herebody_s = @te
903
+
904
+ # Continue regular lexing after the heredoc reference (<<END).
905
+ p = current_literal.heredoc_e - 1
906
+ fnext *pop_literal; fbreak;
907
+ else
908
+ # Calculate indentation level for <<~HEREDOCs.
909
+ current_literal.infer_indent_level(line)
910
+
911
+ # Ditto.
912
+ @herebody_s = @te
913
+ end
914
+ else
915
+ # Try ending the literal with a newline.
916
+ if current_literal.nest_and_try_closing(tok, @ts, @te)
917
+ fnext *pop_literal; fbreak;
918
+ end
919
+
920
+ if @herebody_s
921
+ # This is a regular literal intertwined with a heredoc. Like:
922
+ #
923
+ # p <<-foo+"1
924
+ # bar
925
+ # foo
926
+ # 2"
927
+ #
928
+ # which, incidentally, evaluates to "bar\n1\n2".
929
+ p = @herebody_s - 1
930
+ @herebody_s = nil
931
+ end
932
+ end
933
+
934
+ if current_literal.words? && !eof_codepoint?(@source_pts[p])
935
+ current_literal.extend_space @ts, @te
936
+ else
937
+ # A literal newline is appended if the heredoc was _not_ closed
938
+ # this time (see fbreak above). See also Literal#nest_and_try_closing
939
+ # for rationale of calling #flush_string here.
940
+ current_literal.extend_string tok, @ts, @te
941
+ current_literal.flush_string
942
+ end
943
+ }
944
+
945
+ action extend_string_space {
946
+ literal.extend_space @ts, @te
947
+ }
948
+
949
+ #
950
+ # === INTERPOLATION PARSING ===
951
+ #
952
+
953
+ # Interpolations with immediate variable names simply call into
954
+ # the corresponding machine.
955
+
956
+ interp_var = '#' ( global_var | class_var_v | instance_var_v );
957
+
958
+ action extend_interp_var {
959
+ current_literal = literal
960
+ current_literal.flush_string
961
+ current_literal.extend_content
962
+
963
+ emit(:tSTRING_DVAR, nil, @ts, @ts + 1)
964
+
965
+ p = @ts
966
+ fcall expr_variable;
967
+ }
968
+
969
+ # Interpolations with code blocks must match nested curly braces, as
970
+ # interpolation ending is ambiguous with a block ending. So, every
971
+ # opening and closing brace should be matched with e_[lr]brace rules,
972
+ # which automatically perform the counting.
973
+ #
974
+ # Note that interpolations can themselves be nested, so brace balance
975
+ # is tied to the innermost literal.
976
+ #
977
+ # Also note that literals themselves should not use e_[lr]brace rules
978
+ # when matching their opening and closing delimiters, as the amount of
979
+ # braces inside the characters of a string literal is independent.
980
+
981
+ interp_code = '#{';
982
+
983
+ e_lbrace = '{' % {
984
+ @cond.push(false); @cmdarg.push(false)
985
+
986
+ current_literal = literal
987
+ if current_literal
988
+ current_literal.start_interp_brace
989
+ end
990
+ };
991
+
992
+ e_rbrace = '}' % {
993
+ current_literal = literal
994
+ if current_literal
995
+ if current_literal.end_interp_brace_and_try_closing
996
+ if version?(18, 19)
997
+ emit(:tRCURLY, '}'.freeze, p - 1, p)
998
+ else
999
+ emit(:tSTRING_DEND, '}'.freeze, p - 1, p)
1000
+ end
1001
+
1002
+ if current_literal.saved_herebody_s
1003
+ @herebody_s = current_literal.saved_herebody_s
1004
+ end
1005
+
1006
+ fhold;
1007
+ fnext *stack_pop;
1008
+ fbreak;
1009
+ end
1010
+ end
1011
+ };
1012
+
1013
+ action extend_interp_code {
1014
+ current_literal = literal
1015
+ current_literal.flush_string
1016
+ current_literal.extend_content
1017
+
1018
+ emit(:tSTRING_DBEG, '#{'.freeze)
1019
+
1020
+ if current_literal.heredoc?
1021
+ current_literal.saved_herebody_s = @herebody_s
1022
+ @herebody_s = nil
1023
+ end
1024
+
1025
+ current_literal.start_interp_brace
1026
+ fcall expr_value;
1027
+ }
1028
+
1029
+ # Actual string parsers are simply combined from the primitives defined
1030
+ # above.
1031
+
1032
+ interp_words := |*
1033
+ interp_code => extend_interp_code;
1034
+ interp_var => extend_interp_var;
1035
+ e_bs escape => extend_string_escaped;
1036
+ c_space+ => extend_string_space;
1037
+ c_eol => extend_string_eol;
1038
+ c_any => extend_string;
1039
+ *|;
1040
+
1041
+ interp_string := |*
1042
+ interp_code => extend_interp_code;
1043
+ interp_var => extend_interp_var;
1044
+ e_bs escape => extend_string_escaped;
1045
+ c_eol => extend_string_eol;
1046
+ c_any => extend_string;
1047
+ *|;
1048
+
1049
+ plain_words := |*
1050
+ e_bs c_any => extend_string_escaped;
1051
+ c_space+ => extend_string_space;
1052
+ c_eol => extend_string_eol;
1053
+ c_any => extend_string;
1054
+ *|;
1055
+
1056
+ plain_string := |*
1057
+ '\\' c_nl => extend_string_eol;
1058
+ e_bs c_any => extend_string_escaped;
1059
+ c_eol => extend_string_eol;
1060
+ c_any => extend_string;
1061
+ *|;
1062
+
1063
+ interp_backslash_delimited := |*
1064
+ interp_code => extend_interp_code;
1065
+ interp_var => extend_interp_var;
1066
+ c_eol => extend_string_eol;
1067
+ c_any => extend_string;
1068
+ *|;
1069
+
1070
+ plain_backslash_delimited := |*
1071
+ c_eol => extend_string_eol;
1072
+ c_any => extend_string;
1073
+ *|;
1074
+
1075
+ interp_backslash_delimited_words := |*
1076
+ interp_code => extend_interp_code;
1077
+ interp_var => extend_interp_var;
1078
+ c_space+ => extend_string_space;
1079
+ c_eol => extend_string_eol;
1080
+ c_any => extend_string;
1081
+ *|;
1082
+
1083
+ plain_backslash_delimited_words := |*
1084
+ c_space+ => extend_string_space;
1085
+ c_eol => extend_string_eol;
1086
+ c_any => extend_string;
1087
+ *|;
1088
+
1089
+ regexp_modifiers := |*
1090
+ [A-Za-z]+
1091
+ => {
1092
+ unknown_options = tok.scan(/[^imxouesn]/)
1093
+ if unknown_options.any?
1094
+ diagnostic :error, :regexp_options,
1095
+ { :options => unknown_options.join }
1096
+ end
1097
+
1098
+ emit(:tREGEXP_OPT)
1099
+ fnext expr_end; fbreak;
1100
+ };
1101
+
1102
+ any
1103
+ => {
1104
+ emit(:tREGEXP_OPT, tok(@ts, @te - 1), @ts, @te - 1)
1105
+ fhold; fgoto expr_end;
1106
+ };
1107
+ *|;
1108
+
1109
+ #
1110
+ # === WHITESPACE HANDLING ===
1111
+ #
1112
+
1113
+ # Various contexts in Ruby allow various kinds of whitespace
1114
+ # to be used. They are grouped to clarify the lexing machines
1115
+ # and ease collection of comments.
1116
+
1117
+ # A line of code with inline #comment at end is always equivalent
1118
+ # to a line of code ending with just a newline, so an inline
1119
+ # comment is deemed equivalent to non-newline whitespace
1120
+ # (c_space character class).
1121
+
1122
+ w_space =
1123
+ c_space+
1124
+ | '\\' e_heredoc_nl
1125
+ ;
1126
+
1127
+ w_comment =
1128
+ '#' %{ @sharp_s = p - 1 }
1129
+ # The (p == pe) condition compensates for added "\0" and
1130
+ # the way Ragel handles EOF.
1131
+ c_line* %{ emit_comment(@sharp_s, p == pe ? p - 2 : p) }
1132
+ ;
1133
+
1134
+ w_space_comment =
1135
+ w_space
1136
+ | w_comment
1137
+ ;
1138
+
1139
+ # A newline in non-literal context always interoperates with
1140
+ # here document logic and can always be escaped by a backslash,
1141
+ # still interoperating with here document logic in the same way,
1142
+ # yet being invisible to anything else.
1143
+ #
1144
+ # To demonstrate:
1145
+ #
1146
+ # foo = <<FOO \
1147
+ # bar
1148
+ # FOO
1149
+ # + 2
1150
+ #
1151
+ # is equivalent to `foo = "bar\n" + 2`.
1152
+
1153
+ w_newline =
1154
+ e_heredoc_nl;
1155
+
1156
+ w_any =
1157
+ w_space
1158
+ | w_comment
1159
+ | w_newline
1160
+ ;
1161
+
1162
+
1163
+ #
1164
+ # === EXPRESSION PARSING ===
1165
+ #
1166
+
1167
+ # These rules implement a form of manually defined lookahead.
1168
+ # The default longest-match scanning does not work here due
1169
+ # to sheer ambiguity.
1170
+
1171
+ ambiguous_fid_suffix = # actual parsed
1172
+ [?!] %{ tm = p } | # a? a?
1173
+ [?!]'=' %{ tm = p - 2 } # a!=b a != b
1174
+ ;
1175
+
1176
+ ambiguous_ident_suffix = # actual parsed
1177
+ ambiguous_fid_suffix |
1178
+ '=' %{ tm = p } | # a= a=
1179
+ '==' %{ tm = p - 2 } | # a==b a == b
1180
+ '=~' %{ tm = p - 2 } | # a=~b a =~ b
1181
+ '=>' %{ tm = p - 2 } | # a=>b a => b
1182
+ '===' %{ tm = p - 3 } # a===b a === b
1183
+ ;
1184
+
1185
+ ambiguous_symbol_suffix = # actual parsed
1186
+ ambiguous_ident_suffix |
1187
+ '==>' %{ tm = p - 2 } # :a==>b :a= => b
1188
+ ;
1189
+
1190
+ # Ambiguous with 1.9 hash labels.
1191
+ ambiguous_const_suffix = # actual parsed
1192
+ '::' %{ tm = p - 2 } # A::B A :: B
1193
+ ;
1194
+
1195
+ # Resolving kDO/kDO_COND/kDO_BLOCK ambiguity requires embedding
1196
+ # @cond/@cmdarg-related code to e_lbrack, e_lparen and e_lbrace.
1197
+
1198
+ e_lbrack = '[' % {
1199
+ @cond.push(false); @cmdarg.push(false)
1200
+ };
1201
+
1202
+ # Ruby 1.9 lambdas require parentheses counting in order to
1203
+ # emit correct opening kDO/tLBRACE.
1204
+
1205
+ e_lparen = '(' % {
1206
+ @cond.push(false); @cmdarg.push(false)
1207
+
1208
+ @paren_nest += 1
1209
+ };
1210
+
1211
+ e_rparen = ')' % {
1212
+ @paren_nest -= 1
1213
+ };
1214
+
1215
+ # Ruby is context-sensitive wrt/ local identifiers.
1216
+ action local_ident {
1217
+ emit(:tIDENTIFIER)
1218
+
1219
+ if !@static_env.nil? && @static_env.declared?(tok)
1220
+ fnext expr_endfn; fbreak;
1221
+ else
1222
+ fnext *arg_or_cmdarg; fbreak;
1223
+ end
1224
+ }
1225
+
1226
+ # Variable lexing code is accessed from both expressions and
1227
+ # string interpolation related code.
1228
+ #
1229
+ expr_variable := |*
1230
+ global_var
1231
+ => {
1232
+ if tok =~ /^\$([1-9][0-9]*)$/
1233
+ emit(:tNTH_REF, tok(@ts + 1).to_i)
1234
+ elsif tok =~ /^\$([&`'+])$/
1235
+ emit(:tBACK_REF)
1236
+ else
1237
+ emit(:tGVAR)
1238
+ end
1239
+
1240
+ fnext *stack_pop; fbreak;
1241
+ };
1242
+
1243
+ class_var_v
1244
+ => {
1245
+ if tok =~ /^@@[0-9]/
1246
+ diagnostic :error, :cvar_name, { :name => tok }
1247
+ end
1248
+
1249
+ emit(:tCVAR)
1250
+ fnext *stack_pop; fbreak;
1251
+ };
1252
+
1253
+ instance_var_v
1254
+ => {
1255
+ if tok =~ /^@[0-9]/
1256
+ diagnostic :error, :ivar_name, { :name => tok }
1257
+ end
1258
+
1259
+ emit(:tIVAR)
1260
+ fnext *stack_pop; fbreak;
1261
+ };
1262
+ *|;
1263
+
1264
+ # Literal function name in definition (e.g. `def class`).
1265
+ # Keywords are returned as their respective tokens; this is used
1266
+ # to support singleton def `def self.foo`. Global variables are
1267
+ # returned as `tGVAR`; this is used in global variable alias
1268
+ # statements `alias $a $b`. Symbols are returned verbatim; this
1269
+ # is used in `alias :a :"b#{foo}"` and `undef :a`.
1270
+ #
1271
+ # Transitions to `expr_endfn` afterwards.
1272
+ #
1273
+ expr_fname := |*
1274
+ keyword
1275
+ => { emit_table(KEYWORDS_BEGIN);
1276
+ fnext expr_endfn; fbreak; };
1277
+
1278
+ constant
1279
+ => { emit(:tCONSTANT)
1280
+ fnext expr_endfn; fbreak; };
1281
+
1282
+ bareword [?=!]?
1283
+ => { emit(:tIDENTIFIER)
1284
+ fnext expr_endfn; fbreak; };
1285
+
1286
+ global_var
1287
+ => { p = @ts - 1
1288
+ fnext expr_end; fcall expr_variable; };
1289
+
1290
+ # If the handling was to be delegated to expr_end,
1291
+ # these cases would transition to something else than
1292
+ # expr_endfn, which is incorrect.
1293
+ operator_fname |
1294
+ operator_arithmetic |
1295
+ operator_rest
1296
+ => { emit_table(PUNCTUATION)
1297
+ fnext expr_endfn; fbreak; };
1298
+
1299
+ '::'
1300
+ => { fhold; fhold; fgoto expr_end; };
1301
+
1302
+ ':'
1303
+ => { fhold; fgoto expr_beg; };
1304
+
1305
+ '%s' c_any
1306
+ => {
1307
+ if version?(23)
1308
+ type, delimiter = tok[0..-2], tok[-1].chr
1309
+ fgoto *push_literal(type, delimiter, @ts);
1310
+ else
1311
+ p = @ts - 1
1312
+ fgoto expr_end;
1313
+ end
1314
+ };
1315
+
1316
+ w_any;
1317
+
1318
+ c_any
1319
+ => { fhold; fgoto expr_end; };
1320
+
1321
+ c_eof => do_eof;
1322
+ *|;
1323
+
1324
+ # After literal function name in definition. Behaves like `expr_end`,
1325
+ # but allows a tLABEL.
1326
+ #
1327
+ # Transitions to `expr_end` afterwards.
1328
+ #
1329
+ expr_endfn := |*
1330
+ label ( any - ':' )
1331
+ => { emit(:tLABEL, tok(@ts, @te - 2), @ts, @te - 1)
1332
+ fhold; fnext expr_labelarg; fbreak; };
1333
+
1334
+ w_space_comment;
1335
+
1336
+ c_any
1337
+ => { fhold; fgoto expr_end; };
1338
+
1339
+ c_eof => do_eof;
1340
+ *|;
1341
+
1342
+ # Literal function name in method call (e.g. `a.class`).
1343
+ #
1344
+ # Transitions to `expr_arg` afterwards.
1345
+ #
1346
+ expr_dot := |*
1347
+ constant
1348
+ => { emit(:tCONSTANT)
1349
+ fnext *arg_or_cmdarg; fbreak; };
1350
+
1351
+ call_or_var
1352
+ => { emit(:tIDENTIFIER)
1353
+ fnext *arg_or_cmdarg; fbreak; };
1354
+
1355
+ bareword ambiguous_fid_suffix
1356
+ => { emit(:tFID, tok(@ts, tm), @ts, tm)
1357
+ fnext *arg_or_cmdarg; p = tm - 1; fbreak; };
1358
+
1359
+ # See the comment in `expr_fname`.
1360
+ operator_fname |
1361
+ operator_arithmetic |
1362
+ operator_rest
1363
+ => { emit_table(PUNCTUATION)
1364
+ fnext expr_arg; fbreak; };
1365
+
1366
+ w_any;
1367
+
1368
+ c_any
1369
+ => { fhold; fgoto expr_end; };
1370
+
1371
+ c_eof => do_eof;
1372
+ *|;
1373
+
1374
+ # The previous token emitted was a `tIDENTIFIER` or `tFID`; no space
1375
+ # is consumed; the current expression is a command or method call.
1376
+ #
1377
+ expr_arg := |*
1378
+ #
1379
+ # COMMAND MODE SPECIFIC TOKENS
1380
+ #
1381
+
1382
+ # cmd (1 + 2)
1383
+ # See below the rationale about expr_endarg.
1384
+ w_space+ e_lparen
1385
+ => {
1386
+ if version?(18)
1387
+ emit(:tLPAREN2, '('.freeze, @te - 1, @te)
1388
+ fnext expr_value; fbreak;
1389
+ else
1390
+ emit(:tLPAREN_ARG, '('.freeze, @te - 1, @te)
1391
+ fnext expr_beg; fbreak;
1392
+ end
1393
+ };
1394
+
1395
+ # meth(1 + 2)
1396
+ # Regular method call.
1397
+ e_lparen
1398
+ => { emit(:tLPAREN2, '('.freeze)
1399
+ fnext expr_beg; fbreak; };
1400
+
1401
+ # meth [...]
1402
+ # Array argument. Compare with indexing `meth[...]`.
1403
+ w_space+ e_lbrack
1404
+ => { emit(:tLBRACK, '['.freeze, @te - 1, @te)
1405
+ fnext expr_beg; fbreak; };
1406
+
1407
+ # cmd {}
1408
+ # Command: method call without parentheses.
1409
+ w_space* e_lbrace
1410
+ => {
1411
+ if @lambda_stack.last == @paren_nest
1412
+ p = @ts - 1
1413
+ fgoto expr_end;
1414
+ else
1415
+ emit(:tLCURLY, '{'.freeze, @te - 1, @te)
1416
+ fnext expr_value; fbreak;
1417
+ end
1418
+ };
1419
+
1420
+ #
1421
+ # AMBIGUOUS TOKENS RESOLVED VIA EXPR_BEG
1422
+ #
1423
+
1424
+ # a??
1425
+ # Ternary operator
1426
+ '?' c_space_nl
1427
+ => {
1428
+ # Unlike expr_beg as invoked in the next rule, do not warn
1429
+ p = @ts - 1
1430
+ fgoto expr_end;
1431
+ };
1432
+
1433
+ # a ?b, a? ?
1434
+ # Character literal or ternary operator
1435
+ w_space* '?'
1436
+ => { fhold; fgoto expr_beg; };
1437
+
1438
+ # a %{1}, a %[1] (but not "a %=1=" or "a % foo")
1439
+ # a /foo/ (but not "a / foo" or "a /=foo")
1440
+ # a <<HEREDOC
1441
+ w_space+ %{ tm = p }
1442
+ ( [%/] ( c_any - c_space_nl - '=' ) # /
1443
+ | '<<'
1444
+ )
1445
+ => {
1446
+ if tok(tm, tm + 1) == '/'.freeze
1447
+ # Ambiguous regexp literal.
1448
+ diagnostic :warning, :ambiguous_literal, nil, range(tm, tm + 1)
1449
+ end
1450
+
1451
+ p = tm - 1
1452
+ fgoto expr_beg;
1453
+ };
1454
+
1455
+ # x *1
1456
+ # Ambiguous splat, kwsplat or block-pass.
1457
+ w_space+ %{ tm = p } ( '+' | '-' | '*' | '&' | '**' )
1458
+ => {
1459
+ diagnostic :warning, :ambiguous_prefix, { :prefix => tok(tm, @te) },
1460
+ range(tm, @te)
1461
+
1462
+ p = tm - 1
1463
+ fgoto expr_beg;
1464
+ };
1465
+
1466
+ # x ::Foo
1467
+ # Ambiguous toplevel constant access.
1468
+ w_space+ '::'
1469
+ => { fhold; fhold; fgoto expr_beg; };
1470
+
1471
+ # x:b
1472
+ # Symbol.
1473
+ w_space* ':'
1474
+ => { fhold; fgoto expr_beg; };
1475
+
1476
+ w_space+ label
1477
+ => { p = @ts - 1; fgoto expr_beg; };
1478
+
1479
+ #
1480
+ # AMBIGUOUS TOKENS RESOLVED VIA EXPR_END
1481
+ #
1482
+
1483
+ # a ? b
1484
+ # Ternary operator.
1485
+ w_space+ %{ tm = p } '?' c_space_nl
1486
+ => { p = tm - 1; fgoto expr_end; };
1487
+
1488
+ # x + 1: Binary operator or operator-assignment.
1489
+ w_space* operator_arithmetic
1490
+ ( '=' | c_space_nl )? |
1491
+ # x rescue y: Modifier keyword.
1492
+ w_space* keyword_modifier |
1493
+ # a &. b: Safe navigation operator.
1494
+ w_space* '&.' |
1495
+ # Miscellanea.
1496
+ w_space* punctuation_end
1497
+ => {
1498
+ p = @ts - 1
1499
+ fgoto expr_end;
1500
+ };
1501
+
1502
+ w_space;
1503
+
1504
+ w_comment
1505
+ => { fgoto expr_end; };
1506
+
1507
+ w_newline
1508
+ => { fhold; fgoto expr_end; };
1509
+
1510
+ c_any
1511
+ => { fhold; fgoto expr_beg; };
1512
+
1513
+ c_eof => do_eof;
1514
+ *|;
1515
+
1516
+ # The previous token was an identifier which was seen while in the
1517
+ # command mode (that is, the state at the beginning of #advance was
1518
+ # expr_value). This state is very similar to expr_arg, but disambiguates
1519
+ # two very rare and specific condition:
1520
+ # * In 1.8 mode, "foo (lambda do end)".
1521
+ # * In 1.9+ mode, "f x: -> do foo do end end".
1522
+ expr_cmdarg := |*
1523
+ w_space+ e_lparen
1524
+ => {
1525
+ emit(:tLPAREN_ARG, '('.freeze, @te - 1, @te)
1526
+ if version?(18)
1527
+ fnext expr_value; fbreak;
1528
+ else
1529
+ fnext expr_beg; fbreak;
1530
+ end
1531
+ };
1532
+
1533
+ w_space* 'do'
1534
+ => {
1535
+ if @cond.active?
1536
+ emit(:kDO_COND, 'do'.freeze, @te - 2, @te)
1537
+ else
1538
+ emit(:kDO, 'do'.freeze, @te - 2, @te)
1539
+ end
1540
+ fnext expr_value; fbreak;
1541
+ };
1542
+
1543
+ c_any |
1544
+ # Disambiguate with the `do' rule above.
1545
+ w_space* bareword |
1546
+ w_space* label
1547
+ => { p = @ts - 1
1548
+ fgoto expr_arg; };
1549
+
1550
+ c_eof => do_eof;
1551
+ *|;
1552
+
1553
+ # The rationale for this state is pretty complex. Normally, if an argument
1554
+ # is passed to a command and then there is a block (tLCURLY...tRCURLY),
1555
+ # the block is attached to the innermost argument (`f` in `m f {}`), or it
1556
+ # is a parse error (`m 1 {}`). But there is a special case for passing a single
1557
+ # primary expression grouped with parentheses: if you write `m (1) {}` or
1558
+ # (2.0 only) `m () {}`, then the block is attached to `m`.
1559
+ #
1560
+ # Thus, we recognize the opening `(` of a command (remember, a command is
1561
+ # a method call without parens) as a tLPAREN_ARG; then, in parser, we recognize
1562
+ # `tLPAREN_ARG expr rparen` as a `primary_expr` and before rparen, set the
1563
+ # lexer's state to `expr_endarg`, which makes it emit the possibly following
1564
+ # `{` as `tLBRACE_ARG`.
1565
+ #
1566
+ # The default post-`expr_endarg` state is `expr_end`, so this state also handles
1567
+ # `do` (as `kDO_BLOCK` in `expr_beg`).
1568
+ expr_endarg := |*
1569
+ e_lbrace
1570
+ => {
1571
+ if @lambda_stack.last == @paren_nest
1572
+ @lambda_stack.pop
1573
+ emit(:tLAMBEG, '{'.freeze)
1574
+ else
1575
+ emit(:tLBRACE_ARG, '{'.freeze)
1576
+ end
1577
+ fnext expr_value;
1578
+ };
1579
+
1580
+ 'do'
1581
+ => { emit_do(true)
1582
+ fnext expr_value; fbreak; };
1583
+
1584
+ w_space_comment;
1585
+
1586
+ c_any
1587
+ => { fhold; fgoto expr_end; };
1588
+
1589
+ c_eof => do_eof;
1590
+ *|;
1591
+
1592
+ # The rationale for this state is that several keywords accept value
1593
+ # (i.e. should transition to `expr_beg`), do not accept it like a command
1594
+ # (i.e. not an `expr_arg`), and must behave like a statement, that is,
1595
+ # accept a modifier if/while/etc.
1596
+ #
1597
+ expr_mid := |*
1598
+ keyword_modifier
1599
+ => { emit_table(KEYWORDS)
1600
+ fnext expr_beg; fbreak; };
1601
+
1602
+ bareword
1603
+ => { p = @ts - 1; fgoto expr_beg; };
1604
+
1605
+ w_space_comment;
1606
+
1607
+ w_newline
1608
+ => { fhold; fgoto expr_end; };
1609
+
1610
+ c_any
1611
+ => { fhold; fgoto expr_beg; };
1612
+
1613
+ c_eof => do_eof;
1614
+ *|;
1615
+
1616
+ # Beginning of an expression.
1617
+ #
1618
+ # Don't fallthrough to this state from `c_any`; make sure to handle
1619
+ # `c_space* c_nl` and let `expr_end` handle the newline.
1620
+ # Otherwise code like `f\ndef x` gets glued together and the parser
1621
+ # explodes.
1622
+ #
1623
+ expr_beg := |*
1624
+ # Numeric processing. Converts:
1625
+ # +5 to [tINTEGER, 5]
1626
+ # -5 to [tUMINUS_NUM] [tINTEGER, 5]
1627
+ [+\-][0-9]
1628
+ => {
1629
+ fhold;
1630
+ if tok.start_with? '-'.freeze
1631
+ emit(:tUMINUS_NUM, '-'.freeze, @ts, @ts + 1)
1632
+ fnext expr_end; fbreak;
1633
+ end
1634
+ };
1635
+
1636
+ # splat *a
1637
+ '*'
1638
+ => { emit(:tSTAR, '*'.freeze)
1639
+ fbreak; };
1640
+
1641
+ #
1642
+ # STRING AND REGEXP LITERALS
1643
+ #
1644
+
1645
+ # /regexp/oui
1646
+ # /=/ (disambiguation with /=)
1647
+ '/' c_any
1648
+ => {
1649
+ type = delimiter = tok[0].chr
1650
+ fhold; fgoto *push_literal(type, delimiter, @ts);
1651
+ };
1652
+
1653
+ # %<string>
1654
+ '%' ( any - [A-Za-z] )
1655
+ => {
1656
+ type, delimiter = @source_buffer.slice(@ts).chr, tok[-1].chr
1657
+ fgoto *push_literal(type, delimiter, @ts);
1658
+ };
1659
+
1660
+ # %w(we are the people)
1661
+ '%' [A-Za-z]+ c_any
1662
+ => {
1663
+ type, delimiter = tok[0..-2], tok[-1].chr
1664
+ fgoto *push_literal(type, delimiter, @ts);
1665
+ };
1666
+
1667
+ '%' c_eof
1668
+ => {
1669
+ diagnostic :fatal, :string_eof, nil, range(@ts, @ts + 1)
1670
+ };
1671
+
1672
+ # Heredoc start.
1673
+ # <<END | <<'END' | <<"END" | <<`END` |
1674
+ # <<-END | <<-'END' | <<-"END" | <<-`END` |
1675
+ # <<~END | <<~'END' | <<~"END" | <<~`END`
1676
+ '<<' [~\-]?
1677
+ ( '"' ( c_line - '"' )* '"'
1678
+ | "'" ( c_line - "'" )* "'"
1679
+ | "`" ( c_line - "`" )* "`"
1680
+ | bareword ) % { heredoc_e = p }
1681
+ c_line* c_nl % { new_herebody_s = p }
1682
+ => {
1683
+ tok(@ts, heredoc_e) =~ /^<<(-?)(~?)(["'`]?)(.*)\3$/
1684
+
1685
+ indent = !$1.empty? || !$2.empty?
1686
+ dedent_body = !$2.empty?
1687
+ type = $3.empty? ? '<<"'.freeze : ('<<'.freeze + $3)
1688
+ delimiter = $4
1689
+
1690
+ if dedent_body && version?(18, 19, 20, 21, 22)
1691
+ emit(:tLSHFT, '<<'.freeze, @ts, @ts + 2)
1692
+ p = @ts + 1
1693
+ fnext expr_beg; fbreak;
1694
+ else
1695
+ fnext *push_literal(type, delimiter, @ts, heredoc_e, indent, dedent_body);
1696
+
1697
+ @herebody_s ||= new_herebody_s
1698
+ p = @herebody_s - 1
1699
+ end
1700
+ };
1701
+
1702
+ #
1703
+ # SYMBOL LITERALS
1704
+ #
1705
+
1706
+ # :"bar", :'baz'
1707
+ ':' ['"] # '
1708
+ => {
1709
+ type, delimiter = tok, tok[-1].chr
1710
+ fgoto *push_literal(type, delimiter, @ts);
1711
+ };
1712
+
1713
+ ':' bareword ambiguous_symbol_suffix
1714
+ => {
1715
+ emit(:tSYMBOL, tok(@ts + 1, tm), @ts, tm)
1716
+ p = tm - 1
1717
+ fnext expr_end; fbreak;
1718
+ };
1719
+
1720
+ ':' ( bareword | global_var | class_var | instance_var |
1721
+ operator_fname | operator_arithmetic | operator_rest )
1722
+ => {
1723
+ emit(:tSYMBOL, tok(@ts + 1), @ts)
1724
+ fnext expr_end; fbreak;
1725
+ };
1726
+
1727
+ #
1728
+ # AMBIGUOUS TERNARY OPERATOR
1729
+ #
1730
+
1731
+ # Character constant, like ?a, ?\n, ?\u1000, and so on
1732
+ # Don't accept \u escape with multiple codepoints, like \u{1 2 3}
1733
+ '?' ( e_bs ( escape - ( '\u{' (xdigit+ [ \t]+)+ xdigit+ '}' ))
1734
+ | (c_any - c_space_nl - e_bs) % { @escape = nil }
1735
+ )
1736
+ => {
1737
+ value = @escape || tok(@ts + 1)
1738
+
1739
+ if version?(18)
1740
+ if defined?(Encoding)
1741
+ emit(:tINTEGER, value.dup.force_encoding(Encoding::BINARY)[0].ord)
1742
+ else
1743
+ emit(:tINTEGER, value[0].ord)
1744
+ end
1745
+ else
1746
+ emit(:tCHARACTER, value)
1747
+ end
1748
+
1749
+ fnext expr_end; fbreak;
1750
+ };
1751
+
1752
+ '?' c_space_nl
1753
+ => {
1754
+ escape = { " " => '\s', "\r" => '\r', "\n" => '\n', "\t" => '\t',
1755
+ "\v" => '\v', "\f" => '\f' }[@source_buffer.slice(@ts + 1)]
1756
+ diagnostic :warning, :invalid_escape_use, { :escape => escape }, range
1757
+
1758
+ p = @ts - 1
1759
+ fgoto expr_end;
1760
+ };
1761
+
1762
+ '?' c_eof
1763
+ => {
1764
+ diagnostic :fatal, :incomplete_escape, nil, range(@ts, @ts + 1)
1765
+ };
1766
+
1767
+ # f ?aa : b: Disambiguate with a character literal.
1768
+ '?' [A-Za-z_] bareword
1769
+ => {
1770
+ p = @ts - 1
1771
+ fgoto expr_end;
1772
+ };
1773
+
1774
+ #
1775
+ # KEYWORDS AND PUNCTUATION
1776
+ #
1777
+
1778
+ # a({b=>c})
1779
+ e_lbrace
1780
+ => {
1781
+ if @lambda_stack.last == @paren_nest
1782
+ @lambda_stack.pop
1783
+ emit(:tLAMBEG, '{'.freeze)
1784
+ else
1785
+ emit(:tLBRACE, '{'.freeze)
1786
+ end
1787
+ fbreak;
1788
+ };
1789
+
1790
+ # a([1, 2])
1791
+ e_lbrack
1792
+ => { emit(:tLBRACK, '['.freeze)
1793
+ fbreak; };
1794
+
1795
+ # a()
1796
+ e_lparen
1797
+ => { emit(:tLPAREN, '('.freeze)
1798
+ fbreak; };
1799
+
1800
+ # a(+b)
1801
+ punctuation_begin
1802
+ => { emit_table(PUNCTUATION_BEGIN)
1803
+ fbreak; };
1804
+
1805
+ # rescue Exception => e: Block rescue.
1806
+ # Special because it should transition to expr_mid.
1807
+ 'rescue' %{ tm = p } '=>'?
1808
+ => { emit(:kRESCUE, 'rescue'.freeze, @ts, tm)
1809
+ p = tm - 1
1810
+ fnext expr_mid; fbreak; };
1811
+
1812
+ # if a: Statement if.
1813
+ keyword_modifier
1814
+ => { emit_table(KEYWORDS_BEGIN)
1815
+ fnext expr_value; fbreak; };
1816
+
1817
+ #
1818
+ # RUBY 1.9 HASH LABELS
1819
+ #
1820
+
1821
+ label ( any - ':' )
1822
+ => {
1823
+ fhold;
1824
+
1825
+ if version?(18)
1826
+ ident = tok(@ts, @te - 2)
1827
+
1828
+ emit((@source_buffer.slice(@ts) =~ /[A-Z]/) ? :tCONSTANT : :tIDENTIFIER,
1829
+ ident, @ts, @te - 2)
1830
+ fhold; # continue as a symbol
1831
+
1832
+ if !@static_env.nil? && @static_env.declared?(ident)
1833
+ fnext expr_end;
1834
+ else
1835
+ fnext *arg_or_cmdarg;
1836
+ end
1837
+ else
1838
+ emit(:tLABEL, tok(@ts, @te - 2), @ts, @te - 1)
1839
+ fnext expr_labelarg;
1840
+ end
1841
+
1842
+ fbreak;
1843
+ };
1844
+
1845
+ #
1846
+ # CONTEXT-DEPENDENT VARIABLE LOOKUP OR COMMAND INVOCATION
1847
+ #
1848
+
1849
+ # foo= bar: Disambiguate with bareword rule below.
1850
+ bareword ambiguous_ident_suffix |
1851
+ # def foo: Disambiguate with bareword rule below.
1852
+ keyword
1853
+ => { p = @ts - 1
1854
+ fgoto expr_end; };
1855
+
1856
+ # a = 42; a [42]: Indexing.
1857
+ # def a; end; a [42]: Array argument.
1858
+ call_or_var
1859
+ => local_ident;
1860
+
1861
+ #
1862
+ # WHITESPACE
1863
+ #
1864
+
1865
+ w_any;
1866
+
1867
+ e_heredoc_nl '=begin' ( c_space | c_nl_zlen )
1868
+ => { p = @ts - 1
1869
+ fgoto line_begin; };
1870
+
1871
+ #
1872
+ # DEFAULT TRANSITION
1873
+ #
1874
+
1875
+ # The following rules match most binary and all unary operators.
1876
+ # Rules for binary operators provide better error reporting.
1877
+ operator_arithmetic '=' |
1878
+ operator_rest |
1879
+ punctuation_end |
1880
+ c_any
1881
+ => { p = @ts - 1; fgoto expr_end; };
1882
+
1883
+ c_eof => do_eof;
1884
+ *|;
1885
+
1886
+ # Special newline handling for "def a b:"
1887
+ #
1888
+ expr_labelarg := |*
1889
+ w_space_comment;
1890
+
1891
+ w_newline
1892
+ => {
1893
+ if @in_kwarg
1894
+ fhold; fgoto expr_end;
1895
+ else
1896
+ fgoto line_begin;
1897
+ end
1898
+ };
1899
+
1900
+ c_any
1901
+ => { fhold; fgoto expr_beg; };
1902
+
1903
+ c_eof => do_eof;
1904
+ *|;
1905
+
1906
+ # Like expr_beg, but no 1.9 label or 2.2 quoted label possible.
1907
+ #
1908
+ expr_value := |*
1909
+ # a:b: a(:b), a::B, A::B
1910
+ label (any - ':')
1911
+ => { p = @ts - 1
1912
+ fgoto expr_end; };
1913
+
1914
+ # "bar", 'baz'
1915
+ ['"] # '
1916
+ => {
1917
+ fgoto *push_literal(tok, tok, @ts);
1918
+ };
1919
+
1920
+ w_space_comment;
1921
+
1922
+ w_newline
1923
+ => { fgoto line_begin; };
1924
+
1925
+ c_any
1926
+ => { fhold; fgoto expr_beg; };
1927
+
1928
+ c_eof => do_eof;
1929
+ *|;
1930
+
1931
+ expr_end := |*
1932
+ #
1933
+ # STABBY LAMBDA
1934
+ #
1935
+
1936
+ '->'
1937
+ => {
1938
+ emit(:tLAMBDA, '->'.freeze, @ts, @ts + 2)
1939
+
1940
+ @lambda_stack.push @paren_nest
1941
+ fnext expr_endfn; fbreak;
1942
+ };
1943
+
1944
+ e_lbrace | 'do'
1945
+ => {
1946
+ if @lambda_stack.last == @paren_nest
1947
+ @lambda_stack.pop
1948
+
1949
+ if tok == '{'.freeze
1950
+ emit(:tLAMBEG, '{'.freeze)
1951
+ else # 'do'
1952
+ emit(:kDO_LAMBDA, 'do'.freeze)
1953
+ end
1954
+ else
1955
+ if tok == '{'.freeze
1956
+ emit(:tLCURLY, '{'.freeze)
1957
+ else # 'do'
1958
+ emit_do
1959
+ end
1960
+ end
1961
+
1962
+ fnext expr_value; fbreak;
1963
+ };
1964
+
1965
+ #
1966
+ # KEYWORDS
1967
+ #
1968
+
1969
+ keyword_with_fname
1970
+ => { emit_table(KEYWORDS)
1971
+ fnext expr_fname; fbreak; };
1972
+
1973
+ 'class' w_any* '<<'
1974
+ => { emit(:kCLASS, 'class'.freeze, @ts, @ts + 5)
1975
+ emit(:tLSHFT, '<<'.freeze, @te - 2, @te)
1976
+ fnext expr_value; fbreak; };
1977
+
1978
+ # a if b:c: Syntax error.
1979
+ keyword_modifier
1980
+ => { emit_table(KEYWORDS)
1981
+ fnext expr_beg; fbreak; };
1982
+
1983
+ # elsif b:c: elsif b(:c)
1984
+ keyword_with_value
1985
+ => { emit_table(KEYWORDS)
1986
+ fnext expr_value; fbreak; };
1987
+
1988
+ keyword_with_mid
1989
+ => { emit_table(KEYWORDS)
1990
+ fnext expr_mid; fbreak; };
1991
+
1992
+ keyword_with_arg
1993
+ => {
1994
+ emit_table(KEYWORDS)
1995
+
1996
+ if version?(18) && tok == 'not'.freeze
1997
+ fnext expr_beg; fbreak;
1998
+ else
1999
+ fnext expr_arg; fbreak;
2000
+ end
2001
+ };
2002
+
2003
+ '__ENCODING__'
2004
+ => {
2005
+ if version?(18)
2006
+ emit(:tIDENTIFIER)
2007
+
2008
+ unless !@static_env.nil? && @static_env.declared?(tok)
2009
+ fnext *arg_or_cmdarg;
2010
+ end
2011
+ else
2012
+ emit(:k__ENCODING__, '__ENCODING__'.freeze)
2013
+ end
2014
+ fbreak;
2015
+ };
2016
+
2017
+ keyword_with_end
2018
+ => { emit_table(KEYWORDS)
2019
+ fbreak; };
2020
+
2021
+ #
2022
+ # NUMERIC LITERALS
2023
+ #
2024
+
2025
+ ( '0' [Xx] %{ @num_base = 16; @num_digits_s = p } int_hex
2026
+ | '0' [Dd] %{ @num_base = 10; @num_digits_s = p } int_dec
2027
+ | '0' [Oo] %{ @num_base = 8; @num_digits_s = p } int_dec
2028
+ | '0' [Bb] %{ @num_base = 2; @num_digits_s = p } int_bin
2029
+ | [1-9] digit* '_'? %{ @num_base = 10; @num_digits_s = @ts } int_dec
2030
+ | '0' digit* '_'? %{ @num_base = 8; @num_digits_s = @ts } int_dec
2031
+ ) %{ @num_suffix_s = p } int_suffix
2032
+ => {
2033
+ digits = tok(@num_digits_s, @num_suffix_s)
2034
+
2035
+ if digits.end_with? '_'.freeze
2036
+ diagnostic :error, :trailing_in_number, { :character => '_'.freeze },
2037
+ range(@te - 1, @te)
2038
+ elsif digits.empty? && @num_base == 8 && version?(18)
2039
+ # 1.8 did not raise an error on 0o.
2040
+ digits = '0'.freeze
2041
+ elsif digits.empty?
2042
+ diagnostic :error, :empty_numeric
2043
+ elsif @num_base == 8 && (invalid_idx = digits.index(/[89]/))
2044
+ invalid_s = @num_digits_s + invalid_idx
2045
+ diagnostic :error, :invalid_octal, nil,
2046
+ range(invalid_s, invalid_s + 1)
2047
+ end
2048
+
2049
+ if version?(18, 19, 20)
2050
+ emit(:tINTEGER, digits.to_i(@num_base), @ts, @num_suffix_s)
2051
+ p = @num_suffix_s - 1
2052
+ else
2053
+ @num_xfrm.call(digits.to_i(@num_base))
2054
+ end
2055
+ fbreak;
2056
+ };
2057
+
2058
+ flo_frac flo_pow?
2059
+ => {
2060
+ diagnostic :error, :no_dot_digit_literal
2061
+ };
2062
+
2063
+ flo_int [eE]
2064
+ => {
2065
+ if version?(18, 19, 20)
2066
+ diagnostic :error,
2067
+ :trailing_in_number, { :character => tok(@te - 1, @te) },
2068
+ range(@te - 1, @te)
2069
+ else
2070
+ emit(:tINTEGER, tok(@ts, @te - 1).to_i, @ts, @te - 1)
2071
+ fhold; fbreak;
2072
+ end
2073
+ };
2074
+
2075
+ flo_int flo_frac [eE]
2076
+ => {
2077
+ if version?(18, 19, 20)
2078
+ diagnostic :error,
2079
+ :trailing_in_number, { :character => tok(@te - 1, @te) },
2080
+ range(@te - 1, @te)
2081
+ else
2082
+ emit(:tFLOAT, tok(@ts, @te - 1).to_f, @ts, @te - 1)
2083
+ fhold; fbreak;
2084
+ end
2085
+ };
2086
+
2087
+ flo_int
2088
+ ( flo_frac? flo_pow %{ @num_suffix_s = p } flo_pow_suffix
2089
+ | flo_frac %{ @num_suffix_s = p } flo_suffix
2090
+ )
2091
+ => {
2092
+ digits = tok(@ts, @num_suffix_s)
2093
+
2094
+ if version?(18, 19, 20)
2095
+ emit(:tFLOAT, Float(digits), @ts, @num_suffix_s)
2096
+ p = @num_suffix_s - 1
2097
+ else
2098
+ @num_xfrm.call(digits)
2099
+ end
2100
+ fbreak;
2101
+ };
2102
+
2103
+ #
2104
+ # STRING AND XSTRING LITERALS
2105
+ #
2106
+
2107
+ # `echo foo`, "bar", 'baz'
2108
+ '`' | ['"] # '
2109
+ => {
2110
+ type, delimiter = tok, tok[-1].chr
2111
+ fgoto *push_literal(type, delimiter, @ts, nil, false, false, true);
2112
+ };
2113
+
2114
+ #
2115
+ # CONSTANTS AND VARIABLES
2116
+ #
2117
+
2118
+ constant
2119
+ => { emit(:tCONSTANT)
2120
+ fnext *arg_or_cmdarg; fbreak; };
2121
+
2122
+ constant ambiguous_const_suffix
2123
+ => { emit(:tCONSTANT, tok(@ts, tm), @ts, tm)
2124
+ p = tm - 1; fbreak; };
2125
+
2126
+ global_var | class_var_v | instance_var_v
2127
+ => { p = @ts - 1; fcall expr_variable; };
2128
+
2129
+ #
2130
+ # METHOD CALLS
2131
+ #
2132
+
2133
+ '.' | '&.' | '::'
2134
+ => { emit_table(PUNCTUATION)
2135
+ fnext expr_dot; fbreak; };
2136
+
2137
+ call_or_var
2138
+ => local_ident;
2139
+
2140
+ bareword ambiguous_fid_suffix
2141
+ => {
2142
+ if tm == @te
2143
+ # Suffix was consumed, e.g. foo!
2144
+ emit(:tFID)
2145
+ else
2146
+ # Suffix was not consumed, e.g. foo!=
2147
+ emit(:tIDENTIFIER, tok(@ts, tm), @ts, tm)
2148
+ p = tm - 1
2149
+ end
2150
+ fnext expr_arg; fbreak;
2151
+ };
2152
+
2153
+ #
2154
+ # OPERATORS
2155
+ #
2156
+
2157
+ ( e_lparen
2158
+ | operator_arithmetic
2159
+ | operator_rest
2160
+ )
2161
+ => { emit_table(PUNCTUATION)
2162
+ fnext expr_beg; fbreak; };
2163
+
2164
+ e_rbrace | e_rparen | ']'
2165
+ => {
2166
+ emit_table(PUNCTUATION)
2167
+ @cond.lexpop; @cmdarg.lexpop
2168
+
2169
+ if RBRACE_OR_RBRACK.include?(tok)
2170
+ fnext expr_endarg;
2171
+ else # )
2172
+ # fnext expr_endfn; ?
2173
+ end
2174
+
2175
+ fbreak;
2176
+ };
2177
+
2178
+ operator_arithmetic '='
2179
+ => { emit(:tOP_ASGN, tok(@ts, @te - 1))
2180
+ fnext expr_beg; fbreak; };
2181
+
2182
+ '?'
2183
+ => { emit(:tEH, '?'.freeze)
2184
+ fnext expr_value; fbreak; };
2185
+
2186
+ e_lbrack
2187
+ => { emit(:tLBRACK2, '['.freeze)
2188
+ fnext expr_beg; fbreak; };
2189
+
2190
+ punctuation_end
2191
+ => { emit_table(PUNCTUATION)
2192
+ fnext expr_beg; fbreak; };
2193
+
2194
+ #
2195
+ # WHITESPACE
2196
+ #
2197
+
2198
+ w_space_comment;
2199
+
2200
+ w_newline
2201
+ => { fgoto leading_dot; };
2202
+
2203
+ ';'
2204
+ => { emit(:tSEMI, ';'.freeze)
2205
+ fnext expr_value; fbreak; };
2206
+
2207
+ '\\' c_line {
2208
+ diagnostic :error, :bare_backslash, nil, range(@ts, @ts + 1)
2209
+ fhold;
2210
+ };
2211
+
2212
+ c_any
2213
+ => {
2214
+ diagnostic :fatal, :unexpected, { :character => tok.inspect[1..-2] }
2215
+ };
2216
+
2217
+ c_eof => do_eof;
2218
+ *|;
2219
+
2220
+ leading_dot := |*
2221
+ # Insane leading dots:
2222
+ # a #comment
2223
+ # .b: a.b
2224
+ c_space* %{ tm = p } ('.' | '&.')
2225
+ => { p = tm - 1; fgoto expr_end; };
2226
+
2227
+ any
2228
+ => { emit(:tNL, nil, @newline_s, @newline_s + 1)
2229
+ fhold; fnext line_begin; fbreak; };
2230
+ *|;
2231
+
2232
+ #
2233
+ # === EMBEDDED DOCUMENT (aka BLOCK COMMENT) PARSING ===
2234
+ #
2235
+
2236
+ line_comment := |*
2237
+ '=end' c_line* c_nl_zlen
2238
+ => {
2239
+ emit_comment(@eq_begin_s, @te)
2240
+ fgoto line_begin;
2241
+ };
2242
+
2243
+ c_line* c_nl;
2244
+
2245
+ c_line* zlen
2246
+ => {
2247
+ diagnostic :fatal, :embedded_document, nil,
2248
+ range(@eq_begin_s, @eq_begin_s + '=begin'.length)
2249
+ };
2250
+ *|;
2251
+
2252
+ line_begin := |*
2253
+ w_any;
2254
+
2255
+ '=begin' ( c_space | c_nl_zlen )
2256
+ => { @eq_begin_s = @ts
2257
+ fgoto line_comment; };
2258
+
2259
+ '__END__' ( c_eol - zlen )
2260
+ => { p = pe - 3 };
2261
+
2262
+ c_any
2263
+ => { fhold; fgoto expr_value; };
2264
+
2265
+ c_eof => do_eof;
2266
+ *|;
2267
+
2268
+ }%%
2269
+ # %
2270
+ end