Class: DataShift::ContextFactory

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

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configObject

Returns the value of attribute config.



24
25
26
# File 'lib/datashift/context_factory.rb', line 24

def config
  @config
end

.global_populator_classObject



69
70
71
# File 'lib/datashift/context_factory.rb', line 69

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

Class Method Details

.clear_populatorsObject

Clear out map of operators to populator Class



27
28
29
# File 'lib/datashift/context_factory.rb', line 27

def self.clear_populators
  populators.clear
end

.configure(load_object_class, yaml_file) ⇒ Object

Options :

formatter
populator


40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/datashift/context_factory.rb', line 40

def self.configure(load_object_class, yaml_file)

  @config = YAML.load( ERB.new( IO.read(yaml_file) ).result )

  @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 if @config[:datashift_populators]

end

.get_populator(method_binding) ⇒ Object



78
79
80
81
82
83
84
85
# File 'lib/datashift/context_factory.rb', line 78

def self.get_populator(method_binding)

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

  global_populator_class.new
end

.populatorsObject

Return map of operators to populator Class



32
33
34
# File 'lib/datashift/context_factory.rb', line 32

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

.set_populator(method_binding, klass) ⇒ Object



73
74
75
76
# File 'lib/datashift/context_factory.rb', line 73

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