class Cassie::Statements::Statement::Assignment

set “username = ?”, value: :username set :favs, term: 'favs + ?', value: “{ 'movie' : 'Cassablanca' }” set :username

Attributes

Public Class Methods

new(source, identifier, value_method, opts={}) click to toggle source
# File lib/cassie/statements/statement/assignment.rb, line 13
def initialize(source, identifier, value_method, opts={})
  @source = source
  @identifier = identifier
  @value_method = value_method
  @enabled = opts.has_key?(:if) ? source_eval(opts[:if]) : true
  @term = opts.has_key?(:term) ? source_eval(opts[:term]) : "?"
end

Public Instance Methods

argument() click to toggle source
# File lib/cassie/statements/statement/assignment.rb, line 38
def argument
  value if argument?
end
argument?() click to toggle source
# File lib/cassie/statements/statement/assignment.rb, line 34
def argument?
  positional?
end
enabled?() click to toggle source
# File lib/cassie/statements/statement/assignment.rb, line 30
def enabled?
  !!enabled
end
positional?() click to toggle source
# File lib/cassie/statements/statement/assignment.rb, line 46
def positional?
  term.to_s.include?("?")
end
term() click to toggle source
# File lib/cassie/statements/statement/assignment.rb, line 42
def term
  @term if enabled?
end
to_update_cql() click to toggle source
# File lib/cassie/statements/statement/assignment.rb, line 50
def to_update_cql
  "#{identifier} = #{term}" if enabled?
end
value() click to toggle source
# File lib/cassie/statements/statement/assignment.rb, line 25
def value
  return @value if defined?(@value)
  @value = source.send(value_method)
end

Private Instance Methods

source_eval(value, src=source) click to toggle source
# File lib/cassie/statements/statement/assignment.rb, line 56
def source_eval(value, src=source)
  case value
  when Symbol
    src.send(value)
  else
    value
  end
end