Sha256: 0bbe4ce1338cce174246baf071d0c097e37a232d152154f1963f89e20c828bc8
Contents?: true
Size: 825 Bytes
Versions: 1
Compression:
Stored size: 825 Bytes
Contents
module Exporter class Configuration def initialize @exporters = Hash.new end def register(data_type, export_type, exporter) if @exporters[data_type].nil? @exporters[data_type] = {export_type => exporter} else @exporters[data_type][export_type] = exporter end end def index(data, default_value, method) @exporters.keys.each do |key| return method.call(key) if data.kind_of?(key) end default_value end def can_export?(data, export_type) can_export_proc = Proc.new{|key| @exporters[key][export_type].present?} index(data, false, can_export_proc) end def exporter(data, export_type) exporter_proc = Proc.new {|key| @exporters[key][export_type]} index(data, nil, exporter_proc) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
exporter-0.1.0 | lib/exporter/configuration.rb |