class RapidApi::Services::RapidApi::Services::RapidApi::Services::BaseService

Attributes

bang_mode[RW]
params[RW]
response[RW]

Public Class Methods

method_missing(meth, *args, &block) click to toggle source
Calls superclass method
# File lib/rapid_api/services/base_service.rb, line 9
def self.method_missing(meth, *args, &block)
  if meth[-1] == '!'
    meth = meth.to_s.split('!')[0].to_sym
    bang_mode = true
  else
    bang_mode = false
  end
  if instance_methods.include? meth
    service = self.new(*args)
    service.bang_mode = bang_mode
    service.send(meth)
    if bang_mode
      return service.response.value
    else
      return service.response
    end
  else
    super
  end
end
new(params={}) click to toggle source
# File lib/rapid_api/services/base_service.rb, line 30
def initialize(params={})
  @params   = params
  @response = ServiceResponse.new
  after_initialize
end

Public Instance Methods

add_error(key, message) click to toggle source
# File lib/rapid_api/services/base_service.rb, line 39
def add_error(key, message)
  raise "#{key}: #{message}" if bang_mode

  if response.errors.key? key
    response.errors[key] << message
  else
    response.errors[key] = []
    response.errors[key] << message
  end
end
after_initialize() click to toggle source
# File lib/rapid_api/services/base_service.rb, line 36
def after_initialize
end
return_value(value) click to toggle source
# File lib/rapid_api/services/base_service.rb, line 50
def return_value(value)
  response.value = value
end

Protected Instance Methods

_transfer_errors_from_active_record(model) click to toggle source
# File lib/rapid_api/services/base_service.rb, line 56
def _transfer_errors_from_active_record(model)
  if model.errors.any?
    model.errors.keys.each do |k|
      response.errors[k]= model.errors[k]
    end
  end
end