Module: Peacekeeper::DataLoader

Defined in:
lib/peacekeeper/loader.rb

Class Method Summary collapse

Class Method Details

.data_class(config) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/peacekeeper/loader.rb', line 88

def self.data_class(config)
  source = config[:source]
  data_lib_name = config[:data_lib_name]
  data_name = config[:data_name]
  if source.nil?
    nil
  elsif source == :mock
    Kernel.const_set(data_name, Class.new do
                                  def self.new(opts = {})
                                    mock(self.name.gsub(/^.*:/, ''), opts)
                                  end
                                  def self.method_missing(*)
                                    self.new
                                  end
                                  def self.respond_to?(*)
                                    true
                                  end
                                end)
  else
    require "data/#{source}/#{data_lib_name}"
    Kernel.const_get(data_name)
  end
end