module ServiceNakama::ClassMethods

Public Instance Methods

main_method(method = :perform) click to toggle source
# File lib/service_nakama/nakama.rb, line 40
def main_method(method = :perform)
  method = method.to_sym if method.is_a? String
  define_method(method) { raise_not_implemented method }

  define_main_singleton_method method
end

Private Instance Methods

define_main_singleton_method(method) click to toggle source
# File lib/service_nakama/nakama.rb, line 49
def define_main_singleton_method(method)
  define_singleton_method method do |*args|
    new(*args).tap do |service|
      begin
        service.instance_variable_set('@result', service.public_send(method))
      rescue => e
        service.instance_variable_set('@error', e)
        service.error_logger
      end
    end
  end
end