Class: Cassie::Statements::Statement::Relation
- Defined in:
- lib/cassie/statements/statement/relation.rb
Overview
relation :username, :eq
relation :username, :eq, value: :method
relation :phone, :in
relation :user_id, :gteq, term: "minTimeuuid('2013-02-02 10:00+0000')"
Constant Summary collapse
- OPERATIONS =
{ eq: "=", lt: "<", lteq: "<=", gt: ">", gteq: ">=", in: "IN", contains: "CONTAINS", contains_key: "CONTAINS KEY", }
Instance Attribute Summary collapse
-
#enabled ⇒ Object
readonly
Returns the value of attribute enabled.
-
#identifier ⇒ Object
readonly
Returns the value of attribute identifier.
-
#operation ⇒ Object
readonly
Returns the value of attribute operation.
-
#source ⇒ Object
readonly
Returns the value of attribute source.
-
#term ⇒ Object
readonly
Returns the value of attribute term.
-
#value_method ⇒ Object
readonly
Returns the value of attribute value_method.
Instance Method Summary collapse
- #argument ⇒ Object
- #argument? ⇒ Boolean
- #enabled? ⇒ Boolean
-
#initialize(source, identifier, op_type, value_method, opts = {}) ⇒ Relation
constructor
A new instance of Relation.
- #positional? ⇒ Boolean
- #to_cql ⇒ Object
- #value ⇒ Object
Constructor Details
#initialize(source, identifier, op_type, value_method, opts = {}) ⇒ Relation
Returns a new instance of Relation.
30 31 32 33 34 35 36 37 |
# 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 |
Instance Attribute Details
#enabled ⇒ Object (readonly)
Returns the value of attribute enabled.
22 23 24 |
# File 'lib/cassie/statements/statement/relation.rb', line 22 def enabled @enabled end |
#identifier ⇒ Object (readonly)
Returns the value of attribute identifier.
22 23 24 |
# File 'lib/cassie/statements/statement/relation.rb', line 22 def identifier @identifier end |
#operation ⇒ Object (readonly)
Returns the value of attribute operation.
22 23 24 |
# File 'lib/cassie/statements/statement/relation.rb', line 22 def operation @operation end |
#source ⇒ Object (readonly)
Returns the value of attribute source.
22 23 24 |
# File 'lib/cassie/statements/statement/relation.rb', line 22 def source @source end |
#term ⇒ Object (readonly)
Returns the value of attribute term.
22 23 24 |
# File 'lib/cassie/statements/statement/relation.rb', line 22 def term @term end |
#value_method ⇒ Object (readonly)
Returns the value of attribute value_method.
22 23 24 |
# File 'lib/cassie/statements/statement/relation.rb', line 22 def value_method @value_method end |
Instance Method Details
#argument ⇒ Object
52 53 54 |
# File 'lib/cassie/statements/statement/relation.rb', line 52 def argument value if argument? end |
#argument? ⇒ Boolean
43 44 45 |
# File 'lib/cassie/statements/statement/relation.rb', line 43 def argument? enabled? && positional? end |
#enabled? ⇒ Boolean
39 40 41 |
# File 'lib/cassie/statements/statement/relation.rb', line 39 def enabled? !!enabled end |
#positional? ⇒ Boolean
56 57 58 |
# File 'lib/cassie/statements/statement/relation.rb', line 56 def positional? term.to_s.include?("?") end |
#to_cql ⇒ Object
60 61 62 63 |
# File 'lib/cassie/statements/statement/relation.rb', line 60 def to_cql return nil unless enabled? "#{identifier} #{operation} #{term}" end |
#value ⇒ Object
47 48 49 50 |
# File 'lib/cassie/statements/statement/relation.rb', line 47 def value return(@value) if defined?(@value) @value = source.send(value_method) end |