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,953 @@
1
+ ### HEAD
2
+
3
+ ### [v0.12.2][v0.12.2] (November 12, 2018)
4
+
5
+ #### Bug fixes
6
+
7
+ * Restore removed deprecations, which were removed by accident due to a bad
8
+ rebase.
9
+
10
+ ### [v0.12.1][v0.12.1] (November 12, 2018)
11
+
12
+ #### Bug fixes
13
+
14
+ * Stopped creating a new hash each time `Pry::Prompt#[]` is invoked
15
+ ([#1855](https://github.com/pry/pry/pull/1855))
16
+ * Fixed `less` pager not working when it's available
17
+ ([#1861](https://github.com/pry/pry/pull/1861))
18
+
19
+ ### [v0.12.0][v0.12.0] (November 5, 2018)
20
+
21
+ #### Major changes
22
+
23
+ * Dropped support for Rubinius ([#1785](https://github.com/pry/pry/pull/1785))
24
+
25
+ #### Features
26
+
27
+ * Added a new command, `clear-screen`, that clears the content of the screen Pry
28
+ is running in regardless of platform (Windows or UNIX-like)
29
+ ([#1723](https://github.com/pry/pry/pull/1723))
30
+ * Added a new command, `gem-stat`, that prints gem statistics such as gem
31
+ dependencies and downloads ([#1707](https://github.com/pry/pry/pull/1707))
32
+ * Added support for nested exceptions for the `wtf` command
33
+ ([#1791](https://github.com/pry/pry/pull/1791))
34
+ * Added support for dynamic prompt names
35
+ ([#1833](https://github.com/pry/pry/pull/1833))
36
+
37
+ ```rb
38
+ # pryrc
39
+ Pry.config.prompt_name = Pry.lazy { rand(100) }
40
+
41
+ # Session
42
+ [1] 80(main)>
43
+ [2] 87(main)>
44
+ [3] 30(main)>
45
+ ```
46
+ * Added support for XDG Base Directory Specification
47
+ ([#1609](https://github.com/pry/pry/pull/1609),
48
+ [#1844](https://github.com/pry/pry/pull/1844),
49
+ ([#1848](https://github.com/pry/pry/pull/1848)))
50
+ * Removed the `simple-prompt`. Use `change-prompt simple` instead. The
51
+ `list-prompt` command was removed and embedded as `change-prompt --list`
52
+ ([#1849](https://github.com/pry/pry/pull/1849))
53
+
54
+ #### API changes
55
+
56
+ * The following methods started accepting the new optional `config` parameter
57
+ ([#1809](https://github.com/pry/pry/pull/1809)):
58
+ * `Pry::Helpers.tablify(things, line_length, config = Pry.config)`
59
+ * `Pry::Helpers.tablify_or_one_line(heading, things, config = Pry.config)`
60
+ * `Pry::Helpers.tablify_to_screen_width(things, options, config = Pry.config)`
61
+ * `Pry::Helpers::Table.new(items, args, config = Pry.config)`
62
+
63
+ You are expected to pass a session-local `_pry_.config` instead of the global
64
+ one.
65
+
66
+ * Added new method `Pry::Config.assign`, for creating a Config non-recursively
67
+ ([#1725](https://github.com/pry/pry/issues/1725))
68
+ * Added `Pry.lazy`, which is a helper method for values that need to be
69
+ calculated dynamically. Currently, only `config.prompt_name` supports it
70
+ ([#1833](https://github.com/pry/pry/pull/1833))
71
+ * `Pry::Prompt` responds to `.[]`, `.all` & `.add` now. The `Pry::Prompt.add`
72
+ method must be used for implementing custom prompts. See the API in the
73
+ documentation for the class ([#1846](https://github.com/pry/pry/pull/1846))
74
+
75
+ #### Breaking changes
76
+
77
+ * Deleted the `Pry::Helpers::Text.bright_default` alias for
78
+ `Pry::Helpers::Text.bold` ([#1795](https://github.com/pry/pry/pull/1795))
79
+ * `Pry::Helpers.tablify_to_screen_width(things, options, config = Pry.config)`
80
+ requires `options` or `nil` in place of them.
81
+ * `Pry::Helpers::Table.new(items, args, config = Pry.config)` requires `args`
82
+ or `nil` in place of them.
83
+ * Completely revamped `Pry::HistoryArray`
84
+ ([#1818](https://github.com/pry/pry/pull/1818)).
85
+ * It's been renamed to `Pry::Ring`
86
+ ([#1817](https://github.com/pry/pry/pull/1817))
87
+ * The implementation has changed and as result, the following methods were
88
+ removed:
89
+ * `Pry::Ring#length` (use `Pry::Ring#count` instead)
90
+ * `#empty?`, `#each`, `#inspect`, `#pop!`, `#to_h`
91
+ * To access old Enumerable methods convert the ring to Array with `#to_a`
92
+ * Fixed indexing for elements (e.g. `_pry_.input_ring[0]` always return some
93
+ element and not `nil`)
94
+ * Renamed `Pry.config.prompt_safe_objects` to `Pry.config.prompt_safe_contexts`
95
+ * Removed deprecated `Pry::CommandSet#before_command` &
96
+ `Pry::CommandSet#after_command` ([#1838](https://github.com/pry/pry/pull/1838))
97
+
98
+ #### Deprecations
99
+
100
+ * Deprecated `_pry_.input_array` & `_pry_.output_array` in favour of
101
+ `_pry_.input_ring` & `_pry_.output_ring` respectively
102
+ ([#1814](https://github.com/pry/pry/pull/1814))
103
+ * Deprecated `Pry::Command#text`. Please use `#black`, `#white`, etc. directly
104
+ instead (as you would with helper functions from `BaseHelpers` and
105
+ `CommandHelpers`) ([#1701](https://github.com/pry/pry/pull/1701))
106
+ * Deprecated `_pry_.input_array` & `_pry_.output_array` in favour of
107
+ `_pry_.input_ring` and `_pry_.output_ring` respectively
108
+ ([#1817](https://github.com/pry/pry/pull/1817))
109
+ * Deprecated `Pry::Platform`. Use `Pry::Helpers::Platform` instead. Note that
110
+ `Pry::Helpers::BaseHelpers` still includes the `Platform` methods but emits a
111
+ warning. You must switch to `Pry::Helpers::Platform` in your code
112
+ ([#1838](https://github.com/pry/pry/pull/1838),
113
+ ([#1845](https://github.com/pry/pry/pull/1845)))
114
+ * Deprecated `Pry::Prompt::MAP`. You should use `Pry::Prompt.all` instead to
115
+ access the same map ([#1846](https://github.com/pry/pry/pull/1846))
116
+
117
+ #### Bug fixes
118
+
119
+ * Fixed a bug where `cd Hash.new` reported `self` as an instance of Pry::Config
120
+ in the prompt ([#1725](https://github.com/pry/pry/pull/1725))
121
+ * Silenced the `Could not find files for the given pattern(s)` error message
122
+ coming from `where` on Windows, when `less` or another pager is not installed
123
+ ([#1767](https://github.com/pry/pry/pull/1767))
124
+ * Fixed possible double loading of Pry plugins' `cli.rb` on Ruby (>= 2.4) due to
125
+ [the `realpath` changes while invoking
126
+ `require`](https://bugs.ruby-lang.org/issues/10222)
127
+ ([#1762](https://github.com/pry/pry/pull/1762),
128
+ [#1774](https://github.com/pry/pry/pull/1762))
129
+ * Fixed `NoMethodError` on code objects that have a comment but no source when
130
+ invoking `show-source` ([#1779](https://github.com/pry/pry/pull/1779))
131
+ * Fixed `negative argument (ArgumentError)` upon pasting code with tabs, which
132
+ used to confuse automatic indentation
133
+ ([#1771](https://github.com/pry/pry/pull/1771))
134
+ * Fixed Pry not being able to load history on Ruby 2.4.4+ when it contains the
135
+ null character ([#1789](https://github.com/pry/pry/pull/1789))
136
+ * Fixed Pry raising errors on `cd`'ing into some objects that redefine
137
+ `method_missing` and `respond_to?`
138
+ ([#1811](https://github.com/pry/pry/pull/1811))
139
+ * Fixed bug when indentation leaves parts of input after pressing enter when
140
+ Readline is enabled with mode indicators for vi mode
141
+ ([#1813](https://github.com/pry/pry/pull/1813),
142
+ [#1820](https://github.com/pry/pry/pull/1820),
143
+ [#1825](https://github.com/pry/pry/pull/1825))
144
+ * Fixed `edit` not writing to history
145
+ ([#1749](https://github.com/pry/pry/issues/1749))
146
+
147
+ #### Other changes
148
+
149
+ * Deprecated the `Data` constant to match Ruby 2.5 in the `ls` command
150
+ ([#1731](https://github.com/pry/pry/pull/1731))
151
+
152
+ ### 0.11.3
153
+
154
+ #### Features
155
+
156
+ * Add Pry::Testable, an improved modular replacement for PryTestHelpers.
157
+ **breaking change**.
158
+
159
+ See pull request [#1679](https://github.com/pry/pry/pull/1679).
160
+
161
+ * Add a new category module: "Pry::Platform". Loosely related to #1668 below.
162
+
163
+ See pull request [#1670](https://github.com/pry/pry/pull/1670)
164
+
165
+ * Add `mac_osx?` and `linux?` utility functions to Pry::Helpers::BaseHelpers.
166
+
167
+ See pull request [#1668](https://github.com/pry/pry/pull/1668).
168
+
169
+ * Add utility functions for drawing colorised text on a colorised background.
170
+
171
+ See pull request [#1673](https://github.com/pry/pry/pull/1673).
172
+
173
+ #### Bug fixes
174
+
175
+ * Fix a case of infinite recursion in `Pry::Method::WeirdMethodLocator#find_method_in_superclass`
176
+ that users of the [Hanami](http://hanamirb.org/) web framework experienced and
177
+ reported since 2015.
178
+
179
+ See pull request [#1689](https://github.com/pry/pry/pull/1689).
180
+
181
+ * Fix a bug where Method objects were not returned for setters inherited
182
+ from a default (Pry::Config::Default). Eg, this is no longer an error:
183
+
184
+ pry(main)> d = Pry::Config.from_hash({}, Pry::Config::Default.new)
185
+ pry(main)> d.method(:exception_whitelist=) # Error
186
+
187
+ See pull request [#1688](https://github.com/pry/pry/pull/1688).
188
+
189
+ * Do not capture unused Proc objects in Text helper methods `no_color` and `no_paging`,
190
+ for performance reasons. Improve the documentation of both methods.
191
+
192
+ See pull request [#1691](https://github.com/pry/pry/pull/1691).
193
+
194
+ * Fix `String#pp` output color.
195
+
196
+ See pull request [#1674](https://github.com/pry/pry/pull/1674).
197
+
198
+
199
+ ### 0.11.0
200
+
201
+ * Add alias 'whereami[?!]+' for 'whereami' command. ([#1597](https://github.com/pry/pry/pull/1597))
202
+ * Improve Ruby 2.4 support ([#1611](https://github.com/pry/pry/pull/1611)):
203
+ * Deprecated constants are hidden from `ls` output by default, use the `-d` switch to see them.
204
+ * Fix warnings that originate in Pry while using the repl.
205
+ * Improve completion speed in large applications. ([#1588](https://github.com/pry/pry/pull/1588))
206
+ * Pry::ColorPrinter.pp: add `newline` argument and pass it on to PP. ([#1603](https://github.com/pry/pry/pull/1603))
207
+ * Use `less` or system pager pager on MS Windows if it is available. ([#1512](https://github.com/pry/pry/pull/1512))
208
+ * Add `Pry.configure` as an alternative to the current way of changing configuration options in `.pryrc` files. ([#1502](https://github.com/pry/pry/pull/1502))
209
+ * Add `Pry::Config::Behavior#eager_load!` to add a possible workaround for issues like ([#1501](https://github.com/pry/pry/issues/1501))
210
+ * Remove Slop as a runtime dependency by vendoring v3.4 as Pry::Slop.
211
+ People can depend on Slop v4 and Pry at the same time without running into version conflicts. ([#1497](https://github.com/pry/pry/issues/1497))
212
+ * Fix auto-indentation of code that uses a single-line rescue ([#1450](https://github.com/pry/pry/issues/1450))
213
+ * Remove "Pry::Config#refresh", please use "Pry::Config#clear" instead.
214
+ * Defining a method called "ls" no longer breaks the "ls" command ([#1407](https://github.com/pry/pry/issues/1407))
215
+ * Don't raise when directory permissions don't allow file expansion ([#1432](https://github.com/pry/pry/issues/1432))
216
+ * Syntax highlight <tt> tags in documentation output.
217
+ * Add support for BasicObject subclasses who implement their own #inspect (#1341)
218
+ * Fix 'include RSpec::Matchers' at the top-level (#1277)
219
+ * Add 'gem-readme' command, prints the README file bundled with a rubygem
220
+ * Add 'gem-search' command, searches for a gem with the rubygems.org HTTP API
221
+ * Fixed bug in the `cat` command where it was impossible to use line numbers with files ([#1349](https://github.com/pry/pry/issues/1349))
222
+ * Fixed uncaught Errno::EOPNOTSUPP exception when $stdout is a socket ([#1352](https://github.com/pry/pry/issues/1352))
223
+ * Display a warning when you cd'ed inside a C object and executed 'show-source' without arguments ([#691](https://github.com/pry/pry/issues/691))
224
+ * Make the stagger_output method more reliable by reusing possibly available Pry instance ([#1364](https://github.com/pry/pry/pull/1364))
225
+ * Make the 'gem-install' message less confusing by removing backticks ([#1350](https://github.com/pry/pry/pull/1350))
226
+ * Fixed error when Pry was trying to load incompatible versions of plugins ([#1312](https://github.com/pry/pry/issues/1312))
227
+ * Fixed bug when `hist --clear` led to ArgumentError ([#1340](https://github.com/pry/pry/pull/1340))
228
+ * Fixed the "uninitialized constant Pry::ObjectPath::StringScanner" exception during autocomplete ([#1330](https://github.com/pry/pry/issues/1330))
229
+ * Secured usage of colours with special characters (RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE) in Pry::Helpers::Text ([#493](https://github.com/pry/pry/issues/493#issuecomment-39232771))
230
+ * Fixed regression with `pry -e` when it messes the terminal ([#1387](https://github.com/pry/pry/issues/1387))
231
+ * Fixed regression with space prefixes of expressions ([#1369](https://github.com/pry/pry/issues/1369))
232
+ * Introduced the new way to define hooks for commands (with `Pry.hooks.add_hook("{before,after}_commandName")`). The old way is deprecated, but still supported (with `Pry.commands.{before,after}_command`) ([#651](https://github.com/pry/pry/issues/651))
233
+ * Removed old API's using `Pry::Hooks.from_hash` altogether
234
+ * Removed hints on Foreman support (see [this](https://github.com/ddollar/foreman/pull/536))
235
+ * Fixed support for the tee command ([#1334](https://github.com/pry/pry/issues/1334))
236
+ * Implemented support for CDPATH for ShellCommand ([#1433](https://github.com/pry/pry/issues/1433), [#1434](https://github.com/pry/pry/issues/1434))
237
+ * `Pry::CLI.parse_options` does not start Pry anymore ([#1393](https://github.com/pry/pry/pull/1393))
238
+ * The gem uses CPU-less platforms for Windows now ([#1410](https://github.com/pry/pry/pull/1410))
239
+ * Add `Pry::Config::Memoization` to make it easier to implement your own `Pry::Config::Default` class.([#1503](https://github.com/pry/pry/pull/1503/))
240
+ * Lazy load the config defaults for `Pry.config.history` and `Pry.config.gist`.
241
+
242
+ ### 0.10.1
243
+
244
+ * Fix bugs with jruby
245
+ * Move to rspec for testing (from bacon)
246
+ * Clean up ruby warnings
247
+
248
+ ### 0.10.0
249
+
250
+ #### Features
251
+ * Added a `watch` command that lets you see how values change over time.
252
+ * Added an experimental `Pry.auto_resize!` method
253
+ * Makes Pry notice that your window has resized and tell Readline about it
254
+ * Fixes various bugs with command history after a window resize
255
+ * Off by default, but can be called from your `.pryrc` if you're brave
256
+ * `play` now has an `-e`/`--expression` flag
257
+ * Evaluates until the end of the first valid expression
258
+ * History gets appended to `~/.pry_history` after every input, not just at quit
259
+ * Return values render with more accurate syntax highlighting
260
+ * Return values start rendering immediately and stream into the pager
261
+ * User can override `.pryrc` location by setting `$PRYRC` env var (#893)
262
+ * User can whitelist objects whose inspect output should appear in prompt (#885)
263
+ * See `Pry.config.prompt_safe_objects`
264
+ * `whereami` is now aliased to `@`
265
+ * Added arguments to `whereami`:
266
+ * `-m` shows the surrounding method
267
+ * `-c` shows the surrounding class
268
+ * `-f` shows the entire file
269
+ * Lazy load configuration values (Pry.config). (#1096)
270
+ * Defer requiring `readline` until Pry is started for the first time. (#1117)
271
+ * Add option to disable input completer through `_pry_.config.completer = nil`
272
+ * Add `list-prompts` command. (#1175)
273
+ * Lists the available prompts available for use.
274
+ * Add `change-prompt` command. (#1175)
275
+ * Switches the current prompt, by name.
276
+ * Add `list-inspectors` command. (#1176)
277
+ * Lists the inspectors available to print Ruby return values.
278
+ * Add `change-inspector` command. (#1176)
279
+ * Switches the current inspector, by name.
280
+ * Add `show-source -e`. (#1185)
281
+ * Evaluate the given Ruby expression and show the source of its return value.
282
+ * Add `Pry.config.windows_console_warning`(#1218)
283
+ * Windows JRuby users who don't want warnings about ansicon can set
284
+ `Pry.config.windows_console_warning = false`.
285
+ * Add arguments to `play` command.
286
+ * `-p` prints the code before playing it.
287
+ * `-e` allows you to play expressions from your session.
288
+ * Add `cd -` to switch to the previous binding.
289
+ * Allow prying into frozen objects.
290
+
291
+ #### Dependency changes
292
+
293
+ * Remove dependency on `ffi` gem on JRuby ([#1158](https://github.com/pry/pry/issues/1158))
294
+ * Remove optional dependency on Bond ([#1166](https://github.com/pry/pry/issues/1166))
295
+ * Bond support has been extracted to the `pry-bond` plugin
296
+ * Remove dependency on `openstruct` ([#1096](https://github.com/pry/pry/issues/1096))
297
+ * Drop support for Ruby 1.8.7 (0.9.12.x will continue to be available)
298
+ * Add support for Ruby 2.1
299
+ * Require Coderay `~> 1.1.0`
300
+ * Remove deprecated hooks API ([#1209](https://github.com/pry/pry/pull/1209))
301
+ * Add 64-bit windows support.
302
+
303
+ #### Bug fixes, etc.
304
+ * The `gem-install` command can require gems like `net-ssh` thanks to better
305
+ logic for guessing what path to require. (#1188)
306
+ * `toggle-color` command toggles the local `_pry_.color` setting instead of the
307
+ global `Pry.color`.
308
+ * Update `Pry::CLIPPED_PRINT` to include a hex representation of object ID when
309
+ printing a return value. (#1162)
310
+ * Wrap exceptions in a proxy instead of adding singleton methods. (#1145)
311
+ * `Pry#last_exception=` now supports exception objects that have been frozen.
312
+ * `binding.pry` inside `.pryrc` file now works, with some limitations (@richo / #1118)
313
+ * Add support for BasicObjects to `ls` (#984)
314
+ * Allow `ls -c <anything>` (#891)
315
+ * Fix indentation not working if the `mathn` stdlib was loaded (#872)
316
+ * Fix `hist`'s `--exclude-pry` switch (#874)
317
+ * Fix `gem-install` on JRuby (#870)
318
+ * Fix source lookup for instrumented classes (#923)
319
+ * Improved thread safety when multiple instances are running (#944)
320
+ * Make `edit` ignore `-n`/`--no-reload` flag and `disable_auto_reload` config
321
+ in cases where the user was editing a tempfile
322
+ * Make `gem-cd` use the most recent gem, not the oldest
323
+ * Make `install-command` honor `.gemrc` switches (#666)
324
+ * Make `hist` with no parameters show just the current session's history (#205)
325
+ * `hist --all` shows older history
326
+ * Make `-s`/`--super` flag of `show-source`/`show-doc` work when method name is
327
+ being inferred from context (#877)
328
+ * Rename `--installed-plugins` flag to `--plugins`
329
+ * Strip ANSI codes from prompt before measuring length for indentation (#493)
330
+ * Fix bug in `edit` regarding recognition of file names without suffix.
331
+ * Reduced download size by removing tests etc. from distributed gem.
332
+
333
+ #### Dev-facing changes
334
+ * `CommandSet#commands`, sometimes referenced through `Pry.commands.commands`,
335
+ renamed to `CommandSet#to_hash`. It returns a duplicate of the internal hash
336
+ a CommandSet uses.
337
+ * `CommandSet#keys` is now an alias of `CommandSet#list_commands`.
338
+ * All commands should now reference configuration values via `_pry_.config`
339
+ (local) and not `Pry.config` (global). (#1096)
340
+ * This change improves support for concurrent environments and
341
+ context-specific Pry sessions. `_pry_.config` inherits default values from
342
+ `Pry.config` but can override them locally.
343
+ * `rake pry` now accepts switches prefixed with `_` (e.g., `rake pry _v`)
344
+ * Pagers now act like `IO`s and accept streaming output
345
+ * See `_pry_.pager.page` and `_pry_.pager.open`.
346
+ * The `Pry` class has been broken up into two smaller classes.
347
+ * `Pry` represents non-UI-specific session state, including the eval string
348
+ * `Pry::REPL` controls the user-facing interface
349
+ * This should make it easier to drive Pry from alternative interfaces
350
+ * `Pry.start` now has a `:driver` option that defaults to `Pry::REPL`
351
+ * This involved a lot of refactoring and may break plugins that depend on
352
+ the old layout
353
+ * Add `ColorPrinter` subclass of `PP` for colorized object inspection
354
+ * Add `[]` and `[]=` methods to `CommandSet`, which find and replace commands
355
+ * Example: `Pry.commands["help"] = MyHelpCommand`
356
+ * The completion API has been refactored (see fdb703a8de4ef3)
357
+ * `Pry.config.input_stack` (and the input stack concept in general) no longer
358
+ exists
359
+ * There's a new `Pry::Terminal` class that implements a number of different
360
+ methods of determining the terminal's dimensions
361
+ * Add `ReplTester` class for high-level simulation of Pry sessions in tests
362
+ * Add `Pry.main`. Returns the special instance of Object referenced by self of
363
+ `TOPLEVEL_BINDING`: "main".
364
+ * Changed second argument of `Pry.view_clip()` from Fixnum to Hash to support
365
+ returning a string with or without a hex representation of object ID. (#1162)
366
+ * The `output` and `pager` objects will now strip color-codes, so commands should
367
+ always print in color.
368
+ * Commands now have a `state` hash that is persistent across invocations of the command
369
+ in the same pry session.
370
+
371
+ ### 0.9.12.6 (2014/01/28)
372
+ * Don't fail if Bond is not installed (#1106)
373
+
374
+ ### 0.9.12.5 (2014/01/27)
375
+ * Fix early readline errors by deferring require of readline (#1081, #1095)
376
+
377
+ ### 0.9.12.4 (2013/11/23)
378
+ * Fix issue with Coderay colors being black, even when on a black background (#1016)
379
+
380
+ ### 0.9.12.3 (2013/09/11)
381
+ * Bump Coderay dependency (#987)
382
+ * Fix consecutive newlines in heredocs being collapsed (#962)
383
+ * Fix pager not working in JRuby > 1.7.5 (#992)
384
+
385
+ ### 0.9.12.2 (2013/05/10)
386
+ * Make `reload-code` with no args reload "current" file (#920)
387
+
388
+ ### 0.9.12.1 (2013/04/21)
389
+ * Add workaround for JRuby crashing bug (#890)
390
+ * Related to http://jira.codehaus.org/browse/JRUBY-7114
391
+
392
+ ### 0.9.12 (2013/02/12)
393
+ #### Features
394
+ * `pry --gem` (see 19bfc13aa)
395
+ * `show-source` now works on commands created with `create_command`
396
+ * `whereami` now has `-m` (method), `-c` (class), and `-f` (file) options
397
+ * `show-source` now falls back to superclass (and displays warning) if it
398
+ can't find class code
399
+ * `show-source`/`show-doc` now indicate when `-a` option is available
400
+
401
+ #### Bug fixes, etc.
402
+ * Fix commands breaking due to Slop looking at `ARGV` instead of command
403
+ parameters (#828)
404
+ * Fix pager breaking in some situations (#845)
405
+ * Fix broken rendering of some docs (#795)
406
+ * Silence warnings during failed tab-completion attempts
407
+ * Fix broken prompt when prompt is colored (#822 / #823)
408
+ * Added `reload-method` as alias for `reload-code` (for backwards
409
+ compatibility)
410
+ * Reopen `Readline.output` if it is not a tty (see 1538bc0990)
411
+
412
+ ### 0.9.11.4 (2013/01/20)
413
+ * Fix pager not rendering color codes in some circumstances
414
+ * Add `Pry.last_internal_error`, useful for devs debugging commands
415
+
416
+ ### 0.9.11.3 (2013/01/17)
417
+ * Fix `Pry.run_command`
418
+ * Improve `ls` output
419
+ * Add `:requires_gem => "jist"` to `gist` command (so dependencies can be
420
+ installed via `install-command`)
421
+ * Improve help for `edit` command
422
+
423
+ ### 0.9.11.2 (2013/01/16)
424
+ * Fix minor bug in `gist` on Windows: rescue `Jist::ClipboardError` rather
425
+ than letting the scary error spill out to users and potentially having them
426
+ think the gist didn't post.
427
+
428
+ ### 0.9.11.1 (2013/01/16)
429
+ * Fix minor bug in `gist` command where I neglected to remove
430
+ a call to a non-existent method (`no_arg`) which was called when
431
+ `gist` is invoked with no parameters
432
+
433
+ ### 0.9.11 (2013/01/16)
434
+ #### Dependency changes
435
+ * Upgrade `slop` to `~> 3.4`
436
+ * New optional dependency: `bond`
437
+ * You'll need to perform `gem install bond`
438
+ * It improves autocompletion if you use Readline
439
+ * Does not work for libedit
440
+ (More info: https://github.com/pry/pry/wiki/FAQ#wiki-readline)
441
+ * Big thanks to cldwalker
442
+
443
+ #### Features
444
+ * Basic Ruby 2.0 support (#738)
445
+ * JRuby 1.7.0+ support (#732)
446
+ * New `reload-code` command
447
+ * Reload code for methods, classes, commands, objects and so on
448
+ * Examples: `reload-code MyClass`, `reload-code my_method`,
449
+ `reload-code my_obj`
450
+ * Bond tab completion (see "Dependency changes")
451
+ * Consolidate "show" commands into `show-source`
452
+ * `show-source` can now extract source for:
453
+ * Classes
454
+ * Methods
455
+ * Procs
456
+ * Pry commands
457
+ * Arbitrary objects (it shows the source for the class of the object)
458
+ * As a result, `show-command` is now removed
459
+ * `gist`, `play`, and `save-file` now infer object type without requiring flags
460
+ * Examples: `play MyClass`, `play my_file.rb`, `play my_method`
461
+ * Consolidate editing commands into `edit`
462
+ * `edit` can now edit:
463
+ * Files
464
+ * Methods
465
+ * Classes
466
+ * Pry commands
467
+ * As a result, `edit-method` is now removed
468
+ * Examples: `edit MyClass`, `edit my_file.rb`, `edit my_method`
469
+ * `amend-line` and `play` now properly indent code added to input buffer
470
+ * Support for multiple require switches (`pry -rubygems -r./a.rb`) (#674)
471
+ * Support for multiple exec switches (`pry -e ':one' -e ':two'`)
472
+ * Ability to customize the name displayed in the prompt (#695)
473
+ * `--patch` switch for `edit --ex` command (#716)
474
+ * Respect the `$PAGER` environment variable (#736)
475
+ * `disable-pry` command (#497)
476
+ * Two new hooks, `before_eval` and `after_eval`
477
+ * Tab completion for `Array#<tab>` in `show-source` and `show-doc`
478
+ * `gem-install` immediately requires gems
479
+ * `-l` switch for `ls` command (displays local variables)
480
+ * `gem-open` command
481
+ * `fix-indent` command
482
+ * Subcommands API
483
+ * Public test API for plugin writers (see d1489a)
484
+ * Tabular `ls` output
485
+ * `--no-line-numbers` switch for `whereami` command
486
+ * `--lines` switch for `play` command
487
+
488
+ #### Bug fixes, etc.
489
+ * Use single escape instead of double in `find-method` (#652)
490
+ * Fix blank string delimiters (#657)
491
+ * Fix unwanted `binding_impl_method` local in scratch bindings (#622)
492
+ * Fix `edit-method -p` changing constant lookup (#645)
493
+ * Fix `.pryrc` loading twice when invoked from `$HOME` directory (#682)
494
+ * Fix Pry not remembering initial `pwd` (#675)
495
+ * Fix multiline object coloring (#717)
496
+ * Fix `show-method` not supporting `String::new` notation (#719)
497
+ * Fix `whereami` command not showing correct line numbers (#754)
498
+ * Fix buggy Cucumber AST output (#751)
499
+ * Fix `while/until do` loops indentation (#787)
500
+ * Fix `--no-plugins` switch (#526)
501
+ * Ensure all errors go to the error handler (#774)
502
+ * Fix `.pryrc` loading with wrong `__FILE__`
503
+ * Fix pager not working if `less` is not available
504
+ * Fix `^D` in nested REPL
505
+ * Many small improvements to error message clarity and documentation formatting
506
+
507
+ ### 0.9.10 (2012/07/04)
508
+ #### Dependency changes
509
+ * Upgrade `slop` to version 3 (#561)
510
+ * Switch from `gist` gem to `jist` (#590)
511
+ * Upgrade `method_source` to 0.8
512
+
513
+ #### Features
514
+ * Add `--hist`, `-o` and `-k` flags to `gist` command (#572)
515
+ * Support `show-source`/`show-doc` on methods defined in `class_eval` (#584)
516
+ * Support `show-source`/`show-doc` on gem methods defined in C (#585)
517
+ * Add `--disable-plugin` and `--select-plugin` options (#596)
518
+ * Allow `cd -` to switch between bindings (#597)
519
+ * Add `Pry.config.should_load_local_rc` to turn off `./.pryrc` (#612)
520
+ * Allow running a file of Pry input with `pry <file>`
521
+ * Support colours in `ri` command
522
+ * Add `before_eval` hook
523
+ * The prompt proc now gets a lot more data when its arity is 1
524
+
525
+ #### Bug fixes, etc.
526
+ * Removed the `req` command (#554)
527
+ * Fix rendering bugs when starting Pry (#567)
528
+ * Fix `Array#pretty_print` on Jruby (#568)
529
+ * Fix `edit` on Windows (#575)
530
+ * Fix `find-method` in the presence of badly behaved objects (#576)
531
+ * Fix `whereami` in ERb files on Rails (#580)
532
+ * Raise fewer exceptions while tab completing (#632)
533
+ * Don't immediately quit Pry when an error happens in Readline (#605)
534
+ * Support for `ansicon` to give JRuby Windows users colour (#606)
535
+ * Massive speed improvements to `show-source` for modules (#613)
536
+ * Improve `whereami` command when not in a `binding.pry` (#620)
537
+ * Support embedded documents (`=begin` ... `=end`) (#622)
538
+ * Support editing files with spaces in the name (#627)
539
+ * Renamed `__binding_impl__` to `__pry__`
540
+ * Support for absolute paths in `$EDITOR`
541
+ * Fix `cat` command on files with unknown extensions
542
+ * Many, many internal refactorings and tidyings
543
+
544
+ ### 0.9.9.6 (2012/05/09)
545
+ * Fix `ZeroDivisionError` in `correct_indentation` (#558)
546
+
547
+ ### 0.9.9.5 (2012/05/09)
548
+ * Fix `ZeroDivisionError` in `correct_indentation` (#558)
549
+ * Fix double highlighting in RDoc (#562)
550
+ * Automatically create configuration for plugins (#548)
551
+
552
+ ### 0.9.9.4 (2012/04/26)
553
+ * Fix `NoMethodError: undefined method `winsize' for #<IO:<STDOUT>>` (#549)
554
+ * Fixes for JRuby
555
+ * Fix syntax error on `exit` (550)
556
+ * Heredoc content no longer auto-indented
557
+
558
+ ### 0.9.9.3 (2012/04/19)
559
+ * Fix `show-doc` failing on some core classes, like `Bignum`
560
+
561
+ ### 0.9.9.2 (2012/04/18)
562
+ * Make `correct_indentation`'s auto-colorization respect `Pry.color`
563
+
564
+ ### 0.9.9.1 (2012/04/18)
565
+ * Clear up confusion in `show-source`/`show-doc` docs
566
+ * `-a` switch applies to classes as well as modules
567
+
568
+ ### 0.9.9 (2012/04/18)
569
+ #### New features
570
+ * Lines of input are syntax highlighted upon Enter keypress
571
+ * `show-source` command can now show class/module source code
572
+ * Use `-a` to see all monkeypatches
573
+ * Hard dependency on `ruby18_source_location` gem in MRI 1.8
574
+ * `show-doc` command can now show class/module docs
575
+ * Use `-a` to see docs for all monkeypatches
576
+ * Hard dependency on `ruby18_source_location` gem in MRI 1.8
577
+ * New `find-method` command
578
+ * Performs a recursive search in a namespace for the existence of methods
579
+ * Can find methods whose names match a regex or methods which contain
580
+ provided code
581
+ * This command is like a ruby-aware `grep`, very cool (thanks swarley)
582
+ * [`pry-coolline`](https://github.com/pry/pry-coolline) now works properly
583
+ * `alias_command` method now much more powerful
584
+ * Example: `alias_command "lM", "ls -M"`
585
+ * `whereami` is now more intelligent
586
+ * Automatically shows entire source code of current method if current
587
+ context is a method (thanks robgleeson)
588
+ * New `raise-up` command
589
+ * Allows you to raise an exception that will bubble out of pry (ending the
590
+ session) and escape into enclosing program
591
+
592
+ #### Bug fixes, etc.
593
+ * Fixed crash when paging under Windows
594
+ * Lines ending with `\` are incomplete (kudos to fowl)
595
+ * `edit-method -n` no longer blocks (thanks misfo)
596
+ * Show instance methods of modules by default in `ls`
597
+ * Docs for REPL-defined methods can now be displayed using `show-doc`
598
+ * Autoload `ruby18_source_location` on MRI 1.8, when available
599
+ * See https://github.com/conradirwin/ruby18_source_location
600
+ * Tab completion should work on first line now (historic bug fixed)
601
+ * `:quiet => true` option added to `Pry.start`, turns off `whereami`
602
+ * Another easter egg added
603
+ * Show unloaded constants in yellow for `ls`
604
+ * Improved documentation for `Pry.config` options
605
+ * Improved auto-indentation
606
+ * JRuby: heuristics used to clean up `ls` output
607
+ * Fewer internal methods polluting output
608
+
609
+ ### 0.9.8.4 (2012/6/3)
610
+ * ~/.pry_history wasn't being created (if it did not exist)! FIXED
611
+ * `hist --save` saved colors! FIXED
612
+ * added Pry#add_sticky_local API for adding sticky locals to individual pry instances
613
+
614
+ ### 0.9.8.3 (2012/3/2)
615
+ * various tweaks to improve rbx support
616
+ * commands now support optional block arguments
617
+ * much improved help command
618
+ * updated method_source dependency
619
+ * added wtf command
620
+ * jruby should now work in windows (though without color)
621
+
622
+ ### 0.9.8.2 (2012/2/9)
623
+ * fixed bugs related to --super
624
+ * upgraded slop dependency
625
+ * added edit -c (edit current line)
626
+ * edit now respects Pry.config.disable_autoreload option
627
+
628
+ ### 0.9.8.1 (2012/1/30)
629
+ * fixed broken --no-plugins option
630
+ * Ensure ARGV is not mutated during option parsing.
631
+ * Use a more rbx-friendly test for unicodeness
632
+ * Use rbx-{18,19}mode as indicated http://about.travis-ci.org/docs/user/languages/ruby/
633
+ * Don't explode in gem-list [Fixes #453, #454]
634
+ * Check for command-name collision on assignment [Fixes #450]
635
+
636
+ ### 0.9.8 (2012/1/25)
637
+
638
+ MAJOR NEW FEATURES
639
+ - upgraded command api, https://github.com/pry/pry/wiki/Custom-commands
640
+ - added a system of hooks for customizing pry behaviour
641
+ - changed syntax checking to use eval() for improved accuracy
642
+ - added save-file command
643
+ - added gist command (removed gist-method, new gist command is more general)
644
+
645
+ complete CHANGELOG:
646
+ * CommandError's no longer cause the current input to be discarded
647
+ * Better syntax highlighting for rbx code code
648
+ * added cat --in to show pry input history
649
+ * prefixed temporary file names with 'pry'
650
+ * show-doc now supports -l and -b options (line numbers)
651
+ * play now supports -i and -d options
652
+ * moved UserCommandAPI command-set to pry-developer_tools plugin
653
+ * added :when_started event for hooks, called in Pry.start
654
+ * added a man page
655
+ * added rename method to Pry::CommandSet (commands can be renamed)
656
+ * added CommandSet#{before_command,after_command} for enhancing builtin commands
657
+ * added checking for namespace collisions with pry commands, set Pry.config.collision_warning
658
+ * work around namespace collisions by ensuring lines starting with a space are executed as
659
+ * ruby.work around namespace collisions by pressuring lines starting with a space are executed as ruby
660
+ * added handlers for Ctrl+C (SIGINT) on jruby, these are now caught as in other ruby versions
661
+ * removed dependency on ruby_parser
662
+ * prevented colours leaking across the pry prompt
663
+ * fixed edge cases in Pry::Method, for methods with crazy names and methods that have been 'undef'd
664
+ * refactored history handling code for clarity and correctness
665
+ * added Pry::WrappedModule as a counterpart to Pry::Method
666
+ * made a trailing , cause pry to wait for further input
667
+ * removed gist-method command, added gist command
668
+ * added pry-backtrace command to show history of current session
669
+ * fixed whereami within 'super' methods
670
+ * replaced inline version guards by Pry::Helpers::BaseHelpers.{rbx?,jruby?,windows?} etc.
671
+ * removed the CommandProcessor, its functionality is part of the new Command class
672
+ * changed cd .. at the top level so it doesn't quit pry.
673
+ * changed edit-command to no-longer need a command set argument
674
+ * fixed empty lines so that they don't replace _ by nil
675
+ * fixed SyntaxErrors at the REPL level so they don't replace _ex_.
676
+
677
+ ### 0.9.7.4 (2011/11/5)
678
+ * ls -M now works in modules (bugfix)
679
+ * added exception message for bad cd object/path
680
+ * no longer die when encounter exceptions in .pryrc
681
+ * baked in CoolLine support
682
+ * Pry.config.input in .pryrc now respected
683
+
684
+ ### 0.9.7.3 (2011/10/28)
685
+ * really fixed indentation for 'super if' and friends
686
+ * Fixed indentation for tmux
687
+ * added Pry.config.correct_indent option (to toggle whether indentation
688
+ * corrected optional param behaviour for method signatures: e.g Signature meth(param1=?, param2=?)
689
+
690
+ ### 0.9.7.2 (2011/10/27)
691
+ * fixed indentation for 'super if' and 'ensure', 'next if', etc
692
+ * refactored Pry#run_command so it can accept an eval_string parameter (so amend-line and so on can work with it)
693
+ * changed ^D so it no longer resets indent level automatically
694
+
695
+ ### 0.9.7.1 (2011/10/26)
696
+ * fixed gem dependency issues
697
+
698
+ ### 0.9.7 (2011/10/25)
699
+
700
+ MAJOR NEW FEATURES:
701
+ - upgraded ls command to have a more intuitive interface
702
+ - added automatic indentation (thanks YorickPeterse!)
703
+ - added Pry::Method wrapper class to encapsulate method-related functionality
704
+
705
+ complete CHANGELOG:
706
+ * fixed syntax highlighting for object literals
707
+ * fixed ActiveSupport method-naming conflict with "in?"
708
+ * added --super option to edit-method, show-method, and friends - making it easier to operate on superclass methods
709
+ * officially added edit --in to open previous expressions in an editor
710
+ * whereami now works for REPL-defined code
711
+ * started using JRuby parser for input validation in JRuby (thanks pangloss!)
712
+ * fixed bug where ~/.pryrc could be loaded more than once (thanks kelseyjudson!)
713
+ * added parse_options! helper to pull option parsing out of commands
714
+ * Pry now respects the terminal's input encoding
715
+ * moved some requires out of the startup process for improved speed
716
+ * added input_array info to DEFAULT_PROMPT, e.g [1] pry(main)>
717
+ * added --no-history option to pry binary (prevent history being LOADED, history will still be saved)
718
+
719
+ ### 0.9.6.2 (2011/9/27)
720
+ * downgrading to CodeRay 0.9.8 due to problems with 1.0 and rails (autoloading problem) see #280 on pry and #6 on CodeRay
721
+ * also added (as a minor feature) cirwin's implementation of edit --in
722
+ * added early break/exit for objectpath errors (the 'cd 34/@hello/bad_path/23')
723
+
724
+ ### 0.9.6 (2011/9/19)
725
+ * restored previous behavior of command-line switches (allowing "-rfilename")
726
+ * removed -p option (--play) from edit command
727
+ * `edit` with no arguments now edits the current or most recent expression
728
+ * `edit` auto-reloads .rb files (need to specify -n to suppress)
729
+ * added -p option (--patch) to edit-method command, which allows
730
+ monkeypatching methods without touching the original file
731
+ * edit-method can now edit REPL-defined methods
732
+ * cat --ex now works on exceptions in REPL-defined code
733
+ * play -m now uses eval_string.replace()
734
+ * play -m --open uses show-input to show play'd code
735
+ * added "unindent" helper to make adding help to commands easier
736
+ * local ./.pryrc now loaded after ~/.pryrc if it exists
737
+ * cat --ex N and edit --ex N now can navigate through backtrace, where cat --ex (with no args) moves through successive levels of the backtrace automatically with state stored on the exception object itself
738
+ * new option Pry.config.exception_window_size determines window size for cat --ex
739
+ * input_stack now implemented - pushing objects onto a pry instance's input_stack causes the instance to read from those objects in turn as it encounters EOF on the previous object. On finishing the input_stack the input object for the pry instance is set back to Pry.config.input, if this fails, pry breaks out of the REPL (throw(:breakout)) with an error message
740
+ * Pry.config.system() defines how pry runs system commands
741
+ * now injecting target_self method into command scope
742
+ * play now performs 'show-input' always unless eval_string contains a valid expression (i.e it's about to be eval'd)
743
+ * play and hist --replay now push the current input object onto the input_stack before redirecting input to a StringIO (works much better with pry-remote now)
744
+
745
+ ### 0.9.5 (2011/9/8)
746
+
747
+ MAJOR NEW FEATURES:
748
+ - JRuby support, including show-method/edit-method and editor integration on both 1.8 and 1.9 versions
749
+ - extended cd syntax: cd ../@x/y
750
+ - play command now works much better with _in_ array (this is a very powerful feature, esp with Pry::NAV_PROMPT)
751
+ - history saving/loading is now lightning fast
752
+ - 'edit' (entered by itself) now opens current lines in input buffer in an editor, and evals on exit
753
+ - 'edit' command is also, in general more intelligent
754
+ - ls output no longer in array format, and colors can be configured, e.g: Pry.config.ls.ivar_color = :bright_blue
755
+ - new switch-to command for moving around the binding stack without exiting out of sessions
756
+ - more sophisticated prompts, Pry::NAV_PROMPT to ease deep spelunking of code
757
+ - major bug fix for windows systems
758
+ - much better support for huge objects, should no longer hang pry (see #245)
759
+ - cat --ex and edit --ex now work better
760
+
761
+ complete CHANGELOG:
762
+ * tempfile should end in .rb (for edit -t)
763
+ * ls output should not be in array format
764
+ * fix history saving (should not save all of Readline::HISTORY, but only what changed)
765
+ * prevent blank lines going to Readline::HISTORY (thanks cirwin!)
766
+ * ensure that cat --ex emulates the `whereami` format - includes line numbers and formatted the same, etc
767
+ * fixed bug #200 ( https://github.com/pry/pry/issues/200 )- string interpolation bug (thanks to ryanf)
768
+ * show-doc and stat now display method visibility (update WIKI)
769
+ * got rid of warnings caused by stricter ruby 1.9.3 rules
770
+ * remove interpolation of command names and fix interpolation error message (update WIKI) (thanks ryanf!)
771
+ * 'nested sessions' now use binding stacks (so each instance manages its own collection of bindings without spawning other instances)
772
+ * 'cd ..' just pops a binding off the binding_stack with special behaviour when only one binding in stack - it breaks out of the repl loop
773
+ * added switch-to command (like jump-to but doesn't unwind the stack)
774
+ * show-method and show-doc now accept multiple method names
775
+ * control_d hook added (Pry.config.control_d_handler)
776
+ * behaviour of ^d is now to break out of current expr if in multi-line expr, or break out of current context if nested, or break out of pry repl loop if at top-level
777
+ * can no longer interpolate command name itself e.g #{x}-#{y} where x = "show" and y = "doc"
778
+ * ^C no longer captured
779
+ * got rid of Pry.active_instance, Pry.last_exception and friends.
780
+ * also special locals now shared among bindings in a pry instance (i.e _ex_ (and friends) re-injected into new binding entered with 'cd')
781
+ * renamed inp and out to _in_ and _out_ (to avoid collisions with actual locals in debugging scope)
782
+ * added third parameter to prompts, the pry instance itself (_pry) see https://github.com/pry/pry/issues/233 for why it's important
783
+ * cd behaviour when no args performs the same as `cd /`
784
+ * commands with keep_retval can now return nil (to suppress output now return 'void' instead)
785
+ * Pry::CommandProcessor::Result introduced
786
+ * Pry.view_clip() modified to be more robust and properly display Class#name
787
+ * edit command when invoked with no args now works like edit -t
788
+ * when edit is invoked (with no args or with -t) inside a multi-line expression input buffer, it dumps that buffer into a temp file and takes you to it
789
+ * got rid of Pry#null_input? since all that was needed was eval_string.empty?
790
+ * cd command now supports complex syntax: cd ../@y/y/../z
791
+ * JRuby is no longer a 2nd class citizen, almost full JRuby support, passing 100% tests
792
+ * added Pry::NAV_PROMPT (great new navigation prompt, per robgleeson) and Pry::SIMPLE_PRINT for simple (IRB-style) print output (just using inspect)
793
+ * _pry_ now passed as 3rd parameter to :before_session hook
794
+ * ls colors now configurable via Pry.config.ls.local_var_color = :bright_red etc
795
+ * ls separator configurable via, e.g Pry.config.ls.separator = " "
796
+ * Pry.view_clip() now only calls inspect on a few immediates, otherwise uses the #<> syntax, which has been truncated further to exclude teh mem address, again related to #245
797
+
798
+ ### 0.9.3 (2011/7/27)
799
+ * cat --ex (cats 5 lines above and below line in file where exception was raised)
800
+ * edit --ex (edits line in file where exception was raised)
801
+ * edit -t (opens a temporary file and evals it in current context when closed)
802
+ * `pry -r` requires now happen after plugin loading (so as not to interfere with
803
+ * new Pry.config.disable_auto_reload option, for turning off auto reloading by edit-method and related (thanks ryanf)
804
+ * add better error messages for `cd` command
805
+ * fixed exotic object regression - BasicObject.new etc now return "=> unknown"
806
+ * added reload-method command (reloads the associated file of a method)
807
+ * converted: import => import-set, version => pry-version, install => install-command
808
+ * Pry.config.command_prefix support (thanks ryanf!)
809
+ * fixed indentation for simple-prompt
810
+ * hist command now excludes last line of input (the command invocation itself)
811
+ * hist now has `history` alias
812
+ * missing plugins no longer raise exception, just print a warning to $stderr
813
+ * fixed jedit editor support
814
+
815
+ ### 0.9.2 (2011/6/21)
816
+ * fixed string interpolation bug (caused valid ruby code not to execute, sorry!)
817
+ * fixed `ls` command, so it can properly display members of Object and classes, and BasicObject, etc
818
+ * added a few git related commands to experimental command set, blame and diff
819
+
820
+ ### 0.9.0 (2011/6/17)
821
+ * plugin system
822
+ * regex commands
823
+ * show-method works on methods defined in REPL
824
+ * new command system/API
825
+ * rubinius core support
826
+ * more backports to ruby 1.8
827
+ * inp/out special locals
828
+ * _ex_ backtrace navigation object (_ex_.line, _ex_.file)
829
+ * readline history saving/loading
830
+ * prompt stack
831
+ * more hooks
832
+ * amend-line
833
+ * play
834
+ * show-input
835
+ * edit
836
+ * much more comprehensive test suite
837
+ * support for new and old rubygems API
838
+ * changed -s behaviour of ls (now excludes Object methods)
839
+ * removed eval-file, lls, lcd, and a few other commands
840
+
841
+
842
+ ### 0.7.6.1 (2011/3/26)
843
+ * added slightly better support for YARD
844
+ * now @param and @return tags are colored green and markdown `code` is syntax highlighted using coderay
845
+
846
+ ### 0.7.6 (2011/3/26)
847
+ * `whereami` command now accepts parameter AROUND, to display AROUND lines on eitherside of invocation line.
848
+ * made it so `whereami` is invoked even if no method exists in current context (i.e in rspec tests)
849
+ * added rubinius support for `whereami` invocation in HOOKS by checking for __unknown__.rb rather than just <main>
850
+
851
+ ### 0.7.0 (2011/3/15)
852
+ * add pry-doc support with syntax highlighting for docs
853
+ * add 'mj' option to ls (restrict to singleton methods)
854
+ * add _ex_ local to hold last exception raised in an exception
855
+
856
+ ### 0.6.8 (2011/3/6)
857
+ * add whereami command, a la the `ir_b` gem
858
+ * make whereami run at the start of every session
859
+ * make .pryrc be loaded by run-time pry sessions
860
+
861
+ ### 0.6.7 (2011/3/4)
862
+ * color support
863
+ * --simple-prompt for pry commandline
864
+ * -I mode for pry commandline
865
+ * --color mode for pry commandline
866
+ * clean up requires (put them all in one place)
867
+ * simple-prompt command and toggle-color command.
868
+
869
+ ### 0.6.3 (2011/2/28)
870
+ * Using MethodSource 0.3.4 so 1.8 show-method support provided
871
+ * `Set` class added to list of classes that are inspected
872
+
873
+ ### 0.6.1 (2011/2/26)
874
+ * !@ command alias for exit_all
875
+ * `cd /` for breaking out to pry top level (jump-to 0)
876
+ * made `-e` option work in a more effective way for `pry` command line invocation
877
+ * exit and exit-all commands now accept a parameter, this parameter becomes the return value of repl()
878
+ * `command` method from CommandBase now accepts a :keep_retval arg that determines if command value is returned to pry session or just `nil` (`nil` was old behaviour)
879
+ * tests for new :keep_retval and exit-all/exit behaviour; :keep_retval will remain undocumented.
880
+
881
+ ### 0.5.8 (2011/2/22)
882
+ * Added -c (context) option to show-doc, show-methods and eval-file
883
+ * Fixed up ordering issue of -c and -r parameters to command line pry
884
+
885
+ ### 0.5.7 (2011/2/21)
886
+ * Added pry executable, auto-loads .pryrc in user's home directory, if it
887
+ exists.
888
+
889
+ ### 0.5.5 (2011/2/19)
890
+ * Added Pry.run_command
891
+ * More useful error messages
892
+ * Easter eggs (game and cohen-poem)
893
+
894
+ ### 0.5.0 (2011/2/17)
895
+ * Use clipped version of Pry.view() for large objects
896
+ * Exit Pry session on ^d
897
+ * Use Shellwords for breaking up parameters to pry commands
898
+ * Use OptionParser to parse options for default pry commands
899
+ * Add version command
900
+ * Refactor 'status' command: add current method info
901
+ * Add meth_name_from_binding utility lambda to commands.rb
902
+ * Add -M, -m, -v(erbose), -a(ll), -s(uper), -l(ocals), -i(ivars), -k(klass
903
+ vars), etc options to ls
904
+ * add -M(instance method) options to show-method and show-doc
905
+ * add --help option to most commands
906
+ * Get rid of ls_method and ls_imethods (subsumed by more powerful ls)
907
+ * Get rid of show_idoc and show_imethod
908
+ * Add special eval-file command that evals target file in current context
909
+
910
+ ### 0.4.5 (2011/1/27)
911
+ * fixed show_method (though fragile as it references __binding_impl__
912
+ directly, making a name change to that method difficult
913
+
914
+ ### 0.4.4 (2011/1/27)
915
+ * oops, added examples/ directory
916
+
917
+ ### 0.4.3 (2011/1/26)
918
+ * added alias_command and desc methods to Pry::CommandBase
919
+ * changed behaviour of ls_methods and ls_imethods to return sorted lists
920
+ of methods
921
+
922
+ ### 0.4.1 (2011/1/23)
923
+ * made it so a 'def meth;end' in an object Pry session defines singleton
924
+ methods, not methods on the class (except in the case of
925
+ immediates)
926
+ * reorganized documentation, moving customization to a separate wiki file
927
+ * storing wiki in a nested git repo, as github wiki pages have their own
928
+ repo
929
+ * added more tests for new method definition behaviour
930
+
931
+ ### 0.4.0 (2011/1/21)
932
+ * added command API
933
+ * added many new commands, i.e ls_methods and friends
934
+ * modified other commands
935
+ * now accepts greater customization, can modify: input, output, hooks,
936
+ prompt, print object
937
+ * added tab completion (even completes commands)
938
+ * added extensive tests
939
+ * added examples
940
+ * many more changes
941
+
942
+ ### 0.1.3 (2010/12/9)
943
+ * Got rid of rubygems dependency, refactored some code.
944
+
945
+ ### 0.1.2 (2010/12/8)
946
+ * now rescuing SyntaxError as well as Racc::Parser error in valid_expression?
947
+
948
+ ### 0.1.0 (2010/12/8)
949
+ * release!
950
+
951
+ [v0.12.0]: https://github.com/pry/pry/releases/tag/v0.12.0
952
+ [v0.12.1]: https://github.com/pry/pry/releases/tag/v0.12.1
953
+ [v0.12.2]: https://github.com/pry/pry/releases/tag/v0.12.2