module Quiver::Result

Attributes

data[RW]
errors[RW]
object[RW]

Public Class Methods

new(object=nil, errors=nil, data={}) { |errors| ... } click to toggle source
# File lib/quiver/result.rb, line 5
def initialize(object=nil, errors=nil, data={})
  errors ||= Quiver::ErrorCollection.new

  if block_given?
    object = yield errors
  end

  self.object = object
  self.errors = errors
  self.data = data
end

Public Instance Methods

==(other) click to toggle source
# File lib/quiver/result.rb, line 33
def ==(other)
  other.is_a?(Result) &&
  object == other.object &&
    errors == other.errors &&
    data == other.data
end
success?() click to toggle source
# File lib/quiver/result.rb, line 17
def success?
  errors.success?
end
when(success: nil, failure: nil) click to toggle source
# File lib/quiver/result.rb, line 21
def when(success: nil, failure: nil)
  # one day if we ever have Ruby 2.1 we can delete this
  raise ArgumentError, 'missing keyword: success' if success == nil
  raise ArgumentError, 'missing keyword: failure' if failure == nil

  if success?
    success.call(object, self)
  else
    failure.call(errors, self)
  end
end