class Cassie::Statements::Statement::Relation

relation :username, :eq relation :username, :eq, value: :method relation :phone, :in relation :user_id, :gteq, term: “minTimeuuid('2013-02-02 10:00+0000')”

Constants

OPERATIONS

cassandra.apache.org/doc/cql3/CQL.html#selectStmt

Attributes

enabled[R]
identifier[R]
operation[R]
source[R]
term[R]
value_method[R]

Public Class Methods

new(source, identifier, op_type, value_method, opts={}) click to toggle source
# File lib/cassie/statements/statement/relation.rb, line 30
def initialize(source, identifier, op_type, value_method, opts={})
  @source = source
  @identifier = identifier
  @operation = OPERATIONS[op_type.to_sym]
  @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/relation.rb, line 52
def argument
  value if argument?
end
argument?() click to toggle source
# File lib/cassie/statements/statement/relation.rb, line 43
def argument?
  enabled? && positional?
end
enabled?() click to toggle source
# File lib/cassie/statements/statement/relation.rb, line 39
def enabled?
  !!enabled
end
positional?() click to toggle source
# File lib/cassie/statements/statement/relation.rb, line 56
def positional?
  term.to_s.include?("?")
end
to_cql() click to toggle source
# File lib/cassie/statements/statement/relation.rb, line 60
def to_cql
  return nil unless enabled?
  "#{identifier} #{operation} #{term}"
end
value() click to toggle source
# File lib/cassie/statements/statement/relation.rb, line 47
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/relation.rb, line 67
def source_eval(value, src=source)
  case value
  when Symbol
    src.send(value)
  else
    value
  end
end