Class: DataShift::PopulatorFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/datashift/populators/populator_factory.rb

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configObject

Returns the value of attribute config.



10
11
12
# File 'lib/datashift/populators/populator_factory.rb', line 10

def config
  @config
end

.global_populator_classObject



57
58
59
# File 'lib/datashift/populators/populator_factory.rb', line 57

def self.global_populator_class
  @global_populator_class || DataShift::Populator
end

Class Method Details

.clear_populatorsObject

Clear out map of operators to populator Class



13
14
15
# File 'lib/datashift/populators/populator_factory.rb', line 13

def self.clear_populators
  populators.clear
end

.configure(load_object_class, yaml_file) ⇒ Object

Options :

formatter
populator


26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/datashift/populators/populator_factory.rb', line 26

def self.configure(load_object_class, yaml_file)

  @config = Configuration.parse_yaml(yaml_file)

  if @config[:datashift_populators]
    @config[:datashift_populators].each do |_operator, type|
      populator = ::Object.const_get(type).new

      populator.configure_from(load_object_class, yaml_file)

      populators[@config[:datashift_populators]]
    end
  end

end

.get_populator(method_binding) ⇒ Object



66
67
68
69
70
71
72
73
# File 'lib/datashift/populators/populator_factory.rb', line 66

def self.get_populator(method_binding)

  unless method_binding.nil? || method_binding.invalid?
    return populators[method_binding.operator].new if populators.key?(method_binding.operator)
  end

  global_populator_class.new
end

.populatorsObject

Return map of operators to populator Class



18
19
20
# File 'lib/datashift/populators/populator_factory.rb', line 18

def self.populators
  @populators ||= {}
end

.set_populator(method_binding, klass) ⇒ Object



61
62
63
64
# File 'lib/datashift/populators/populator_factory.rb', line 61

def self.set_populator(method_binding, klass)
  operator = method_binding.is_a?(DataShift::MethodBinding) ? method_binding.operator : method_binding
  populators[operator] = klass
end