Sha256: d0fa2f02e774013914a68e44951f1f655ea37ffdf39bb1c00e0d9ecd7a106022

Contents?: true

Size: 1.59 KB

Versions: 48

Compression:

Stored size: 1.59 KB

Contents

class Pry
  module DefaultCommands
    Cd = Pry::CommandSet.new do
      create_command "cd" do
        group "Context"
        description "Move into a new context (object or scope)."

        banner <<-BANNER
          Usage: cd [OPTIONS] [--help]

          Move into new context (object or scope). As in unix shells use
          `cd ..` to go back and `cd /` to return to Pry top-level).
          Complex syntax (e.g cd ../@x/y) also supported.

          e.g: `cd @x`
          e.g: `cd ..
          e.g: `cd /`

          https://github.com/pry/pry/wiki/State-navigation#wiki-Changing_scope
        BANNER

        def process
          path   = arg_string.split(/\//)
          stack  = _pry_.binding_stack.dup

          # special case when we only get a single "/", return to root
          stack  = [stack.first] if path.empty?

          path.each do |context|
            begin
              case context.chomp
              when ""
                stack = [stack.first]
              when "::"
                stack.push(TOPLEVEL_BINDING)
              when "."
                next
              when ".."
                unless stack.size == 1
                  stack.pop
                end
              else
                stack.push(Pry.binding_for(stack.last.eval(context)))
              end

            rescue RescuableException => e
              output.puts "Bad object path: #{arg_string.chomp}. Failed trying to resolve: #{context}"
              output.puts e.inspect
              return
            end
          end

          _pry_.binding_stack = stack
        end
      end
    end
  end
end

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
pry-0.9.9.6 lib/pry/default_commands/cd.rb
pry-0.9.9.6-i386-mswin32 lib/pry/default_commands/cd.rb
pry-0.9.9.6-i386-mingw32 lib/pry/default_commands/cd.rb
pry-0.9.9.6-java lib/pry/default_commands/cd.rb
pry-0.9.9.6pre2 lib/pry/default_commands/cd.rb
pry-0.9.9.6pre2-i386-mswin32 lib/pry/default_commands/cd.rb
pry-0.9.9.6pre2-i386-mingw32 lib/pry/default_commands/cd.rb
pry-0.9.9.6pre2-java lib/pry/default_commands/cd.rb
pry-0.9.9.6pre1 lib/pry/default_commands/cd.rb
pry-0.9.9.6pre1-i386-mswin32 lib/pry/default_commands/cd.rb
pry-0.9.9.6pre1-i386-mingw32 lib/pry/default_commands/cd.rb
pry-0.9.9.6pre1-java lib/pry/default_commands/cd.rb
pry-0.9.9.5-java lib/pry/default_commands/cd.rb
pry-0.9.9.5 lib/pry/default_commands/cd.rb
pry-0.9.9.5-i386-mingw32 lib/pry/default_commands/cd.rb
pry-0.9.9.5-i386-mswin32 lib/pry/default_commands/cd.rb
pry-0.9.9.4 lib/pry/default_commands/cd.rb
pry-0.9.9.4-i386-mswin32 lib/pry/default_commands/cd.rb
pry-0.9.9.4-i386-mingw32 lib/pry/default_commands/cd.rb
pry-0.9.9.4-java lib/pry/default_commands/cd.rb