Sha256: d52bf7054bb6d80c18ad63ad9cb31407b11a23c0182e2323ccd495d4bc61c633
Contents?: true
Size: 891 Bytes
Versions: 1
Compression:
Stored size: 891 Bytes
Contents
module Radiosonde::Utils def collect_to_hash(collection, *key_attrs) opts = key_attrs.last.kind_of?(Hash) ? key_attrs.pop : {} hash = {} collection.each do |item| if block_given? key = yield(item) else key = key_attrs.map {|k| item.send(k) } key = key.first if key_attrs.length == 1 end if opts[:has_many] hash[key] ||= [] hash[key] << item else hash[key] = item end end return hash end module_function :collect_to_hash class << self def diff(obj1, obj2, options = {}) diffy = Diffy::Diff.new( obj1.pretty_inspect, obj2.pretty_inspect, :diff => '-u' ) out = diffy.to_s(options[:color] ? :color : :text).gsub(/\s+\z/m, '') out.gsub!(/^/, options[:indent]) if options[:indent] out end end # of class methods end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
radiosonde-0.0.8 | lib/radiosonde/utils.rb |