module NdrImport::File::Registry
This mixin adds table enumeration functionality to importers.
Attributes
handlers[RW]
Public Class Methods
files(filename, options = {}, &block)
click to toggle source
# File lib/ndr_import/file/registry.rb, line 24 def files(filename, options = {}, &block) return enum_for(:files, filename, options) unless block klass_factory(filename, nil, options).files(&block) end
register(klass, *formats)
click to toggle source
# File lib/ndr_import/file/registry.rb, line 10 def register(klass, *formats) @handlers ||= {} formats.each do |format| @handlers[format] = klass end end
tables(filename, format = nil, options = {}, &block)
click to toggle source
# File lib/ndr_import/file/registry.rb, line 30 def tables(filename, format = nil, options = {}, &block) return enum_for(:tables, filename, format, options) unless block klass_factory(filename, format, options).tables(&block) end
unregister(*formats)
click to toggle source
# File lib/ndr_import/file/registry.rb, line 18 def unregister(*formats) formats.each do |format| @handlers.delete(format) end end
Private Class Methods
klass_factory(filename, format, options)
click to toggle source
# File lib/ndr_import/file/registry.rb, line 38 def klass_factory(filename, format, options) format ||= SafeFile.extname(filename).delete('.').downcase klass = Registry.handlers[format] if klass klass.new(filename, format, options) else UnregisteredFiletype.new(filename, format, options) end end