chess_engine 0.0.1

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 (292) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +5 -0
  3. data/Gemfile.lock +21 -0
  4. data/README.md +26 -0
  5. data/chess_engine.gemspec +14 -0
  6. data/lib/chess_engine/board.rb +95 -0
  7. data/lib/chess_engine/cli.rb +105 -0
  8. data/lib/chess_engine/game.rb +148 -0
  9. data/lib/chess_engine/input.rb +19 -0
  10. data/lib/chess_engine/move.rb +35 -0
  11. data/lib/chess_engine/piece.rb +97 -0
  12. data/lib/chess_engine/validator.rb +87 -0
  13. data/lib/chess_engine.rb +1 -0
  14. data/spec/board_spec.rb +70 -0
  15. data/spec/game_helper.rb +5 -0
  16. data/spec/game_spec.rb +79 -0
  17. data/spec/spec_helper.rb +100 -0
  18. data/spec/validator_spec.rb +26 -0
  19. data/vendor/bundle/bin/coderay +27 -0
  20. data/vendor/bundle/bin/pry +27 -0
  21. data/vendor/bundle/cache/coderay-1.1.2.gem +0 -0
  22. data/vendor/bundle/cache/colorize-0.8.1.gem +0 -0
  23. data/vendor/bundle/cache/method_source-0.9.2.gem +0 -0
  24. data/vendor/bundle/cache/pry-0.12.2.gem +0 -0
  25. data/vendor/bundle/cache/rb-readline-0.5.5.gem +0 -0
  26. data/vendor/bundle/gems/coderay-1.1.2/MIT-LICENSE +22 -0
  27. data/vendor/bundle/gems/coderay-1.1.2/README_INDEX.rdoc +123 -0
  28. data/vendor/bundle/gems/coderay-1.1.2/bin/coderay +215 -0
  29. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/duo.rb +81 -0
  30. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/_map.rb +17 -0
  31. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/comment_filter.rb +25 -0
  32. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/count.rb +39 -0
  33. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/debug.rb +49 -0
  34. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/debug_lint.rb +63 -0
  35. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/div.rb +23 -0
  36. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/encoder.rb +190 -0
  37. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/filter.rb +58 -0
  38. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/html/css.rb +65 -0
  39. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/html/numbering.rb +108 -0
  40. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/html/output.rb +166 -0
  41. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/html.rb +333 -0
  42. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/json.rb +83 -0
  43. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/lines_of_code.rb +45 -0
  44. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/lint.rb +59 -0
  45. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/null.rb +18 -0
  46. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/page.rb +24 -0
  47. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/span.rb +23 -0
  48. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/statistic.rb +95 -0
  49. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/terminal.rb +195 -0
  50. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/text.rb +46 -0
  51. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/token_kind_filter.rb +111 -0
  52. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/xml.rb +72 -0
  53. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/yaml.rb +50 -0
  54. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders.rb +18 -0
  55. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/for_redcloth.rb +95 -0
  56. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/helpers/file_type.rb +151 -0
  57. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/helpers/plugin.rb +55 -0
  58. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/helpers/plugin_host.rb +221 -0
  59. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/helpers/word_list.rb +72 -0
  60. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/_map.rb +24 -0
  61. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/c.rb +189 -0
  62. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/clojure.rb +217 -0
  63. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/cpp.rb +217 -0
  64. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/css.rb +196 -0
  65. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/debug.rb +75 -0
  66. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/delphi.rb +144 -0
  67. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/diff.rb +221 -0
  68. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/erb.rb +81 -0
  69. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/go.rb +208 -0
  70. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/groovy.rb +268 -0
  71. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/haml.rb +168 -0
  72. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/html.rb +275 -0
  73. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/java/builtin_types.rb +421 -0
  74. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/java.rb +174 -0
  75. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/java_script.rb +237 -0
  76. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/json.rb +98 -0
  77. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/lua.rb +280 -0
  78. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/php.rb +527 -0
  79. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/python.rb +287 -0
  80. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/raydebug.rb +75 -0
  81. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/ruby/patterns.rb +178 -0
  82. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/ruby/string_state.rb +79 -0
  83. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/ruby.rb +477 -0
  84. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/sass.rb +232 -0
  85. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/scanner.rb +337 -0
  86. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/sql.rb +169 -0
  87. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/taskpaper.rb +36 -0
  88. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/text.rb +26 -0
  89. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/xml.rb +17 -0
  90. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/yaml.rb +140 -0
  91. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners.rb +27 -0
  92. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/styles/_map.rb +7 -0
  93. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/styles/alpha.rb +153 -0
  94. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/styles/style.rb +18 -0
  95. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/styles.rb +15 -0
  96. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/token_kinds.rb +85 -0
  97. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/tokens.rb +161 -0
  98. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/tokens_proxy.rb +55 -0
  99. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/version.rb +3 -0
  100. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay.rb +284 -0
  101. data/vendor/bundle/gems/colorize-0.8.1/CHANGELOG +65 -0
  102. data/vendor/bundle/gems/colorize-0.8.1/LICENSE +339 -0
  103. data/vendor/bundle/gems/colorize-0.8.1/README.md +105 -0
  104. data/vendor/bundle/gems/colorize-0.8.1/Rakefile +13 -0
  105. data/vendor/bundle/gems/colorize-0.8.1/colorize.gemspec +36 -0
  106. data/vendor/bundle/gems/colorize-0.8.1/lib/colorize/class_methods.rb +120 -0
  107. data/vendor/bundle/gems/colorize-0.8.1/lib/colorize/instance_methods.rb +132 -0
  108. data/vendor/bundle/gems/colorize-0.8.1/lib/colorize.rb +12 -0
  109. data/vendor/bundle/gems/colorize-0.8.1/lib/colorized_string.rb +19 -0
  110. data/vendor/bundle/gems/colorize-0.8.1/test/test_colorize.rb +164 -0
  111. data/vendor/bundle/gems/method_source-0.9.2/Gemfile +2 -0
  112. data/vendor/bundle/gems/method_source-0.9.2/LICENSE +25 -0
  113. data/vendor/bundle/gems/method_source-0.9.2/README.markdown +91 -0
  114. data/vendor/bundle/gems/method_source-0.9.2/Rakefile +81 -0
  115. data/vendor/bundle/gems/method_source-0.9.2/lib/method_source/code_helpers.rb +154 -0
  116. data/vendor/bundle/gems/method_source-0.9.2/lib/method_source/source_location.rb +138 -0
  117. data/vendor/bundle/gems/method_source-0.9.2/lib/method_source/version.rb +3 -0
  118. data/vendor/bundle/gems/method_source-0.9.2/lib/method_source.rb +141 -0
  119. data/vendor/bundle/gems/method_source-0.9.2/method_source.gemspec +35 -0
  120. data/vendor/bundle/gems/method_source-0.9.2/spec/method_source/code_helpers_spec.rb +43 -0
  121. data/vendor/bundle/gems/method_source-0.9.2/spec/method_source_spec.rb +143 -0
  122. data/vendor/bundle/gems/method_source-0.9.2/spec/spec_helper.rb +101 -0
  123. data/vendor/bundle/gems/pry-0.12.2/CHANGELOG.md +953 -0
  124. data/vendor/bundle/gems/pry-0.12.2/LICENSE +25 -0
  125. data/vendor/bundle/gems/pry-0.12.2/README.md +390 -0
  126. data/vendor/bundle/gems/pry-0.12.2/bin/pry +8 -0
  127. data/vendor/bundle/gems/pry-0.12.2/lib/pry/basic_object.rb +6 -0
  128. data/vendor/bundle/gems/pry-0.12.2/lib/pry/cli.rb +218 -0
  129. data/vendor/bundle/gems/pry-0.12.2/lib/pry/code/code_file.rb +110 -0
  130. data/vendor/bundle/gems/pry-0.12.2/lib/pry/code/code_range.rb +71 -0
  131. data/vendor/bundle/gems/pry-0.12.2/lib/pry/code/loc.rb +98 -0
  132. data/vendor/bundle/gems/pry-0.12.2/lib/pry/code.rb +353 -0
  133. data/vendor/bundle/gems/pry-0.12.2/lib/pry/code_object.rb +195 -0
  134. data/vendor/bundle/gems/pry-0.12.2/lib/pry/color_printer.rb +65 -0
  135. data/vendor/bundle/gems/pry-0.12.2/lib/pry/command.rb +723 -0
  136. data/vendor/bundle/gems/pry-0.12.2/lib/pry/command_set.rb +415 -0
  137. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/amend_line.rb +98 -0
  138. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/bang.rb +20 -0
  139. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/bang_pry.rb +17 -0
  140. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/cat/abstract_formatter.rb +27 -0
  141. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/cat/exception_formatter.rb +79 -0
  142. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/cat/file_formatter.rb +71 -0
  143. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/cat/input_expression_formatter.rb +43 -0
  144. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/cat.rb +63 -0
  145. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/cd.rb +41 -0
  146. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/change_inspector.rb +27 -0
  147. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/change_prompt.rb +46 -0
  148. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/clear_screen.rb +14 -0
  149. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/code_collector.rb +167 -0
  150. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/disable_pry.rb +27 -0
  151. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/disabled_commands.rb +2 -0
  152. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/easter_eggs.rb +112 -0
  153. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/edit/exception_patcher.rb +25 -0
  154. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/edit/file_and_line_locator.rb +36 -0
  155. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/edit.rb +200 -0
  156. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/exit.rb +43 -0
  157. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/exit_all.rb +29 -0
  158. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/exit_program.rb +23 -0
  159. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/find_method.rb +191 -0
  160. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/fix_indent.rb +19 -0
  161. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/gem_cd.rb +26 -0
  162. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/gem_install.rb +32 -0
  163. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/gem_list.rb +33 -0
  164. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/gem_open.rb +29 -0
  165. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/gem_readme.rb +25 -0
  166. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/gem_search.rb +40 -0
  167. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/gem_stats.rb +83 -0
  168. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/gist.rb +102 -0
  169. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/help.rb +164 -0
  170. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/hist.rb +181 -0
  171. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/import_set.rb +23 -0
  172. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/install_command.rb +54 -0
  173. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/jump_to.rb +29 -0
  174. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/list_inspectors.rb +35 -0
  175. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/ls/constants.rb +58 -0
  176. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/ls/formatter.rb +51 -0
  177. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/ls/globals.rb +46 -0
  178. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/ls/grep.rb +19 -0
  179. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/ls/instance_vars.rb +38 -0
  180. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/ls/interrogatable.rb +18 -0
  181. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/ls/jruby_hacks.rb +49 -0
  182. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/ls/local_names.rb +33 -0
  183. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/ls/local_vars.rb +37 -0
  184. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/ls/ls_entity.rb +69 -0
  185. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/ls/methods.rb +54 -0
  186. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/ls/methods_helper.rb +46 -0
  187. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/ls/self_methods.rb +33 -0
  188. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/ls.rb +113 -0
  189. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/nesting.rb +25 -0
  190. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/play.rb +102 -0
  191. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/pry_backtrace.rb +25 -0
  192. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/pry_version.rb +17 -0
  193. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/raise_up.rb +33 -0
  194. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/reload_code.rb +62 -0
  195. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/reset.rb +18 -0
  196. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/ri.rb +65 -0
  197. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/save_file.rb +61 -0
  198. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/shell_command.rb +75 -0
  199. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/shell_mode.rb +25 -0
  200. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/show_doc.rb +81 -0
  201. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/show_info.rb +216 -0
  202. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/show_input.rb +17 -0
  203. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/show_source.rb +53 -0
  204. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/stat.rb +40 -0
  205. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/switch_to.rb +23 -0
  206. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/toggle_color.rb +24 -0
  207. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/watch_expression/expression.rb +38 -0
  208. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/watch_expression.rb +107 -0
  209. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/whereami.rb +197 -0
  210. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands/wtf.rb +70 -0
  211. data/vendor/bundle/gems/pry-0.12.2/lib/pry/commands.rb +6 -0
  212. data/vendor/bundle/gems/pry-0.12.2/lib/pry/config/behavior.rb +255 -0
  213. data/vendor/bundle/gems/pry-0.12.2/lib/pry/config/convenience.rb +28 -0
  214. data/vendor/bundle/gems/pry-0.12.2/lib/pry/config/default.rb +159 -0
  215. data/vendor/bundle/gems/pry-0.12.2/lib/pry/config/memoization.rb +48 -0
  216. data/vendor/bundle/gems/pry-0.12.2/lib/pry/config.rb +35 -0
  217. data/vendor/bundle/gems/pry-0.12.2/lib/pry/core_extensions.rb +142 -0
  218. data/vendor/bundle/gems/pry-0.12.2/lib/pry/editor.rb +128 -0
  219. data/vendor/bundle/gems/pry-0.12.2/lib/pry/exceptions.rb +76 -0
  220. data/vendor/bundle/gems/pry-0.12.2/lib/pry/forwardable.rb +23 -0
  221. data/vendor/bundle/gems/pry-0.12.2/lib/pry/helpers/base_helpers.rb +200 -0
  222. data/vendor/bundle/gems/pry-0.12.2/lib/pry/helpers/command_helpers.rb +157 -0
  223. data/vendor/bundle/gems/pry-0.12.2/lib/pry/helpers/documentation_helpers.rb +76 -0
  224. data/vendor/bundle/gems/pry-0.12.2/lib/pry/helpers/options_helpers.rb +27 -0
  225. data/vendor/bundle/gems/pry-0.12.2/lib/pry/helpers/platform.rb +58 -0
  226. data/vendor/bundle/gems/pry-0.12.2/lib/pry/helpers/table.rb +114 -0
  227. data/vendor/bundle/gems/pry-0.12.2/lib/pry/helpers/text.rb +115 -0
  228. data/vendor/bundle/gems/pry-0.12.2/lib/pry/helpers.rb +6 -0
  229. data/vendor/bundle/gems/pry-0.12.2/lib/pry/history.rb +161 -0
  230. data/vendor/bundle/gems/pry-0.12.2/lib/pry/hooks.rb +171 -0
  231. data/vendor/bundle/gems/pry-0.12.2/lib/pry/indent.rb +408 -0
  232. data/vendor/bundle/gems/pry-0.12.2/lib/pry/input_completer.rb +265 -0
  233. data/vendor/bundle/gems/pry-0.12.2/lib/pry/input_lock.rb +130 -0
  234. data/vendor/bundle/gems/pry-0.12.2/lib/pry/inspector.rb +27 -0
  235. data/vendor/bundle/gems/pry-0.12.2/lib/pry/last_exception.rb +61 -0
  236. data/vendor/bundle/gems/pry-0.12.2/lib/pry/method/disowned.rb +55 -0
  237. data/vendor/bundle/gems/pry-0.12.2/lib/pry/method/patcher.rb +122 -0
  238. data/vendor/bundle/gems/pry-0.12.2/lib/pry/method/weird_method_locator.rb +198 -0
  239. data/vendor/bundle/gems/pry-0.12.2/lib/pry/method.rb +552 -0
  240. data/vendor/bundle/gems/pry-0.12.2/lib/pry/object_path.rb +83 -0
  241. data/vendor/bundle/gems/pry-0.12.2/lib/pry/output.rb +50 -0
  242. data/vendor/bundle/gems/pry-0.12.2/lib/pry/pager.rb +250 -0
  243. data/vendor/bundle/gems/pry-0.12.2/lib/pry/platform.rb +91 -0
  244. data/vendor/bundle/gems/pry-0.12.2/lib/pry/plugins.rb +122 -0
  245. data/vendor/bundle/gems/pry-0.12.2/lib/pry/prompt.rb +145 -0
  246. data/vendor/bundle/gems/pry-0.12.2/lib/pry/pry_class.rb +425 -0
  247. data/vendor/bundle/gems/pry-0.12.2/lib/pry/pry_instance.rb +699 -0
  248. data/vendor/bundle/gems/pry-0.12.2/lib/pry/repl.rb +261 -0
  249. data/vendor/bundle/gems/pry-0.12.2/lib/pry/repl_file_loader.rb +73 -0
  250. data/vendor/bundle/gems/pry-0.12.2/lib/pry/ring.rb +84 -0
  251. data/vendor/bundle/gems/pry-0.12.2/lib/pry/rubygem.rb +84 -0
  252. data/vendor/bundle/gems/pry-0.12.2/lib/pry/slop/LICENSE +20 -0
  253. data/vendor/bundle/gems/pry-0.12.2/lib/pry/slop/commands.rb +195 -0
  254. data/vendor/bundle/gems/pry-0.12.2/lib/pry/slop/option.rb +206 -0
  255. data/vendor/bundle/gems/pry-0.12.2/lib/pry/slop.rb +661 -0
  256. data/vendor/bundle/gems/pry-0.12.2/lib/pry/terminal.rb +91 -0
  257. data/vendor/bundle/gems/pry-0.12.2/lib/pry/testable/evalable.rb +15 -0
  258. data/vendor/bundle/gems/pry-0.12.2/lib/pry/testable/mockable.rb +14 -0
  259. data/vendor/bundle/gems/pry-0.12.2/lib/pry/testable/pry_tester.rb +73 -0
  260. data/vendor/bundle/gems/pry-0.12.2/lib/pry/testable/utility.rb +26 -0
  261. data/vendor/bundle/gems/pry-0.12.2/lib/pry/testable/variables.rb +46 -0
  262. data/vendor/bundle/gems/pry-0.12.2/lib/pry/testable.rb +70 -0
  263. data/vendor/bundle/gems/pry-0.12.2/lib/pry/version.rb +3 -0
  264. data/vendor/bundle/gems/pry-0.12.2/lib/pry/wrapped_module/candidate.rb +131 -0
  265. data/vendor/bundle/gems/pry-0.12.2/lib/pry/wrapped_module.rb +378 -0
  266. data/vendor/bundle/gems/pry-0.12.2/lib/pry.rb +132 -0
  267. data/vendor/bundle/gems/rb-readline-0.5.5/CHANGES +94 -0
  268. data/vendor/bundle/gems/rb-readline-0.5.5/LICENSE +25 -0
  269. data/vendor/bundle/gems/rb-readline-0.5.5/README.md +81 -0
  270. data/vendor/bundle/gems/rb-readline-0.5.5/Rakefile +25 -0
  271. data/vendor/bundle/gems/rb-readline-0.5.5/bench/_rl_adjust_point.rb +26 -0
  272. data/vendor/bundle/gems/rb-readline-0.5.5/examples/example_readline.rb +8 -0
  273. data/vendor/bundle/gems/rb-readline-0.5.5/examples/example_readline_with_completion.rb +18 -0
  274. data/vendor/bundle/gems/rb-readline-0.5.5/examples/tinyirb.rb +11 -0
  275. data/vendor/bundle/gems/rb-readline-0.5.5/lib/rb-readline.rb +18 -0
  276. data/vendor/bundle/gems/rb-readline-0.5.5/lib/rbreadline/version.rb +3 -0
  277. data/vendor/bundle/gems/rb-readline-0.5.5/lib/rbreadline.rb +8920 -0
  278. data/vendor/bundle/gems/rb-readline-0.5.5/lib/readline.rb +539 -0
  279. data/vendor/bundle/gems/rb-readline-0.5.5/rb-readline.gemspec +51 -0
  280. data/vendor/bundle/gems/rb-readline-0.5.5/setup.rb +1585 -0
  281. data/vendor/bundle/gems/rb-readline-0.5.5/test/support/filesystem_completion_helper.rb +53 -0
  282. data/vendor/bundle/gems/rb-readline-0.5.5/test/test_completion.rb +100 -0
  283. data/vendor/bundle/gems/rb-readline-0.5.5/test/test_filename_completion_proc.rb +88 -0
  284. data/vendor/bundle/gems/rb-readline-0.5.5/test/test_history.rb +29 -0
  285. data/vendor/bundle/gems/rb-readline-0.5.5/test/test_rbreadline.rb +23 -0
  286. data/vendor/bundle/gems/rb-readline-0.5.5/test/test_readline.rb +221 -0
  287. data/vendor/bundle/specifications/coderay-1.1.2.gemspec +26 -0
  288. data/vendor/bundle/specifications/colorize-0.8.1.gemspec +38 -0
  289. data/vendor/bundle/specifications/method_source-0.9.2.gemspec +35 -0
  290. data/vendor/bundle/specifications/pry-0.12.2.gemspec +38 -0
  291. data/vendor/bundle/specifications/rb-readline-0.5.5.gemspec +39 -0
  292. metadata +363 -0
