module NanoService::Base::ClassMethods
Public Instance Methods
caller_object()
click to toggle source
# File lib/nano-service/base.rb, line 20 def caller_object @caller_object ||= Class.new.extend(self) end
handle_exception(e)
click to toggle source
# File lib/nano-service/base.rb, line 36 def handle_exception(e) log_error(e) case e when ActiveRecord::RecordNotFound raise RecordNotFound, e.message when ActiveRecord::RecordInvalid raise RecordInvalid.new("#{e.record.class.name} #{e.message}", e.record.errors) when ActiveRecord::RecordNotSaved raise RecordNotSaved.new("#{e.record.class.name} #{e.message}", e.record.errors) when URI::BadURIError raise e.message.include?('gid') ? InvalidGlobalID.new(e.message) : e when URI::GID::MissingModelIdError raise InvalidGlobalID, e.message else raise e end end
log_error(e, msg = nil)
click to toggle source
# File lib/nano-service/base.rb, line 55 def log_error(e, msg = nil) logger.error "[#{@namespace}] #{msg}: #{e.message}" end
logger()
click to toggle source
# File lib/nano-service/base.rb, line 59 def logger @logger ||= defined?(Rails) ? Rails.logger : Logger.new(STDOUT) end
logger=(logger)
click to toggle source
# File lib/nano-service/base.rb, line 63 def logger=(logger) @logger = logger end
method_missing(method_name, *args, &block)
click to toggle source
Calls superclass method
# File lib/nano-service/base.rb, line 24 def method_missing(method_name, *args, &block) if instance_methods.include?(method_name) begin caller_object.send(method_name, *args) rescue Exception => e handle_exception(e) end else super end end