Sha256: 5527afdd81cbacf2d18030714ad596b053e21525cb514fe8ba3d127c58b414e6

Contents?: true

Size: 1.86 KB

Versions: 30

Compression:

Stored size: 1.86 KB

Contents

class Pry
  module ExtendedCommands

    UserCommandAPI = Pry::CommandSet.new do

      command "define-command", "Define a command in the session, use same syntax as `command` method for command API" do |arg|
        if arg.nil?
          raise CommandError, "Provide an arg!"
        end

        prime_string = "command #{arg_string}\n"
        command_string = _pry_.r(target, prime_string)

        eval_string.replace <<-HERE
          _pry_.commands.instance_eval do
            #{command_string}
          end
        HERE

      end

      command "reload-command", "Reload a command. reload-command CMD_NAME CMD_SET" do |command_name, set_name|
        if command_name.nil?
          raise CommandError, "Must provide command name"
        end

        if set_name.nil?
          raise CommandError, "Must provide command set name"
        end

        cmd = Pry.config.commands.commands[command_name]
        file_name = cmd.block.source_location.first

        silence_warnings do
          load file_name
        end
        Pry.config.commands.import target.eval(set_name)
        _pry_.commands.import target.eval(set_name)
        set_file_and_dir_locals(file_name)
      end

      command "edit-command", "Edit a command. edit-command CMD_NAME CMD_SET" do |command_name, set_name|
        if command_name.nil?
          raise CommandError, "Must provide command name"
        end

        if set_name.nil?
          raise CommandError, "Must provide command set name"
        end

        cmd = Pry.config.commands.commands[command_name]
        file_name = cmd.block.source_location.first

        invoke_editor(*cmd.block.source_location)
        silence_warnings do
          load file_name
        end
        Pry.config.commands.import target.eval(set_name)
        _pry_.commands.import target.eval(set_name)
        set_file_and_dir_locals(file_name)
      end

    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
pry-0.9.8pre3 lib/pry/extended_commands/user_command_api.rb
pry-0.9.8pre3-i386-mswin32 lib/pry/extended_commands/user_command_api.rb
pry-0.9.8pre3-i386-mingw32 lib/pry/extended_commands/user_command_api.rb
pry-0.9.8pre3-java lib/pry/extended_commands/user_command_api.rb
pry-0.9.8pre2 lib/pry/extended_commands/user_command_api.rb
pry-0.9.8pre2-i386-mswin32 lib/pry/extended_commands/user_command_api.rb
pry-0.9.8pre2-i386-mingw32 lib/pry/extended_commands/user_command_api.rb
pry-0.9.8pre2-java lib/pry/extended_commands/user_command_api.rb
pry-0.9.8.0pre1-i386-mswin32 lib/pry/extended_commands/user_command_api.rb
pry-0.9.8.0pre1-i386-mingw32 lib/pry/extended_commands/user_command_api.rb
pry-0.9.7.4 lib/pry/extended_commands/user_command_api.rb
pry-0.9.7.4-i386-mswin32 lib/pry/extended_commands/user_command_api.rb
pry-0.9.7.4-i386-mingw32 lib/pry/extended_commands/user_command_api.rb
pry-0.9.7.4-java lib/pry/extended_commands/user_command_api.rb
pry-0.9.7.3 lib/pry/extended_commands/user_command_api.rb
pry-0.9.7.3-i386-mswin32 lib/pry/extended_commands/user_command_api.rb
pry-0.9.7.3-i386-mingw32 lib/pry/extended_commands/user_command_api.rb
pry-0.9.7.3-java lib/pry/extended_commands/user_command_api.rb
pry-0.9.7.2 lib/pry/extended_commands/user_command_api.rb
pry-0.9.7.2-i386-mswin32 lib/pry/extended_commands/user_command_api.rb