class Ddp::Dumper
Attributes
objects[RW]
Public Class Methods
dump(*val)
click to toggle source
# File lib/ddp/dumper.rb, line 3 def self.dump(*val) new(*val).dump end
new(*val)
click to toggle source
# File lib/ddp/dumper.rb, line 8 def initialize(*val) @objects = val end
Public Instance Methods
dump()
click to toggle source
# File lib/ddp/dumper.rb, line 12 def dump objects.map do |obj| strip <<-EOF #{fetch_ancestors_without_included_modules_by(obj).join(" < ")} { included_modules: #{join_included_modules_for(obj, 12)} inspect: #{inspect_for(obj)} source_location: #{fetch_source_location(obj)} } EOF end.join() end
Private Instance Methods
fetch_ancestors_without_included_modules_by(obj)
click to toggle source
# File lib/ddp/dumper.rb, line 28 def fetch_ancestors_without_included_modules_by(obj) obj.class.ancestors - obj.class.included_modules end
fetch_source_location(obj)
click to toggle source
# File lib/ddp/dumper.rb, line 40 def fetch_source_location(obj) return "There is no source_location." if !obj.respond_to?(:source_location) sl = obj.source_location if sl.nil? return "This is C method." end sl.inspect end
inspect_for(obj)
click to toggle source
# File lib/ddp/dumper.rb, line 36 def inspect_for(obj) obj.inspect end
join_included_modules_for(obj, indent)
click to toggle source
# File lib/ddp/dumper.rb, line 32 def join_included_modules_for(obj, indent) obj.class.included_modules.join($/ + " " * indent) end
strip(text)
click to toggle source
# File lib/ddp/dumper.rb, line 49 def strip(text) indent = text.scan(/^[ \t]*(?=\S)/).min size = 0 size = indent.size if indent text.gsub(/^[ \t]{#{size}}/, '') end