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