pkgsr change:
* Remove @PREFIX@ from ALTERNATIVES file.
### [v0.12.2][v0.12.2] (November 12, 2018)
#### Bug fixes
* Restore removed deprecations, which were removed by accident due to a bad
rebase.
### [v0.12.1][v0.12.1] (November 12, 2018)
#### Bug fixes
* Stopped creating a new hash each time `Pry::Prompt#[]` is invoked
([#1855](https://github.com/pry/pry/pull/1855))
* Fixed `less` pager not working when it's available
([#1861](https://github.com/pry/pry/pull/1861))
### [v0.12.0][v0.12.0] (November 5, 2018)
#### Major changes
* Dropped support for Rubinius ([#1785](https://github.com/pry/pry/pull/1785))
#### Features
* Added a new command, `clear-screen`, that clears the content of the screen Pry
is running in regardless of platform (Windows or UNIX-like)
([#1723](https://github.com/pry/pry/pull/1723))
* Added a new command, `gem-stat`, that prints gem statistics such as gem
dependencies and downloads ([#1707](https://github.com/pry/pry/pull/1707))
* Added support for nested exceptions for the `wtf` command
([#1791](https://github.com/pry/pry/pull/1791))
* Added support for dynamic prompt names
([#1833](https://github.com/pry/pry/pull/1833))
```rb
# pryrc
Pry.config.prompt_name = Pry.lazy { rand(100) }
# Session
[1] 80(main)>
[2] 87(main)>
[3] 30(main)>
```
* Added support for XDG Base Directory Specification
([#1609](https://github.com/pry/pry/pull/1609),
[#1844](https://github.com/pry/pry/pull/1844),
([#1848](https://github.com/pry/pry/pull/1848)))
* Removed the `simple-prompt`. Use `change-prompt simple` instead. The
`list-prompt` command was removed and embedded as `change-prompt --list`
([#1849](https://github.com/pry/pry/pull/1849))
#### API changes
* The following methods started accepting the new optional `config` parameter
([#1809](https://github.com/pry/pry/pull/1809)):
* `Pry::Helpers.tablify(things, line_length, config = Pry.config)`
* `Pry::Helpers.tablify_or_one_line(heading, things, config = Pry.config)`
* `Pry::Helpers.tablify_to_screen_width(things, options, config = Pry.config)`
* `Pry::Helpers::Table.new(items, args, config = Pry.config)`
You are expected to pass a session-local `_pry_.config` instead of the global
one.
* Added new method `Pry::Config.assign`, for creating a Config non-recursively
([#1725](https://github.com/pry/pry/issues/1725))
* Added `Pry.lazy`, which is a helper method for values that need to be
calculated dynamically. Currently, only `config.prompt_name` supports it
([#1833](https://github.com/pry/pry/pull/1833))
* `Pry::Prompt` responds to `.[]`, `.all` & `.add` now. The `Pry::Prompt.add`
method must be used for implementing custom prompts. See the API in the
documentation for the class ([#1846](https://github.com/pry/pry/pull/1846))
#### Breaking changes
* Deleted the `Pry::Helpers::Text.bright_default` alias for
`Pry::Helpers::Text.bold` ([#1795](https://github.com/pry/pry/pull/1795))
* `Pry::Helpers.tablify_to_screen_width(things, options, config = Pry.config)`
requires `options` or `nil` in place of them.
* `Pry::Helpers::Table.new(items, args, config = Pry.config)` requires `args`
or `nil` in place of them.
* Completely revamped `Pry::HistoryArray`
([#1818](https://github.com/pry/pry/pull/1818)).
* It's been renamed to `Pry::Ring`
([#1817](https://github.com/pry/pry/pull/1817))
* The implementation has changed and as result, the following methods were
removed:
* `Pry::Ring#length` (use `Pry::Ring#count` instead)
* `#empty?`, `#each`, `#inspect`, `#pop!`, `#to_h`
* To access old Enumerable methods convert the ring to Array with `#to_a`
* Fixed indexing for elements (e.g. `_pry_.input_ring[0]` always return some
element and not `nil`)
* Renamed `Pry.config.prompt_safe_objects` to `Pry.config.prompt_safe_contexts`
* Removed deprecated `Pry::CommandSet#before_command` &
`Pry::CommandSet#after_command` ([#1838](https://github.com/pry/pry/pull/1838))
#### Deprecations
* Deprecated `_pry_.input_array` & `_pry_.output_array` in favour of
`_pry_.input_ring` & `_pry_.output_ring` respectively
([#1814](https://github.com/pry/pry/pull/1814))
* Deprecated `Pry::Command#text`. Please use `#black`, `#white`, etc. directly
instead (as you would with helper functions from `BaseHelpers` and
`CommandHelpers`) ([#1701](https://github.com/pry/pry/pull/1701))
* Deprecated `_pry_.input_array` & `_pry_.output_array` in favour of
`_pry_.input_ring` and `_pry_.output_ring` respectively
([#1817](https://github.com/pry/pry/pull/1817))
* Deprecated `Pry::Platform`. Use `Pry::Helpers::Platform` instead. Note that
`Pry::Helpers::BaseHelpers` still includes the `Platform` methods but emits a
warning. You must switch to `Pry::Helpers::Platform` in your code
([#1838](https://github.com/pry/pry/pull/1838),
([#1845](https://github.com/pry/pry/pull/1845)))
* Deprecated `Pry::Prompt::MAP`. You should use `Pry::Prompt.all` instead to
access the same map ([#1846](https://github.com/pry/pry/pull/1846))
#### Bug fixes
* Fixed a bug where `cd Hash.new` reported `self` as an instance of Pry::Config
in the prompt ([#1725](https://github.com/pry/pry/pull/1725))
* Silenced the `Could not find files for the given pattern(s)` error message
coming from `where` on Windows, when `less` or another pager is not installed
([#1767](https://github.com/pry/pry/pull/1767))
* Fixed possible double loading of Pry plugins' `cli.rb` on Ruby (>= 2.4) due to
[the `realpath` changes while invoking
`require`](https://bugs.ruby-lang.org/issues/10222)
([#1762](https://github.com/pry/pry/pull/1762),
[#1774](https://github.com/pry/pry/pull/1762))
* Fixed `NoMethodError` on code objects that have a comment but no source when
invoking `show-source` ([#1779](https://github.com/pry/pry/pull/1779))
* Fixed `negative argument (ArgumentError)` upon pasting code with tabs, which
used to confuse automatic indentation
([#1771](https://github.com/pry/pry/pull/1771))
* Fixed Pry not being able to load history on Ruby 2.4.4+ when it contains the
null character ([#1789](https://github.com/pry/pry/pull/1789))
* Fixed Pry raising errors on `cd`'ing into some objects that redefine
`method_missing` and `respond_to?`
([#1811](https://github.com/pry/pry/pull/1811))
* Fixed bug when indentation leaves parts of input after pressing enter when
Readline is enabled with mode indicators for vi mode
([#1813](https://github.com/pry/pry/pull/1813),
[#1820](https://github.com/pry/pry/pull/1820),
[#1825](https://github.com/pry/pry/pull/1825))
* Fixed `edit` not writing to history
([#1749](https://github.com/pry/pry/issues/1749))
#### Other changes
* Deprecated the `Data` constant to match Ruby 2.5 in the `ls` command
([#1731](https://github.com/pry/pry/pull/1731))
Problems found locating distfiles:
Package colorls: missing distfile ls.tar.gz
Package molden: missing distfile molden-4.6/molden4.6.tar.gz
Package softmaker-office-demo: missing distfile ofl06trial.tgz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
Pry is a powerful alternative to the standard IRB shell for Ruby. It
is written from scratch to provide a number of advanced features.
Pry also aims to be more than an IRB replacement; it is an attempt to
bring REPL driven programming to the Ruby language. It is currently
not as powerful as tools like SLIME for lisp, but that is the general
direction Pry is heading.
Pry is also fairly flexible and allows significant user customization
is trivial to set it to read from any object that has a readline
method and write to any object that has a puts method - many other
aspects of Pry are also configurable making it a good choice for
implementing custom shells.