class RubyEventStore::ExpectedVersion

Constants

NOT_RESOLVED
POSITION_DEFAULT

Attributes

version[R]

Public Class Methods

any() click to toggle source
# File lib/ruby_event_store/expected_version.rb, line 8
def self.any
  new(:any)
end
auto() click to toggle source
# File lib/ruby_event_store/expected_version.rb, line 16
def self.auto
  new(:auto)
end
new(version) click to toggle source
# File lib/ruby_event_store/expected_version.rb, line 22
def initialize(version)
  @version = version
  invalid_version! unless [Integer, :any, :none, :auto].any? { |i| i === version }
end
none() click to toggle source
# File lib/ruby_event_store/expected_version.rb, line 12
def self.none
  new(:none)
end

Public Instance Methods

==(other_expected_version) click to toggle source
# File lib/ruby_event_store/expected_version.rb, line 56
def ==(other_expected_version)
  other_expected_version.instance_of?(self.class) && other_expected_version.version.equal?(version)
end
Also aliased as: eql?
any?() click to toggle source
# File lib/ruby_event_store/expected_version.rb, line 27
def any?
  version.equal?(:any)
end
auto?() click to toggle source
# File lib/ruby_event_store/expected_version.rb, line 31
def auto?
  version.equal?(:auto)
end
eql?(other_expected_version)
Alias for: ==
hash() click to toggle source
# File lib/ruby_event_store/expected_version.rb, line 52
def hash
  version.hash ^ self.class.hash
end
none?() click to toggle source
# File lib/ruby_event_store/expected_version.rb, line 35
def none?
  version.equal?(:none)
end
resolve_for(stream, resolver = Proc.new {}) click to toggle source
# File lib/ruby_event_store/expected_version.rb, line 39
def resolve_for(stream, resolver = Proc.new {})
  invalid_version! if stream.global? && !any?

  case version
  when Integer
    version
  when :none
    POSITION_DEFAULT
  when :auto
    resolver[stream] || POSITION_DEFAULT
  end
end

Private Instance Methods

invalid_version!() click to toggle source
# File lib/ruby_event_store/expected_version.rb, line 64
def invalid_version!
  raise InvalidExpectedVersion
end