module ServiceObjecter
Constants
- VERSION
Public Class Methods
included(klass)
click to toggle source
# File lib/service_objecter.rb, line 5 def self.included(klass) klass.extend(ClassMethods) klass.include(ServiceObjecter::ChainitIntegration) if defined?(ChainIt) end
Public Instance Methods
call()
click to toggle source
# File lib/service_objecter.rb, line 16 def call raise NotImplementedError end
Private Instance Methods
crashed(error, value = nil)
click to toggle source
# File lib/service_objecter.rb, line 30 def crashed(error, value = nil) log(error) failed value || error end
failed(value = nil)
click to toggle source
# File lib/service_objecter.rb, line 26 def failed(value = nil) result.push(false, value) end
log(data)
click to toggle source
# File lib/service_objecter.rb, line 35 def log(data) return unless defined?(Rails) Rails.logger.error data end
result()
click to toggle source
# File lib/service_objecter.rb, line 40 def result @result ||= Result.new(true) end
success(value = nil)
click to toggle source
# File lib/service_objecter.rb, line 22 def success(value = nil) result.push(true, value) end
with_transaction() { || ... }
click to toggle source
Transactions helper Simple usage
def call
with_transaction do ChainIt.new.chain { failed }.result end
end
def call
with_transaction do failed end
end
# File lib/service_objecter.rb, line 63 def with_transaction return yield unless defined?(ActiveRecord) result = nil ActiveRecord::Base.transaction(requires_new: true) do result = yield raise ActiveRecord::Rollback if result.failure? end result end