Skip to content

Instantly share code, notes, and snippets.

@inoperable
Forked from justin808/.pryrc
Created November 21, 2018 10:04
Show Gist options
  • Save inoperable/6ada144f0d18703b70e015d7c40b4674 to your computer and use it in GitHub Desktop.
Save inoperable/6ada144f0d18703b70e015d7c40b4674 to your computer and use it in GitHub Desktop.

Revisions

  1. @justin808 justin808 revised this gist May 15, 2017. 1 changed file with 68 additions and 21 deletions.
    89 changes: 68 additions & 21 deletions .pryrc
    Original file line number Diff line number Diff line change
    @@ -1,18 +1,28 @@
    # See https://github.com/burke/zeus/issues/466#issuecomment-60242431
    # Using these pry gems
    # gem "pry"
    # gem "pry-rails"
    # gem "pry-byebug"
    # gem "pry-stack_explorer"
    # gem "pry-doc"
    # gem "pry-state"
    # gem "pry-toys"
    # gem "pry-rescue"

    # Fix for Zeus: see https://github.com/burke/zeus/issues/466#issuecomment-60242431
    if defined?(::Rails) && Rails.env
    if Rails::VERSION::MAJOR == 3
    verbose, $VERBOSE = $VERBOSE, nil
    if defined?(Rails::Console)
    Rails::Console::IRB = ::Pry unless Rails::Console::IRB == ::Pry
    end
    end
    $VERBOSE = verbose

    unless defined? ::Pry::ExtendCommandBundle
    ::Pry::ExtendCommandBundle = Module.new
    end
    end

    if defined?(Rails) && Rails::VERSION::MAJOR == 4
    if defined?(Rails) && Rails::VERSION::MAJOR == 4 && Rails.application
    unless Rails.application.config.console == ::Pry
    Rails.application.config.console = ::Pry
    end
    @@ -29,6 +39,8 @@ if defined?(::Rails) && Rails.env
    end
    end

    # #### END FIX FOR ZEUS

    Pry::Commands.block_command "noconflict", "Rename step to sstep and next to nnext" do
    Pry::Commands.rename_command("nnext", "next")
    Pry::Commands.rename_command("bbreak", "break")
    @@ -52,7 +64,7 @@ end
    ## Benchmarking
    # Inspired by <http://stackoverflow.com/questions/123494/whats-your-favourite-irb-trick/123834#123834>.

    def time(repetitions = 100, &block)
    def do_time(repetitions = 100, &block)
    require 'benchmark'
    Benchmark.bm{|b| b.report{repetitions.times(&block)}}
    end
    @@ -67,18 +79,49 @@ Pry.config.commands.alias_command "hG", "hist -G", desc: "Commands matching expr
    Pry.config.commands.alias_command "hr", "hist -r", desc: "hist -r <command number> to run a command"

    if defined?(PryByebug)
    Pry.commands.alias_command 'ss', 'step'
    Pry.commands.alias_command 'nn', 'next'
    Pry.commands.alias_command 'cc', 'continue'
    Pry.commands.alias_command 'fin', 'finish'
    Pry.commands.alias_command 'uu', 'up'
    Pry.commands.alias_command 'dd', 'down'
    Pry.commands.alias_command 'ff', 'frame'
    Pry.commands.alias_command 'bb', 'break'
    Pry.commands.alias_command 'ww', 'whereami'
    def pry_debug
    Pry.commands.alias_command 't', 'show-stack'
    Pry.commands.alias_command 's', 'step'
    Pry.commands.alias_command 'n', 'next'
    Pry.commands.alias_command 'c', 'continue'
    Pry.commands.alias_command 'f', 'finish'
    Pry.commands.alias_command 'u', 'up'
    Pry.commands.alias_command 'd', 'down'
    Pry.commands.alias_command 'b', 'break'
    Pry.commands.alias_command 'w', 'whereami'

    puts "Debugging Shortcuts"
    puts 'w : whereami'
    puts 's : step'
    puts 'n : next'
    puts 'c : continue'
    puts 'f : finish'
    puts 'Stack movement'
    puts 't : show-stack'
    puts 'ff : frame'
    puts 'u : up'
    puts 'd : down'
    puts 'b : break'
    ""
    end

    # Longer shortcuts
    Pry.commands.alias_command 'ff', 'frame'

    Pry.commands.alias_command 'sss', 'show-stack'
    Pry.commands.alias_command 'ss', 'step'
    Pry.commands.alias_command 'nn', 'next'
    Pry.commands.alias_command 'cc', 'continue'
    Pry.commands.alias_command 'fin', 'finish'
    Pry.commands.alias_command 'uu', 'up'
    Pry.commands.alias_command 'dd', 'down'
    Pry.commands.alias_command 'bb', 'break'
    Pry.commands.alias_command 'ww', 'whereami'
    end


    if defined?(::Rails) && Rails.env && Rails.env.test? && ENV["PRY_LONG"].blank?
    pry_debug
    end

    begin
    require 'awesome_print'
    @@ -102,9 +145,9 @@ my_hook = Pry::Hooks.new.add_hook(:before_session, :add_dirs_to_load_path) do
    end

    # Hit Enter to repeat last command
    # Pry::Commands.command /^$/, "repeat last command" do
    # _pry_.run_command Pry.history.to_a.last
    # end
    Pry::Commands.command /^$/, "repeat last command" do
    _pry_.run_command Pry.history.to_a.last
    end

    my_hook.exec_hook(:before_session)

    @@ -118,7 +161,7 @@ def more_help
    puts "hG : hist -G Commands matching expression ever used"
    puts "hr : hist -r hist -r <command number> to run a command"
    puts

    puts "Samples variables"
    puts "a_array : [1, 2, 3, 4, 5, 6]"
    puts "a_hash : { hello: \"world\", free: \"of charge\" }"
    @@ -142,9 +185,13 @@ def more_help
    puts 'fin : finish'
    puts 'uu : up'
    puts 'dd : down'
    puts 'ff : frame'
    puts 'bb : break'
    puts 'ww : whereami'
    puts 'ww : whereami'
    puts 'ff : frame'
    puts 'sss : show-stack'
    puts '$ : show whole method of context'
    puts
    puts "Run 'pry_debug' to display shorter debug shortcuts"
    ""
    end
    puts "Run 'more_help' to see tips"
    puts "Run 'more_help' to see tips"
  2. @justin808 justin808 revised this gist Oct 17, 2015. 1 changed file with 0 additions and 2 deletions.
    2 changes: 0 additions & 2 deletions .pryrc
    Original file line number Diff line number Diff line change
    @@ -58,8 +58,6 @@ def time(repetitions = 100, &block)
    end


    # Pry.config.pager = true
    # Pry.config.editor = "emacs"
    Pry.config.color = true
    Pry.config.prompt = Pry::NAV_PROMPT

  3. @justin808 justin808 revised this gist Oct 3, 2015. No changes.
  4. @justin808 justin808 revised this gist Oct 3, 2015. 1 changed file with 108 additions and 10 deletions.
    118 changes: 108 additions & 10 deletions .pryrc
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,44 @@
    # See https://github.com/burke/zeus/issues/466#issuecomment-60242431
    if defined?(::Rails) && Rails.env
    if Rails::VERSION::MAJOR == 3
    verbose, $VERBOSE = $VERBOSE, nil
    if defined?(Rails::Console)
    Rails::Console::IRB = ::Pry unless Rails::Console::IRB == ::Pry
    end
    $VERBOSE = verbose

    unless defined? ::Pry::ExtendCommandBundle
    ::Pry::ExtendCommandBundle = Module.new
    end
    end

    if defined?(Rails) && Rails::VERSION::MAJOR == 4
    unless Rails.application.config.console == ::Pry
    Rails.application.config.console = ::Pry
    end
    end

    if ((Rails::VERSION::MAJOR == 3 && Rails::VERSION::MINOR >= 2) ||
    Rails::VERSION::MAJOR == 4)
    unless defined? ::Rails::ConsoleMethods
    require 'rails/console/app'
    require 'rails/console/helpers'

    TOPLEVEL_BINDING.eval('self').extend ::Rails::ConsoleMethods
    end
    end
    end

    Pry::Commands.block_command "noconflict", "Rename step to sstep and next to nnext" do
    Pry::Commands.rename_command("nnext", "next")
    Pry::Commands.rename_command("bbreak", "break")
    end

    Pry::Commands.block_command "unnoconflict", "Revert to normal next and break" do
    Pry::Commands.rename_command("next", "nnext")
    Pry::Commands.rename_command("break", "bbreak")
    end

    ## Useful Collections

    def a_array
    @@ -8,6 +49,15 @@ def a_hash
    {hello: "world", free: "of charge"}
    end

    ## Benchmarking
    # Inspired by <http://stackoverflow.com/questions/123494/whats-your-favourite-irb-trick/123834#123834>.

    def time(repetitions = 100, &block)
    require 'benchmark'
    Benchmark.bm{|b| b.report{repetitions.times(&block)}}
    end


    # Pry.config.pager = true
    # Pry.config.editor = "emacs"
    Pry.config.color = true
    @@ -18,6 +68,20 @@ Pry.config.commands.alias_command "hg", "hist -T 20 -G", desc: "Up to 20 command
    Pry.config.commands.alias_command "hG", "hist -G", desc: "Commands matching expression ever used"
    Pry.config.commands.alias_command "hr", "hist -r", desc: "hist -r <command number> to run a command"

    if defined?(PryByebug)
    Pry.commands.alias_command 'ss', 'step'
    Pry.commands.alias_command 'nn', 'next'
    Pry.commands.alias_command 'cc', 'continue'
    Pry.commands.alias_command 'fin', 'finish'
    Pry.commands.alias_command 'uu', 'up'
    Pry.commands.alias_command 'dd', 'down'
    Pry.commands.alias_command 'ff', 'frame'
    Pry.commands.alias_command 'bb', 'break'
    Pry.commands.alias_command 'ww', 'whereami'
    end



    begin
    require 'awesome_print'
    # Pry.config.print = proc { |output, value| output.puts value.ai }
    @@ -30,7 +94,7 @@ my_hook = Pry::Hooks.new.add_hook(:before_session, :add_dirs_to_load_path) do
    # adds the directories /spec and /test directories to the path if they exist and not already included
    dir = `pwd`.chomp
    dirs_added = []
    %w(spec test).map{ |d| "#{dir}/#{d}" }.each do |p|
    %w(spec test presenters lib).map{ |d| "#{dir}/#{d}" }.each do |p|
    if File.exist?(p) && !$:.include?(p)
    $: << p
    dirs_added << p
    @@ -39,16 +103,50 @@ my_hook = Pry::Hooks.new.add_hook(:before_session, :add_dirs_to_load_path) do
    puts "Added #{ dirs_added.join(", ") } to load path in ~/.pryrc." if dirs_added.present?
    end

    # Hit Enter to repeat last command
    # Pry::Commands.command /^$/, "repeat last command" do
    # _pry_.run_command Pry.history.to_a.last
    # end

    my_hook.exec_hook(:before_session)


    puts "Loaded ~/.pryrc"
    puts
    puts "Helpful shortcuts:"
    puts "h : hist -T 20 Last 20 commands"
    puts "hg : hist -T 20 -G Up to 20 commands matching expression"
    puts "hG : hist -G Commands matching expression ever used"
    puts "hr : hist -r hist -r <command number> to run a command"
    puts
    puts "Samples variables"
    puts "a_array : [1, 2, 3, 4, 5, 6]"
    puts "a_hash : { hello: \"world\", free: \"of charge\" }"
    def more_help
    puts "Helpful shortcuts:"
    puts "hh : hist -T 20 Last 20 commands"
    puts "hg : hist -T 20 -G Up to 20 commands matching expression"
    puts "hG : hist -G Commands matching expression ever used"
    puts "hr : hist -r hist -r <command number> to run a command"
    puts

    puts "Samples variables"
    puts "a_array : [1, 2, 3, 4, 5, 6]"
    puts "a_hash : { hello: \"world\", free: \"of charge\" }"
    puts
    puts "helper : Access Rails helpers"
    puts "app : Access url_helpers"
    puts
    puts "require \"rails_helper\" : To include Factory Girl Syntax"
    puts "include FactoryGirl::Syntax::Methods : To include Factory Girl Syntax"
    puts
    puts "or if you defined one..."
    puts "require \"pry_helper\""
    puts
    puts "Sidekiq::Queue.new.clear : To clear sidekiq"
    puts "Sidekiq.redis { |r| puts r.flushall } : Another clear of sidekiq"
    puts
    puts "Debugging Shortcuts"
    puts 'ss : step'
    puts 'nn : next'
    puts 'cc : continue'
    puts 'fin : finish'
    puts 'uu : up'
    puts 'dd : down'
    puts 'ff : frame'
    puts 'bb : break'
    puts 'ww : whereami'
    ""
    end
    puts "Run 'more_help' to see tips"
  5. @justin808 justin808 revised this gist Aug 19, 2014. 1 changed file with 0 additions and 9 deletions.
    9 changes: 0 additions & 9 deletions .pryrc
    Original file line number Diff line number Diff line change
    @@ -8,15 +8,6 @@ def a_hash
    {hello: "world", free: "of charge"}
    end

    ## Benchmarking
    # Inspired by <http://stackoverflow.com/questions/123494/whats-your-favourite-irb-trick/123834#123834>.

    def time(repetitions = 100, &block)
    require 'benchmark'
    Benchmark.bm{|b| b.report{repetitions.times(&block)}}
    end


    # Pry.config.pager = true
    # Pry.config.editor = "emacs"
    Pry.config.color = true
  6. @justin808 justin808 revised this gist Aug 19, 2014. 1 changed file with 27 additions and 7 deletions.
    34 changes: 27 additions & 7 deletions .pryrc
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,5 @@
    ## Useful Collections

    def a_array
    (1..6).to_a
    end
    @@ -7,6 +8,17 @@ def a_hash
    {hello: "world", free: "of charge"}
    end

    ## Benchmarking
    # Inspired by <http://stackoverflow.com/questions/123494/whats-your-favourite-irb-trick/123834#123834>.

    def time(repetitions = 100, &block)
    require 'benchmark'
    Benchmark.bm{|b| b.report{repetitions.times(&block)}}
    end


    # Pry.config.pager = true
    # Pry.config.editor = "emacs"
    Pry.config.color = true
    Pry.config.prompt = Pry::NAV_PROMPT

    @@ -24,20 +36,28 @@ rescue LoadError => err
    end

    my_hook = Pry::Hooks.new.add_hook(:before_session, :add_dirs_to_load_path) do
    # adds the directories /lib and /spec and /test directories to the path if they exist
    puts "Added lib spec test dirs to load path"
    # adds the directories /spec and /test directories to the path if they exist and not already included
    dir = `pwd`.chomp
    %w(lib spec test).map{ |d| "#{dir}/#{d}" }.each { |p| $: << p unless !File.exist?(p) || $:.include?(p) }
    end
    dirs_added = []
    %w(spec test).map{ |d| "#{dir}/#{d}" }.each do |p|
    if File.exist?(p) && !$:.include?(p)
    $: << p
    dirs_added << p
    end
    end
    puts "Added #{ dirs_added.join(", ") } to load path in ~/.pryrc." if dirs_added.present?
    end

    my_hook.exec_hook(:before_session)

    puts "Loaded ~/.pryrc"
    puts "Loaded ~/.pryrc"
    puts
    puts "Helpful shortcuts:"
    puts "h : hist -T 20 Last 20 commands"
    puts "hg : hist -T 20 -G Up to 20 commands matching expression"
    puts "hG : hist -G Commands matching expression ever used"
    puts "hr : hist -r hist -r <command number> to run a command"
    puts
    puts "Samples variables"
    puts "a_array: [1, 2, 3, 4, 5, 6]"
    puts "a_hash: { hello: \"world\", free: \"of charge\" }"
    puts "a_array : [1, 2, 3, 4, 5, 6]"
    puts "a_hash : { hello: \"world\", free: \"of charge\" }"
  7. @justin808 justin808 created this gist Aug 18, 2014.
    43 changes: 43 additions & 0 deletions .pryrc
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,43 @@
    ## Useful Collections
    def a_array
    (1..6).to_a
    end

    def a_hash
    {hello: "world", free: "of charge"}
    end

    Pry.config.color = true
    Pry.config.prompt = Pry::NAV_PROMPT

    Pry.config.commands.alias_command "h", "hist -T 20", desc: "Last 20 commands"
    Pry.config.commands.alias_command "hg", "hist -T 20 -G", desc: "Up to 20 commands matching expression"
    Pry.config.commands.alias_command "hG", "hist -G", desc: "Commands matching expression ever used"
    Pry.config.commands.alias_command "hr", "hist -r", desc: "hist -r <command number> to run a command"

    begin
    require 'awesome_print'
    # Pry.config.print = proc { |output, value| output.puts value.ai }
    AwesomePrint.pry!
    rescue LoadError => err
    puts "no awesome_print :("
    end

    my_hook = Pry::Hooks.new.add_hook(:before_session, :add_dirs_to_load_path) do
    # adds the directories /lib and /spec and /test directories to the path if they exist
    puts "Added lib spec test dirs to load path"
    dir = `pwd`.chomp
    %w(lib spec test).map{ |d| "#{dir}/#{d}" }.each { |p| $: << p unless !File.exist?(p) || $:.include?(p) }
    end

    my_hook.exec_hook(:before_session)

    puts "Loaded ~/.pryrc"
    puts "Helpful shortcuts:"
    puts "h : hist -T 20 Last 20 commands"
    puts "hg : hist -T 20 -G Up to 20 commands matching expression"
    puts "hG : hist -G Commands matching expression ever used"
    puts "hr : hist -r hist -r <command number> to run a command"
    puts "Samples variables"
    puts "a_array: [1, 2, 3, 4, 5, 6]"
    puts "a_hash: { hello: \"world\", free: \"of charge\" }"