Class: RediSet::Query
- Inherits:
-
Object
- Object
- RediSet::Query
- Defined in:
- lib/redi_set/query.rb
Instance Attribute Summary collapse
-
#constraints ⇒ Object
readonly
Returns the value of attribute constraints.
Class Method Summary collapse
Instance Method Summary collapse
- #execute(redis) ⇒ Object
-
#initialize(constraints) ⇒ Query
constructor
A new instance of Query.
Constructor Details
#initialize(constraints) ⇒ Query
Returns a new instance of Query.
14 15 16 |
# File 'lib/redi_set/query.rb', line 14 def initialize(constraints) @constraints = constraints end |
Instance Attribute Details
#constraints ⇒ Object (readonly)
Returns the value of attribute constraints.
3 4 5 |
# File 'lib/redi_set/query.rb', line 3 def constraints @constraints end |
Class Method Details
.from_hash(constraint_hash) ⇒ Object
5 6 7 8 9 10 11 12 |
# File 'lib/redi_set/query.rb', line 5 def self.from_hash(constraint_hash) constraints = constraint_hash.map do |key, val| attribute = Attribute.new(name: key) qualities = Array(val).map { |v| Quality.new(attribute: attribute, name: v) } Constraint.new(qualities: qualities) end RediSet::Query.new(constraints) end |
Instance Method Details
#execute(redis) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/redi_set/query.rb', line 18 def execute(redis) redis.multi do constraints.select(&:requires_union?).each { |c| c.store_union(redis) } redis.sinter(constraints.map(&:intersection_key)) end.last end |