Sha256: 0b8ea678deb5ad358cabacc89c1fd9493314e3ffb0d19a8408b79ad3b2fbfb4d
Contents?: true
Size: 800 Bytes
Versions: 5
Compression:
Stored size: 800 Bytes
Contents
module FileData # Operations common to all files class FileInfo class << self attr_reader :info_maps end @info_maps ||= {} %w[creation_date origin_date].each do |method_name| define_singleton_method(method_name) do |filename| File.open(filename, 'rb') do |stream| reader = reader_class(filename) raise "No metadata parser class found for the file #{filename}" if reader.nil? reader_class(filename).send(method_name, stream) end end end def self.reader_class(filename) info_maps[get_reader_key(filename)] end def self.can_handle?(filename) info_maps.key?(get_reader_key(filename)) end def self.get_reader_key(filename) File.extname(filename).downcase end end end
Version data entries
5 entries across 5 versions & 1 rubygems