pry 0.9.12.2 → 0.14.2

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