-
Notifications
You must be signed in to change notification settings - Fork 604
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
prompt: make it possible to set name dynamically #1833
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fixes #1738 (Possible to make prompt_name dynamic?) The user-facing API is the following: ```rb Pry.config.prompt_name = Pry.lazy { rand(100) } [1] 80(main)> [2] 87(main)> [3] 30(main)> ```
kyrylo
added a commit
that referenced
this pull request
Oct 28, 2018
kyrylo
added a commit
that referenced
this pull request
Nov 1, 2018
kyrylo
added a commit
that referenced
this pull request
Nov 3, 2018
kyrylo
added a commit
that referenced
this pull request
Nov 3, 2018
kyrylo
added a commit
that referenced
this pull request
Nov 4, 2018
netbsd-srcmastr
pushed a commit
to NetBSD/pkgsrc
that referenced
this pull request
Dec 17, 2018
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](pry/pry#1855)) * Fixed `less` pager not working when it's available ([#1861](pry/pry#1861)) ### [v0.12.0][v0.12.0] (November 5, 2018) #### Major changes * Dropped support for Rubinius ([#1785](pry/pry#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](pry/pry#1723)) * Added a new command, `gem-stat`, that prints gem statistics such as gem dependencies and downloads ([#1707](pry/pry#1707)) * Added support for nested exceptions for the `wtf` command ([#1791](pry/pry#1791)) * Added support for dynamic prompt names ([#1833](pry/pry#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](pry/pry#1609), [#1844](pry/pry#1844), ([#1848](pry/pry#1848))) * Removed the `simple-prompt`. Use `change-prompt simple` instead. The `list-prompt` command was removed and embedded as `change-prompt --list` ([#1849](pry/pry#1849)) #### API changes * The following methods started accepting the new optional `config` parameter ([#1809](pry/pry#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](pry/pry#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](pry/pry#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](pry/pry#1846)) #### Breaking changes * Deleted the `Pry::Helpers::Text.bright_default` alias for `Pry::Helpers::Text.bold` ([#1795](pry/pry#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](pry/pry#1818)). * It's been renamed to `Pry::Ring` ([#1817](pry/pry#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](pry/pry#1838)) #### Deprecations * Deprecated `_pry_.input_array` & `_pry_.output_array` in favour of `_pry_.input_ring` & `_pry_.output_ring` respectively ([#1814](pry/pry#1814)) * Deprecated `Pry::Command#text`. Please use `#black`, `#white`, etc. directly instead (as you would with helper functions from `BaseHelpers` and `CommandHelpers`) ([#1701](pry/pry#1701)) * Deprecated `_pry_.input_array` & `_pry_.output_array` in favour of `_pry_.input_ring` and `_pry_.output_ring` respectively ([#1817](pry/pry#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](pry/pry#1838), ([#1845](pry/pry#1845))) * Deprecated `Pry::Prompt::MAP`. You should use `Pry::Prompt.all` instead to access the same map ([#1846](pry/pry#1846)) #### Bug fixes * Fixed a bug where `cd Hash.new` reported `self` as an instance of Pry::Config in the prompt ([#1725](pry/pry#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](pry/pry#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](pry/pry#1762), [#1774](pry/pry#1762)) * Fixed `NoMethodError` on code objects that have a comment but no source when invoking `show-source` ([#1779](pry/pry#1779)) * Fixed `negative argument (ArgumentError)` upon pasting code with tabs, which used to confuse automatic indentation ([#1771](pry/pry#1771)) * Fixed Pry not being able to load history on Ruby 2.4.4+ when it contains the null character ([#1789](pry/pry#1789)) * Fixed Pry raising errors on `cd`'ing into some objects that redefine `method_missing` and `respond_to?` ([#1811](pry/pry#1811)) * Fixed bug when indentation leaves parts of input after pressing enter when Readline is enabled with mode indicators for vi mode ([#1813](pry/pry#1813), [#1820](pry/pry#1820), [#1825](pry/pry#1825)) * Fixed `edit` not writing to history ([#1749](pry/pry#1749)) #### Other changes * Deprecated the `Data` constant to match Ruby 2.5 in the `ls` command ([#1731](pry/pry#1731))
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1738 (Possible to make prompt_name dynamic?)
The user-facing API is the following: