Class: MeducationSDK::Mocker

Inherits:
Object
  • Object
show all
Defined in:
lib/meducation_sdk/mocker.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource_name) ⇒ Mocker

Returns a new instance of Mocker.



15
16
17
# File 'lib/meducation_sdk/mocker.rb', line 15

def initialize(resource_name)
  @resource_name = resource_name
end

Class Method Details

.mock!Object



3
4
5
6
7
# File 'lib/meducation_sdk/mocker.rb', line 3

def self.mock!
  RESOURCES.each do |resource|
    new(resource).mock!
  end
end

.unmock!Object



9
10
11
12
13
# File 'lib/meducation_sdk/mocker.rb', line 9

def self.unmock!
  RESOURCES.each do |resource|
    new(resource).unmock!
  end
end

Instance Method Details

#mock!Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/meducation_sdk/mocker.rb', line 19

def mock!
  return if mock_module.const_defined?(original_class_name)

  resource = "#{mock_module_name}::#{resource_class_name}".constantize
  mock = "#{mock_module_name}::#{mock_class_name}".constantize

  mock_module.const_set(original_class_name, resource)
  mock_module.send(:remove_const, resource_class_name)
  mock_module.const_set(resource_class_name, mock)
  mock_module.send(:remove_const, mock_class_name)
end

#unmock!Object



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/meducation_sdk/mocker.rb', line 31

def unmock!
  return unless mock_module.const_defined?(original_class_name)

  original = "#{mock_module_name}::#{original_class_name}".constantize
  resource = "#{mock_module_name}::#{resource_class_name}".constantize

  mock_module.const_set(mock_class_name, resource)
  mock_module.send(:remove_const, resource_class_name)
  mock_module.const_set(resource_class_name, original)
  mock_module.send(:remove_const, original_class_name)
end