module AwesomePrint::ProcExt

Public Class Methods

included(base) click to toggle source
# File lib/awesome_print/proc_ext.rb, line 9
def self.included(base)
  base.send :alias_method, :cast_without_proc, :cast
  base.send :alias_method, :cast, :cast_with_proc
end

Public Instance Methods

cast_with_proc(obj, type) click to toggle source

Add Proc class to the dispatcher pipeline.

# File lib/awesome_print/proc_ext.rb, line 15
def cast_with_proc(obj, type)
  if (type == :proc || obj.is_a?(::Proc)) && obj.respond_to?(:to_source)
    :proc
  else
    cast_without_proc(obj, type)
  end
end

Private Instance Methods

awesome_proc(obj) click to toggle source

Format Proc object.

# File lib/awesome_print/proc_ext.rb, line 26
def awesome_proc(obj)
  if !@options[:raw] && (/\A(?<kw>proc)\s*(?<block_source>.+?)\z/ =~ obj.to_source)
    kw = "->" if obj.lambda?
    sprintf("%s %s", colorize(kw, :keyword), colorize(block_source, :string))
  else
    awesome_object(obj)
  end
end