lib/paperdragon/metadata.rb in paperdragon-0.0.5 vs lib/paperdragon/metadata.rb in paperdragon-0.0.6

- old
+ new

@@ -1,31 +1,24 @@ module Paperdragon # 2-level meta data hash for a file. Returns empty string if not found. # Metadata.new(nil)[:original][:width] => "" # Holds metadata for an attachment. This is a hash keyed by versions, e.g. +:original+, # +:thumb+, and so on. - class Metadata - def initialize(hash) - @hash = hash || {} + class Metadata < Hash + def self.[](hash) # allow Metadata[nil] + super hash || {} end def [](name) - @hash[name] || {} + super || {} end def populated? - @hash.size > 0 + size > 0 end - def merge!(hash) - @hash.merge!(hash) - end - - def dup - self.class.new(@hash.dup) - end - + # Consider this semi-public. This is used the make the metadata hash serialisable (as a plain hash). def to_hash - @hash + Hash[self] end end end \ No newline at end of file