class ServiceRecord::Base

Attributes

result[RW]

Public Class Methods

perform(args = {}) click to toggle source
# File lib/service_record/base.rb, line 13
def self.perform(args = {})
  new.tap do |service|
    service.attributes = args
    break service unless service.valid?

    service.run_callbacks :perform do
      service.result = service.perform
    end
  end
end
perform!(args = {}) click to toggle source
# File lib/service_record/base.rb, line 24
def self.perform!(args = {})
  service = perform(args)
  return service if service.success?

  raise Failure, service
end

Public Instance Methods

failure?() click to toggle source
# File lib/service_record/base.rb, line 35
def failure?
  !success?
end
perform() click to toggle source
# File lib/service_record/base.rb, line 39
def perform
  raise NotImplementedError
end
success?() click to toggle source
# File lib/service_record/base.rb, line 31
def success?
  errors.empty?
end