All Versions
71
Latest Version
Avg Release Cycle
126 days
Latest Release
199 days ago

Changelog History
Page 1

  • v0.14.1 Changes

    April 12, 2021

    🐛 Bug fixes

    • 🛠 Fixed bad coloring of some RDoc-style docs (#2182)
    • 🛠 Fixed broken --plugins option. It shows a warning now (#2180)
    • 🛠 Fixed bad output on printing non-visible characters with color codes (#2154)
    • 🛠 Fixed bad output when colors are disabled and a string with color codes is printed (#2158)
  • v0.14.0 Changes

    February 08, 2021

    🔋 Features

    • Made ? an alias to show-source -d (#2133)
    • ➕ Added support for Ruby 3.0

    💥 Breaking changes

    • ✂ Deleted support for plugin autoloading (#2119). In order to load a Pry plugin you must require it from your pryrc or add it to your Gemfile.
      # ~/.pryrc
      require 'pryrc'
    
  • v0.13.1 Changes

    April 12, 2020

    🐛 Bug fixes

    • 🛠 Fixed bug where on invalid input only the last syntax error is displayed (instead of all of them) (#2117)
    • 🛠 Fixed Pry::Config raising NoMethodError on undefined option instead of returning nil (usually invoked via Pry.config.foo_option calls) (#2126)
    • 🛠 Fixed help command not displaying regexp aliases properly (#2120)
    • 🛠 Fixed pry-backtrace not working (#2122)
  • v0.13.0 Changes

    March 21, 2020

    🔋 Features

    • ➕ Added metadata to the gem (such as changelog URI, source code URI & bug tracker URI), so it shows on https://rubygems.org/gems/pry (#1869)
    • ➕ Added ability to forward ARGV to a Pry session via -- (or -) when launching Pry from shell (#1902)
    • ➕ Added Pry::Config::LazyValue & Pry::Config::MemoizedValue, which allow storing callable procs in the config (#2024)
    • ➕ Added the rc_file config option that tells Pry the path to pryrc (#2027)
    • ➕ Added the --code flag to the wtf command, which shows code for each backtrace frame (#2037)
    • ➕ Added the ability to paste method call chains with leading dots (#2060)

    API changes

    • Pry::Prompt is a class now and it can be instantiated to create new prompts on the fly that are not registered with Pry::Prompt#add. Learn more about its API in the docs (#1877)

    🗄 Deprecations

    • 🗄 Deprecated Pry.config.exception_whitelist in favor of Pry.config.unrescued_exceptions (#1874)
    • 🗄 Deprecated Pry.config.prompt = Pry::Prompt[:simple][:value] in favor of Pry.config.prompt = Pry::Prompt[:simple] when setting Pry prompt via pryrc. Pry::Prompt[:simple] would return an instance of Pry::Prompt instead of Hash (#1877)
    • 🗄 Deprecated setting prompt via an array of two procs: (#1877)
      # Deprecated, emits a warning.
      Pry.config.prompt = [proc {}, proc {}]
    

    This will be removed in the next release.

    • 🗄 Deprecated the show-doc command. The show-source -d is the new recommended way of reading docs (#1934)
    • Deprecated Pry::Command#_pry_. Use Pry::Command#pry_instance instead (#1989)

    💥 Breaking changes

    • ✂ Deleted deprecated Pry::Platform (#1863)
    • ✂ Deleted deprecated Pry#{input/output}_array (#1884)
    • ✂ Deleted deprecated Pry::Prompt::MAP (#1866)
    • ✂ Deleted deprecated methods of Pry::Helpers::BaseHelpers such as mac_osx?, linux?, windows?, windows_ansi?, jruby?, jruby_19?, mri?, mri_19?, mri_2? (#1867)
    • ✂ Deleted deprecated Pry::Command#text (#1865)
    • Deleted deprecated Pry::Method#all_from_common (#1868)
    • ✂ Deleted install-command (#1979)
    • Deleted Pry::Helpers::BaseHelpers#command_dependencies_met? (#1979)
    • ✂ Deleted commands: gem-cd, gem-install, gem-list, gem-open, gem-readme, gem-search, gem-stats (#1981)
    • ✂ Deleted deprecated commands: edit-method and show-command (#2001)
    • ✂ Deleted Pry::Command#disabled_commands (#2001)
    • ✂ Deleted Pry::BlockCommand#opts (use #context instead) (#2003)
    • ✂ Deleted Pry.lazy (use Pry::Config::LazyValue instead) (#2024)

    🐛 Bug fixes

    • 🛠 Fixed bug where using Pry.config.prompt_name can return a Pry::Config::Lazy instead of expected instance of String (#1890)
    • 🛠 Fixed LoadError being raised when using auto completions and Bundler (#1896)
    • 🛠 Fixed bug where Pry.input_ring doesn't append duplicate elements (#1898)
    • 🛠 Fixed Ruby 2.6 warning about Binding#source_location (#1904)
    • 🛠 Fixed wrong winsize when custom output is passed to Pry (#2045)
    • Fixed XDG_CONFIG_HOME & XDG_DATA_HOME precedence. When these env variables are set, Pry no longer uses traditional files like ~/.pryrc & ~/.pry_history. Instead, the env variable paths are loaded first (#2056)
    • 🛠 Fixed the $SAFE will become a normal global variable in Ruby 3.0 warning on Ruby 2.7 (#2107)
    • 🛠 Fixed bug when whereami -c cannot show beginning of the class, which is on the same line as another expression (#2098)
    • 🛠 Fixed bug when Object#owner is defined, which results into somewhat broken method introspection (#2113)
    • 🛠 Fixed bug when indentation leaves parts of input after pressing enter when Readline is enabled with mode indicators for vi mode. This was supposed to be fixed in v0.12.2 but it regressed (#2114)
  • v0.12.2 Changes

    November 12, 2018

    🐛 Bug fixes

    • ⏪ Restore removed deprecations, which were removed by accident due to a bad rebase.
  • v0.12.1 Changes

    November 11, 2018

    🐛 Bug fixes

    • Stopped creating a new hash each time Pry::Prompt#[] is invoked (#1855)
    • 🛠 Fixed less pager not working when it's available (#1861)
  • v0.12.0 Changes

    November 04, 2018

    Major changes

    • ⬇️ Dropped support for Rubinius (#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)
    • ➕ Added a new command, gem-stat, that prints gem statistics such as gem dependencies and downloads (#1707)
    • ➕ Added support for nested exceptions for the wtf command (#1791)
    • ➕ Added support for dynamic prompt names (#1833)
      # 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, #1844, (#1848))
    • ✂ Removed the simple-prompt. Use change-prompt simple instead. The list-prompt command was removed and embedded as change-prompt --list (#1849)

    API changes

    • The following methods started accepting the new optional config parameter (#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)
    • ➕ 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::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)

    💥 Breaking changes

    • ✂ Deleted the Pry::Helpers::Text.bright_default alias for Pry::Helpers::Text.bold (#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).
      • It's been renamed to Pry::Ring (#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)

    🗄 Deprecations

    • Deprecated _pry_.input_array & _pry_.output_array in favour of _pry_.input_ring & _pry_.output_ring respectively (#1814)
    • 🗄 Deprecated Pry::Command#text. Please use #black, #white, etc. directly instead (as you would with helper functions from BaseHelpers and CommandHelpers) (#1701)
    • Deprecated _pry_.input_array & _pry_.output_array in favour of _pry_.input_ring and _pry_.output_ring respectively (#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, (#1845))
    • 🗄 Deprecated Pry::Prompt::MAP. You should use Pry::Prompt.all instead to access the same map (#1846)

    🐛 Bug fixes

    • 🛠 Fixed a bug where cd Hash.new reported self as an instance of Pry::Config in the prompt (#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)
    • 🛠 Fixed possible double loading of Pry plugins' cli.rb on Ruby (>= 2.4) due to the realpath changes while invoking require (#1762, #1774)
    • 🛠 Fixed NoMethodError on code objects that have a comment but no source when invoking show-source (#1779)
    • 🛠 Fixed negative argument (ArgumentError) upon pasting code with tabs, which used to confuse automatic indentation (#1771)
    • 🛠 Fixed Pry not being able to load history on Ruby 2.4.4+ when it contains the null character (#1789)
    • 🛠 Fixed Pry raising errors on cd'ing into some objects that redefine method_missing and respond_to? (#1811)
    • 🛠 Fixed bug when indentation leaves parts of input after pressing enter when Readline is enabled with mode indicators for vi mode (#1813, #1820, #1825)
    • 🛠 Fixed edit not writing to history (#1749)

    Other changes

    • 🗄 Deprecated the Data constant to match Ruby 2.5 in the ls command (#1731)
  • v0.11.3 Changes

    November 14, 2017

    🔋 Features

    • ➕ Add Pry::Testable, an improved modular replacement for PryTestHelpers. breaking change.

    👀 See pull request #1679.

    • ➕ Add a new category module: "Pry::Platform". Loosely related to #1668 below.

    👀 See pull request #1670

    • ➕ Add mac_osx? and linux? utility functions to Pry::Helpers::BaseHelpers.

    👀 See pull request #1668.

    • ➕ Add utility functions for drawing colorised text on a colorised background.

    👀 See pull request #1673.

    🐛 Bug fixes

    • Fix a case of infinite recursion in Pry::Method::WeirdMethodLocator#find_method_in_superclass that users of the Hanami web framework experienced and reported since 2015.

    👀 See pull request #1689.

    • 🛠 Fix a bug where Method objects were not returned for setters inherited from a default (Pry::Config::Default). Eg, this is no longer an error:

      pry(main)> d = Pry::Config.from_hash({}, Pry::Config::Default.new) pry(main)> d.method(:exception_whitelist=) # Error

    👀 See pull request #1688.

    • Do not capture unused Proc objects in Text helper methods no_color and no_paging, for performance reasons. Improve the documentation of both methods.

    👀 See pull request #1691.

    • 🛠 Fix String#pp output color.

    👀 See pull request #1674.

  • v0.11.2

    October 18, 2017
  • v0.11.1

    September 26, 2017