Last active
          September 18, 2024 04:59 
        
      - 
      
- 
        Save devonzuegel/c6e69d1d9981fc740a46 to your computer and use it in GitHub Desktop. 
Revisions
- 
        devonzuegel revised this gist Jul 27, 2015 . No changes.There are no files selected for viewing
- 
        devonzuegel revised this gist Jul 24, 2015 . 1 changed file with 9 additions and 1 deletion.There are no files selected for viewingThis file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -43,7 +43,15 @@ begin require 'awesome_print' # The following line enables awesome_print for all pry output, # and it also enables paging Pry.config.print = proc { |output, value| formatted = value.ai value.ai.split("\n").each_with_index do |v, i| prefix = (i == 0) ? "=>" : '. ' output.puts "#{BLACK}#{prefix}#{WHITE} #{v}" end # output.puts formatted # Pry::Helpers::BaseHelpers.stagger_output("#{BLACK}=>#{WHITE} #{value.ai}", output) } # If you want awesome_print without automatic pagination, use the line below # Pry.config.print = proc { |output, value| output.puts value.ai } 
- 
        devonzuegel created this gist Jul 24, 2015 .There are no files selected for viewingThis file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,128 @@ # === EDITOR === Pry.editor = 'vi' require 'awesome_print' # == Pry-Nav - Using pry as a debugger == Pry.commands.alias_command 'c', 'continue' rescue nil Pry.commands.alias_command 's', 'step' rescue nil Pry.commands.alias_command 'n', 'next' rescue nil # === CUSTOM PROMPT === # This prompt shows the ruby version (useful for RVM) # Pry.prompt = [proc { |obj, nest_level, _| "#{RUBY_VERSION} (#{obj}):#{nest_level} > " }, proc { |obj, nest_level, _| "#{RUBY_VERSION} (#{obj}):#{nest_level} * " }] BLACK = "\001\e[0;30m\002" WHITE = "\001\e[0m\002" Pry.prompt = [ proc { |target_self, nest_level, pry| line_num = pry.input_array.size prompt = "#{line_num} " "#{BLACK}#{prompt}#{WHITE}" }, proc { |target_self, nest_level, pry| prompt = ". " "#{BLACK}#{prompt}#{WHITE}" } ] # === Listing config === # Better colors - by default the headings for methods are too # similar to method name colors leading to a "soup" # These colors are optimized for use with Solarized scheme # for your terminal Pry.config.ls.separator = "\n" # new lines between methods Pry.config.ls.heading_color = :magenta Pry.config.ls.public_method_color = :green Pry.config.ls.protected_method_color = :yellow Pry.config.ls.private_method_color = :bright_black # == PLUGINS === # awesome_print gem: great syntax colorized printing # look at ~/.aprc for more settings for awesome_print begin require 'awesome_print' # The following line enables awesome_print for all pry output, # and it also enables paging Pry.config.print = proc { |output, value| Pry::Helpers::BaseHelpers.stagger_output("=> #{value.ai}", output) } # If you want awesome_print without automatic pagination, use the line below # Pry.config.print = proc { |output, value| output.puts value.ai } rescue LoadError => err puts "gem install awesome_print # <-- highly recommended" end # === CUSTOM COMMANDS === # from: https://gist.github.com/1297510 default_command_set = Pry::CommandSet.new do command "copy", "Copy argument to the clip-board" do |str| IO.popen('pbcopy', 'w') { |f| f << str.to_s } end command "clear" do system 'clear' if ENV['RAILS_ENV'] output.puts "Rails Environment: " + ENV['RAILS_ENV'] end end command "sql", "Send sql over AR." do |query| if ENV['RAILS_ENV'] || defined?(Rails) pp ActiveRecord::Base.connection.select_all(query) else pp "No rails env defined" end end command "caller_method" do |depth| depth = depth.to_i || 1 if /^(.+?):(\d+)(?::in `(.*)')?/ =~ caller(depth+1).first file = Regexp.last_match[1] line = Regexp.last_match[2].to_i method = Regexp.last_match[3] output.puts [file, line, method] end end end Pry.config.commands.import default_command_set # === CONVENIENCE METHODS === # Stolen from https://gist.github.com/807492 # Use Array.toy or Hash.toy to get an array or hash to play with class Array def self.toy(n=10, &block) block_given? ? Array.new(n,&block) : Array.new(n) {|i| i+1} end end class Hash def self.toy(n=10) Hash[Array.toy(n).zip(Array.toy(n){|c| (96+(c+1)).chr})] end end # === COLOR CUSTOMIZATION === # Everything below this line is for customizing colors, you have to use the ugly # color codes, but such is life. CodeRay.scan("example", :ruby).term # just to load necessary files # Token colors pulled from: https://github.com/rubychan/coderay/blob/master/lib/coderay/encoders/terminal.rb $LOAD_PATH << File.dirname(File.realpath(__FILE__)) # In CodeRay >= 1.1.0 token colors are defined as pre-escaped ANSI codes if Gem::Version.new(CodeRay::VERSION) >= Gem::Version.new('1.1.0') require "escaped_colors" else require "unescaped_colors" end module CodeRay module Encoders class Terminal < Encoder # override old colors TERM_TOKEN_COLORS.each_pair do |key, value| TOKEN_COLORS[key] = value end end end end