module AmazingPrint
def self.version
def self.version '1.2.0' end
def boolean(value)
This is an alternative to the less readable !!(value)
Takes a value and returns true unless it is false or nil
def boolean(value) value ? true : false end
def console?
def console? boolean(defined?(IRB) || defined?(Pry)) end
def diet_rb
def diet_rb IRB.formatter = Class.new(IRB::Formatter) do def inspect_object(object) object.ai end end.new end
def force_colors!(value = true)
might be dumb).
Class accessor to force colorized output (ex. forked subprocess where TERM
def force_colors!(value = true) @force_colors = value end
def inspect_object(object)
def inspect_object(object) object.ai end
def irb!
def irb! return unless defined?(IRB) IRB.version.include?('DietRB') ? diet_rb : usual_rb end
def output_value
def output_value ap @context.last_value rescue NoMethodError puts "(Object doesn't support #ai)" end
def pry!
def pry! Pry.print = proc { |output, value| output.puts value.ai } if defined?(Pry) end
def rails_console?
def rails_console? console? && boolean(defined?(Rails::Console) || ENV['RAILS_ENV']) end
def usual_rb
def usual_rb IRB::Irb.class_eval do def output_value ap @context.last_value rescue NoMethodError puts "(Object doesn't support #ai)" end end end