Sha256: 89048e89fc82c05d3051af873fa735898a3aceabc13ab48e549e7a39b7b63ef8

Contents?: true

Size: 1.25 KB

Versions: 6

Compression:

Stored size: 1.25 KB

Contents

# frozen_string_literal: true

class Pry
  # N.B. using a regular expression here so that "raise-up 'foo'" does the right thing.
  class Command
    class RaiseUp < Pry::ClassCommand
      match(/raise-up(!?\b.*)/)
      group 'Context'
      description 'Raise an exception out of the current pry instance.'
      command_options listing: 'raise-up'

      banner <<-BANNER
        Raise up, like exit, allows you to quit pry. Instead of returning a value
        however, it raises an exception. If you don't provide the exception to be
        raised, it will use the most recent exception (in pry `_ex_`).

        When called as raise-up! (with an exclamation mark), this command raises the
        exception through any nested prys you have created by "cd"ing into objects.

        raise-up "get-me-out-of-here"

        # This is equivalent to the command above.
        raise "get-me-out-of-here"
        raise-up
      BANNER

      def process
        return _pry.pager.page help if captures[0] =~ /(-h|--help)\b/

        # Handle 'raise-up', 'raise-up "foo"', 'raise-up RuntimeError, 'farble'
        # in a rubyesque manner
        target.eval("pry_instance.raise_up#{captures[0]}")
      end
    end

    Pry::Commands.add_command(Pry::Command::RaiseUp)
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
pry-0.15.2 lib/pry/commands/raise_up.rb
pry-0.15.2-java lib/pry/commands/raise_up.rb
pry-0.15.1 lib/pry/commands/raise_up.rb
pry-0.15.1-java lib/pry/commands/raise_up.rb
pry-0.15.0 lib/pry/commands/raise_up.rb
pry-0.15.0-java lib/pry/commands/raise_up.rb