module Cassie::Statements::Statement::Idempotency::ClassMethods

@!parse extend ClassMethods

Public Instance Methods

idempotent(val=:get) click to toggle source

DSL to set a statement as idempotent @param [Boolean] val The value to set for idempotency. Returns the current value if no parameter is given. @return [Boolean] idempotent value

# File lib/cassie/statements/statement/idempotency.rb, line 37
def idempotent(val=:get)
  if val == :get
    return @idempotent if defined?(@idempotent)
    Cassie::Statements.default_idempotency
  else
    self.idempotent = val
  end
end
idempotent=(val) click to toggle source
# File lib/cassie/statements/statement/idempotency.rb, line 30
def idempotent=(val)
  @idempotent = val
end
idempotent?() click to toggle source

Indicates where the statement has no negative side-effect if issued multiple times. @return [Boolean] indicating idempotency. Defaults to {Cassie::Statements.default_idempotency} if no value has been set.

# File lib/cassie/statements/statement/idempotency.rb, line 55
def idempotent?
  !!idempotent
end
inherited(subclass) click to toggle source

@!visibility private

Calls superclass method
# File lib/cassie/statements/statement/idempotency.rb, line 25
def inherited(subclass)
  subclass.idempotent = idempotent if defined?(@idempotent)
  super
end
non_idempotent() click to toggle source

DSL to set a satement as non-idempotent @return [Boolean] false

# File lib/cassie/statements/statement/idempotency.rb, line 48
def non_idempotent
  self.idempotent = false
end