Module: ExternalServices::RSpec::Disabler

Defined in:
lib/rspec/disabler.rb

Class Method Summary collapse

Class Method Details

.add_external_service(name) ⇒ Object



8
9
10
11
# File 'lib/rspec/disabler.rb', line 8

def add_external_service(name)
  self.external_services ||= []
  self.external_services << name.to_sym unless self.external_services.include? name.to_sym
end

.disable_external_services(except: []) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/rspec/disabler.rb', line 13

def disable_external_services(except: [])
  except = [except] unless except.is_a?(Array)
  except = except.map(&:to_sym)

  external_services.each do |name|
    next if name.in? except

    ::ActiveRecord::Base.descendants.each do |klass|
      set_external_service_disabled_value klass, name, true
    end
  end
end

.enable_external_servicesObject



26
27
28
29
30
31
32
# File 'lib/rspec/disabler.rb', line 26

def enable_external_services
  external_services.each do |name|
    ::ActiveRecord::Base.descendants.each do |klass|
      set_external_service_disabled_value klass, name, false
    end
  end
end

.set_external_service_disabled_value(klass, service, value) ⇒ Object



34
35
36
# File 'lib/rspec/disabler.rb', line 34

def set_external_service_disabled_value(klass, service, value)
  klass.send("#{service}_api_disabled=", value) if klass.respond_to?("#{service}_api_disabled")
end