Module: DataMaps::Concerns::Factory
- Included in:
- DataMaps::Converter, Then, When
- Defined in:
- lib/data_maps/concerns/factory.rb
Instance Method Summary collapse
-
#factory(name, option) ⇒ Class
Factory to create an instance from a class in this module.
-
#factory_from_map(mapping) ⇒ Array
Helper method to create class from a mapping_hash.
Instance Method Details
#factory(name, option) ⇒ Class
Factory to create an instance from a class in this module
9 10 11 12 13 14 15 16 |
# 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) ⇒ Array
Helper method to create class from a mapping_hash
22 23 24 25 26 27 28 |
# 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 |