Class: TestDummy::Loader

Inherits:
Object
  • Object
show all
Defined in:
lib/test_dummy/loader.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLoader

Instance Methods =====================================================



12
13
14
# File 'lib/test_dummy/loader.rb', line 12

def initialize
  @loaded = { }
end

Class Method Details

.load!(model_class) ⇒ Object

Class Methods ========================================================



4
5
6
7
8
# File 'lib/test_dummy/loader.rb', line 4

def self.load!(model_class)
  @instance ||= new

  @instance[model_class.to_s]
end

Instance Method Details

#[](class_name) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/test_dummy/loader.rb', line 16

def [](class_name)
  return @loaded[class_name] if (@loaded.key?(class_name))

  @loaded[class_name] = nil

  dummy_path = File.expand_path(
   "#{class_name.to_s.underscore}.rb",
    TestDummy.dummy_extensions_path
  )

  if (File.exist?(dummy_path))
    begin
      Kernel.load(dummy_path)

      @loaded[class_name] = true
    rescue LoadError => e
      @loaded[class_name] = e
    end
  else
    @loaded[class_name] = false
  end
rescue LoadError => e
  # Persist that this load attempt failed and don't retry later.
  @loaded[class_name] = e
end