module DataMaps::Concerns::Factory
Public Instance Methods
factory(name, option)
click to toggle source
Factory
to create an instance from a class in this module
@param [String] name @param [mixed] option @return [Class]
# File lib/data_maps/concerns/factory.rb, line 9 def factory(name, option) name = name.to_s.classify klass_name = "#{self.name}::#{name}" raise ArgumentError.new("No class '#{klass_name}' exists.") unless self.constants.include?(name.to_sym) klass = klass_name.constantize klass.new(option) end
factory_from_map(mapping)
click to toggle source
Helper method to create class from a mapping_hash
@param [Hash] mapping @return [Array] of factorized classes
# File lib/data_maps/concerns/factory.rb, line 22 def factory_from_map(mapping) raise ArgumentError.new("#{self.name} mapping has to be an hash") unless mapping.is_a?(Hash) mapping.map do |name, option| self.factory(name, option) end end