Sha256: 8b275f358d9bb875dc56fdcc64ee3e8c5e08ddf050ea5c33eed17c1e330048f1
Contents?: true
Size: 1.28 KB
Versions: 1
Compression:
Stored size: 1.28 KB
Contents
require 'indented_io' require 'meta_db/db_object' module MetaDb class DbObject def dump(short = false) puts self.class.to_s dump_attrs(short) end def dump_attrs(short, *attrs) attrs = Array(attrs) attrs = self.class.attrs if attrs.empty? indent { for attr in Array(attrs) value = self.send(attr) case value when Array if value.first.is_a?(Symbol) puts "#{attr}: #{value.inspect}" else if short puts "#{attr}: [#{value.map(&:name).join(", ")}]" else puts "#{attr}: " indent { value.each { |v| v.dump } } end end when Hash if short puts "#{attr}: [#{value.values.map(&:name).join(", ")}]" else puts "#{attr}: " indent { value.values.each { |v| v.dump } } end when DbObject puts "#{attr}: #{value.name} (#{value.class})" else puts "#{attr}: #{self.send(attr).inspect}" end end } end end class Constraint < DbObject def dump(short = true) super(short) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
meta_db-0.2.0 | lib/meta_db/dump.rb |