module MiniTools::ItemFactory::ClassMethods
Attributes
default_klass[R]
Public Instance Methods
build(value, *args)
click to toggle source
Builds the appropriate item based on `value`. Any additional args are passed on to the item's initializer
# File lib/mini_tools/item_factory.rb, line 40 def build value, *args klass_for(value).new(*args) end
default(klass)
click to toggle source
Sets the default class if there is no match in the map
# File lib/mini_tools/item_factory.rb, line 50 def default klass @default_klass = klass end
map(values)
click to toggle source
Defines the map of values to class types
# File lib/mini_tools/item_factory.rb, line 45 def map values @klass_map = values end
Private Instance Methods
klass_for(value)
click to toggle source
# File lib/mini_tools/item_factory.rb, line 60 def klass_for value value = value.call if value.respond_to? :call return klass_map[value] if klass_map.has_key? value return default_klass end
klass_map()
click to toggle source
# File lib/mini_tools/item_factory.rb, line 56 def klass_map @klass_map ||= {} end