@@ -0,0 +1,3 @@
1
+ module MethodSource
2
+ VERSION = '0.9.2'.freeze
3
+ end
@@ -0,0 +1,141 @@
1
+ # (C) John Mair (banisterfiend) 2011
2
+ # MIT License
3
+
4
+ direc = File.dirname(__FILE__)
5
+
6
+ require "#{direc}/method_source/version"
7
+ require "#{direc}/method_source/source_location"
8
+ require "#{direc}/method_source/code_helpers"
9
+
10
+ module MethodSource
11
+ extend MethodSource::CodeHelpers
12
+
13
+ # An Exception to mark errors that were raised trying to find the source from
14
+ # a given source_location.
15
+ #
16
+ class SourceNotFoundError < StandardError; end
17
+
18
+ # Helper method responsible for extracting method body.
19
+ # Defined here to avoid polluting `Method` class.
20
+ # @param [Array] source_location The array returned by Method#source_location
21
+ # @param [String] method_name
22
+ # @return [String] The method body
23
+ def self.source_helper(source_location, name=nil)
24
+ raise SourceNotFoundError, "Could not locate source for #{name}!" unless source_location
25
+ file, line = *source_location
26
+
27
+ expression_at(lines_for(file), line)
28
+ rescue SyntaxError => e
29
+ raise SourceNotFoundError, "Could not parse source for #{name}: #{e.message}"
30
+ end
31
+
32
+ # Helper method responsible for opening source file and buffering up
33
+ # the comments for a specified method. Defined here to avoid polluting
34
+ # `Method` class.
35
+ # @param [Array] source_location The array returned by Method#source_location
36
+ # @param [String] method_name
37
+ # @return [String] The comments up to the point of the method.
38
+ def self.comment_helper(source_location, name=nil)
39
+ raise SourceNotFoundError, "Could not locate source for #{name}!" unless source_location
40
+ file, line = *source_location
41
+
42
+ comment_describing(lines_for(file), line)
43
+ end
44
+
45
+ # Load a memoized copy of the lines in a file.
46
+ #
47
+ # @param [String] file_name
48
+ # @param [String] method_name
49
+ # @return [Array<String>] the contents of the file
50
+ # @raise [SourceNotFoundError]
51
+ def self.lines_for(file_name, name=nil)
52
+ @lines_for_file ||= {}
53
+ @lines_for_file[file_name] ||= File.readlines(file_name)
54
+ rescue Errno::ENOENT => e
55
+ raise SourceNotFoundError, "Could not load source for #{name}: #{e.message}"
56
+ end
57
+
58
+ # @deprecated — use MethodSource::CodeHelpers#complete_expression?
59
+ def self.valid_expression?(str)
60
+ complete_expression?(str)
61
+ rescue SyntaxError
62
+ false
63
+ end
64
+
65
+ # @deprecated — use MethodSource::CodeHelpers#expression_at
66
+ def self.extract_code(source_location)
67
+ source_helper(source_location)
68
+ end
69
+
70
+ # This module is to be included by `Method` and `UnboundMethod` and
71
+ # provides the `#source` functionality
72
+ module MethodExtensions
73
+
74
+ # We use the included hook to patch Method#source on rubinius.
75
+ # We need to use the included hook as Rubinius defines a `source`
76
+ # on Method so including a module will have no effect (as it's
77
+ # higher up the MRO).
78
+ # @param [Class] klass The class that includes the module.
79
+ def self.included(klass)
80
+ if klass.method_defined?(:source) && Object.const_defined?(:RUBY_ENGINE) &&
81
+ RUBY_ENGINE =~ /rbx/
82
+
83
+ klass.class_eval do
84
+ orig_source = instance_method(:source)
85
+
86
+ define_method(:source) do
87
+ begin
88
+ super
89
+ rescue
90
+ orig_source.bind(self).call
91
+ end
92
+ end
93
+
94
+ end
95
+ end
96
+ end
97
+
98
+ # Return the sourcecode for the method as a string
99
+ # @return [String] The method sourcecode as a string
100
+ # @raise SourceNotFoundException
101
+ #
102
+ # @example
103
+ # Set.instance_method(:clear).source.display
104
+ # =>
105
+ # def clear
106
+ # @hash.clear
107
+ # self
108
+ # end
109
+ def source
110
+ MethodSource.source_helper(source_location, defined?(name) ? name : inspect)
111
+ end
112
+
113
+ # Return the comments associated with the method as a string.
114
+ # @return [String] The method's comments as a string
115
+ # @raise SourceNotFoundException
116
+ #
117
+ # @example
118
+ # Set.instance_method(:clear).comment.display
119
+ # =>
120
+ # # Removes all elements and returns self.
121
+ def comment
122
+ MethodSource.comment_helper(source_location, defined?(name) ? name : inspect)
123
+ end
124
+ end
125
+ end
126
+
127
+ class Method
128
+ include MethodSource::SourceLocation::MethodExtensions
129
+ include MethodSource::MethodExtensions
130
+ end
131
+
132
+ class UnboundMethod
133
+ include MethodSource::SourceLocation::UnboundMethodExtensions
134
+ include MethodSource::MethodExtensions
135
+ end
136
+
137
+ class Proc
138
+ include MethodSource::SourceLocation::ProcExtensions
139
+ include MethodSource::MethodExtensions
140
+ end
141
+
@@ -0,0 +1,35 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # stub: method_source 0.9.2 ruby lib
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "method_source".freeze
6
+ s.version = "0.9.2"
7
+
8
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
+ s.require_paths = ["lib".freeze]
10
+ s.authors = ["John Mair (banisterfiend)".freeze]
11
+ s.date = "2018-11-12"
12
+ s.description = "retrieve the sourcecode for a method".freeze
13
+ s.email = "jrmair@gmail.com".freeze
14
+ s.files = [".gemtest".freeze, ".travis.yml".freeze, ".yardopts".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.markdown".freeze, "Rakefile".freeze, "lib/method_source.rb".freeze, "lib/method_source/code_helpers.rb".freeze, "lib/method_source/source_location.rb".freeze, "lib/method_source/version.rb".freeze, "method_source.gemspec".freeze, "spec/method_source/code_helpers_spec.rb".freeze, "spec/method_source_spec.rb".freeze, "spec/spec_helper.rb".freeze]
15
+ s.homepage = "http://banisterfiend.wordpress.com".freeze
16
+ s.licenses = ["MIT".freeze]
17
+ s.rubygems_version = "2.7.6".freeze
18
+ s.summary = "retrieve the sourcecode for a method".freeze
19
+ s.test_files = ["spec/method_source/code_helpers_spec.rb".freeze, "spec/method_source_spec.rb".freeze, "spec/spec_helper.rb".freeze]
20
+
21
+ if s.respond_to? :specification_version then
22
+ s.specification_version = 4
23
+
24
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
25
+ s.add_development_dependency(%q<rspec>.freeze, ["~> 3.6"])
26
+ s.add_development_dependency(%q<rake>.freeze, ["~> 0.9"])
27
+ else
28
+ s.add_dependency(%q<rspec>.freeze, ["~> 3.6"])
29
+ s.add_dependency(%q<rake>.freeze, ["~> 0.9"])
30
+ end
31
+ else
32
+ s.add_dependency(%q<rspec>.freeze, ["~> 3.6"])
33
+ s.add_dependency(%q<rake>.freeze, ["~> 0.9"])
34
+ end
35
+ end
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+
3
+ describe MethodSource::CodeHelpers do
4
+ before do
5
+ @tester = Object.new.extend(MethodSource::CodeHelpers)
6
+ end
7
+
8
+ [
9
+ ["p = '", "'"],
10
+ ["def", "a", "(); end"],
11
+ ["p = <<FOO", "lots", "and", "lots of", "foo", "FOO"],
12
+ ["[", ":lets,", "'list',", "[/nested/", "], things ]"],
13
+ ["abc =~ /hello", "/"],
14
+ ["issue = %W/", "343/"],
15
+ ["pouts(<<HI, 'foo", "bar", "HI", "baz')"],
16
+ ["=begin", "no-one uses this syntax anymore...", "=end"],
17
+ ["puts 1, 2,", "3"],
18
+ ["puts 'hello'\\", "'world'"]
19
+ ].each do |lines|
20
+ it "should not raise an error on broken lines: #{lines.join("\\n")}" do
21
+ 1.upto(lines.size - 1) do |i|
22
+ expect(@tester.complete_expression?(lines[0...i].join("\n") + "\n")).to be_falsy
23
+ end
24
+ expect(@tester.complete_expression?(lines.join("\n"))).to be_truthy
25
+ end
26
+ end
27
+
28
+ [
29
+ ["end"],
30
+ ["puts )("],
31
+ ["1 1"],
32
+ ["puts :"]
33
+ ] + (RbConfig::CONFIG['ruby_install_name'] == 'rbx' ? [] : [
34
+ ["def", "method(1"], # in this case the syntax error is "expecting ')'".
35
+ ["o = Object.new.tap{ def o.render;","'MEH'", "}"] # in this case the syntax error is "expecting keyword_end".
36
+ ]).compact.each do |foo|
37
+ it "should raise an error on invalid syntax like #{foo.inspect}" do
38
+ expect {
39
+ @tester.complete_expression?(foo.join("\n"))
40
+ }.to raise_error(SyntaxError)
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,143 @@
1
+ require 'spec_helper'
2
+
3
+ describe MethodSource do
4
+
5
+ describe "source_location (testing 1.8 implementation)" do
6
+ it 'should return correct source_location for a method' do
7
+ expect(method(:hello).source_location.first).to match(/spec_helper/)
8
+ end
9
+
10
+ it 'should not raise for immediate instance methods' do
11
+ [Symbol, Integer, TrueClass, FalseClass, NilClass].each do |immediate_class|
12
+ expect do
13
+ immediate_class.instance_method(:to_s).source_location
14
+ end.not_to raise_error
15
+ end
16
+ end
17
+
18
+ it 'should not raise for immediate methods' do
19
+ [:a, 1, true, false, nil].each do |immediate|
20
+ expect do
21
+ immediate.method(:to_s).source_location
22
+ end.not_to raise_error
23
+ end
24
+ end
25
+ end
26
+
27
+ before do
28
+ @hello_module_source = " def hello; :hello_module; end\n"
29
+ @hello_singleton_source = "def $o.hello; :hello_singleton; end\n"
30
+ @hello_source = "def hello; :hello; end\n"
31
+ @hello_comment = "# A comment for hello\n# It spans two lines and is indented by 2 spaces\n"
32
+ @lambda_comment = "# This is a comment for MyLambda\n"
33
+ @lambda_source = "MyLambda = lambda { :lambda }\n"
34
+ @proc_source = "MyProc = Proc.new { :proc }\n"
35
+ @hello_instance_evaled_source = " def hello_\#{name}(*args)\n send_mesg(:\#{name}, *args)\n end\n"
36
+ @hello_instance_evaled_source_2 = " def \#{name}_two()\n if 44\n 45\n end\n end\n"
37
+ @hello_class_evaled_source = " def hello_\#{name}(*args)\n send_mesg(:\#{name}, *args)\n end\n"
38
+ @hi_module_evaled_source = " def hi_\#{name}\n @var = \#{name}\n end\n"
39
+ end
40
+
41
+ it 'should define methods on Method and UnboundMethod and Proc' do
42
+ expect(Method.method_defined?(:source)).to be_truthy
43
+ expect(UnboundMethod.method_defined?(:source)).to be_truthy
44
+ expect(Proc.method_defined?(:source)).to be_truthy
45
+ end
46
+
47
+ describe "Methods" do
48
+ it 'should return source for method' do
49
+ expect(method(:hello).source).to eq(@hello_source)
50
+ end
51
+
52
+ it 'should return source for a method defined in a module' do
53
+ expect(M.instance_method(:hello).source).to eq(@hello_module_source)
54
+ end
55
+
56
+ it 'should return source for a singleton method as an instance method' do
57
+ expect(class << $o
58
+ self
59
+ end.instance_method(:hello).source).to eq(@hello_singleton_source)
60
+ end
61
+
62
+ it 'should return source for a singleton method' do
63
+ expect($o.method(:hello).source).to eq(@hello_singleton_source)
64
+ end
65
+
66
+ it 'should return a comment for method' do
67
+ expect(method(:hello).comment).to eq(@hello_comment)
68
+ end
69
+
70
+ # These tests fail because of http://jira.codehaus.org/browse/JRUBY-4576
71
+ unless defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
72
+ it 'should return source for an *_evaled method' do
73
+ expect(M.method(:hello_name).source).to eq(@hello_instance_evaled_source)
74
+ expect(M.method(:name_two).source).to eq(@hello_instance_evaled_source_2)
75
+ expect(M.instance_method(:hello_name).source).to eq(@hello_class_evaled_source)
76
+ expect(M.instance_method(:hi_name).source).to eq(@hi_module_evaled_source)
77
+ end
78
+ end
79
+
80
+ it "should raise error for evaled methods that do not pass __FILE__ and __LINE__ + 1 as its arguments" do
81
+ expect do
82
+ M.instance_method(:name_three).source
83
+ end.to raise_error(MethodSource::SourceNotFoundError)
84
+ end
85
+
86
+ if !is_rbx?
87
+ it 'should raise for C methods' do
88
+ expect do
89
+ method(:puts).source
90
+ end.to raise_error(MethodSource::SourceNotFoundError)
91
+ end
92
+ end
93
+ end
94
+
95
+ # if RUBY_VERSION =~ /1.9/ || is_rbx?
96
+ describe "Lambdas and Procs" do
97
+ it 'should return source for proc' do
98
+ expect(MyProc.source).to eq(@proc_source)
99
+ end
100
+
101
+ it 'should return an empty string if there is no comment' do
102
+ expect(MyProc.comment).to eq('')
103
+ end
104
+
105
+ it 'should return source for lambda' do
106
+ expect(MyLambda.source).to eq(@lambda_source)
107
+ end
108
+
109
+ it 'should return comment for lambda' do
110
+ expect(MyLambda.comment).to eq(@lambda_comment)
111
+ end
112
+ end
113
+ # end
114
+ describe "Comment tests" do
115
+ before do
116
+ @comment1 = "# a\n# b\n"
117
+ @comment2 = "# a\n# b\n"
118
+ @comment3 = "# a\n#\n# b\n"
119
+ @comment4 = "# a\n# b\n"
120
+ @comment5 = "# a\n# b\n# c\n# d\n"
121
+ end
122
+
123
+ it "should correctly extract multi-line comments" do
124
+ expect(method(:comment_test1).comment).to eq(@comment1)
125
+ end
126
+
127
+ it "should correctly strip leading whitespace before comments" do
128
+ expect(method(:comment_test2).comment).to eq(@comment2)
129
+ end
130
+
131
+ it "should keep empty comment lines" do
132
+ expect(method(:comment_test3).comment).to eq(@comment3)
133
+ end
134
+
135
+ it "should ignore blank lines between comments" do
136
+ expect(method(:comment_test4).comment).to eq(@comment4)
137
+ end
138
+
139
+ it "should align all comments to same indent level" do
140
+ expect(method(:comment_test5).comment).to eq(@comment5)
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,101 @@
1
+ require 'method_source'
2
+ require 'rspec'
3
+
4
+ def is_rbx?
5
+ defined?(RUBY_ENGINE) && RUBY_ENGINE =~ /rbx/
6
+ end
7
+
8
+ def jruby?
9
+ defined?(RUBY_ENGINE) && RUBY_ENGINE =~ /jruby/
10
+ end
11
+
12
+
13
+ module M
14
+ def hello; :hello_module; end
15
+ end
16
+
17
+ $o = Object.new
18
+ def $o.hello; :hello_singleton; end
19
+
20
+ # A comment for hello
21
+
22
+ # It spans two lines and is indented by 2 spaces
23
+ def hello; :hello; end
24
+
25
+ # a
26
+ # b
27
+ def comment_test1; end
28
+
29
+ # a
30
+ # b
31
+ def comment_test2; end
32
+
33
+ # a
34
+ #
35
+ # b
36
+ def comment_test3; end
37
+
38
+ # a
39
+
40
+ # b
41
+ def comment_test4; end
42
+
43
+
44
+ # a
45
+ # b
46
+ # c
47
+ # d
48
+ def comment_test5; end
49
+
50
+ # This is a comment for MyLambda
51
+ MyLambda = lambda { :lambda }
52
+ MyProc = Proc.new { :proc }
53
+
54
+
55
+ name = "name"
56
+
57
+ M.instance_eval <<-METHOD, __FILE__, __LINE__ + 1
58
+ def hello_#{name}(*args)
59
+ send_mesg(:#{name}, *args)
60
+ end
61
+ METHOD
62
+
63
+ M.class_eval <<-METHOD, __FILE__, __LINE__ + 1
64
+ def hello_#{name}(*args)
65
+ send_mesg(:#{name}, *args)
66
+ end
67
+ METHOD
68
+
69
+ # module_eval to DRY code up
70
+ #
71
+ M.module_eval <<-METHOD, __FILE__, __LINE__ + 1
72
+
73
+ # module_eval is used here
74
+ #
75
+ def hi_#{name}
76
+ @var = #{name}
77
+ end
78
+ METHOD
79
+
80
+ # case where 2 methods are defined inside an _eval block
81
+ #
82
+ M.instance_eval <<EOF, __FILE__, __LINE__ + 1
83
+
84
+ def #{name}_one()
85
+ if 43
86
+ 44
87
+ end
88
+ end
89
+
90
+
91
+ def #{name}_two()
92
+ if 44
93
+ 45
94
+ end
95
+ end
96
+ EOF
97
+
98
+ # class_eval without filename and lineno + 1 parameter
99
+
100
+ M.class_eval "def #{name}_three; @tempfile.#{name}; end"
101
+