Class: Lotus::Model::Adapters::Auth0::LuceneQuery
- Inherits:
-
Object
- Object
- Lotus::Model::Adapters::Auth0::LuceneQuery
- Defined in:
- lib/lotus/model/adapters/auth0/lucene_query.rb
Defined Under Namespace
Instance Method Summary collapse
- #conditions ⇒ Object
-
#initialize(_conditions) ⇒ LuceneQuery
constructor
A new instance of LuceneQuery.
- #to_s ⇒ Object
Constructor Details
#initialize(_conditions) ⇒ LuceneQuery
Returns a new instance of LuceneQuery.
45 46 47 |
# File 'lib/lotus/model/adapters/auth0/lucene_query.rb', line 45 def initialize(_conditions) @conditions = _conditions end |
Instance Method Details
#conditions ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/lotus/model/adapters/auth0/lucene_query.rb', line 74 def conditions (@conditions || []).collect do |condition_type, condition| raise ArgumentError, 'condition is invalid' if condition.keys.count > 1 || condition.values.count > 1 case condition_type when :where, :and Where.new(condition) when :or Or.new(condition) end end end |
#to_s ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/lotus/model/adapters/auth0/lucene_query.rb', line 49 def to_s previous_condition = nil result = '' conditions.each do |condition| case previous_condition when Where if condition.is_a?(Or) result = "(#{result}) OR #{condition}" else result = "#{result} AND #{condition}" end when Or lhs, rhs = result.split('OR') result = [lhs, "(#{[condition, rhs].join(' AND ')})"].join(' OR ') else result = condition.to_s end previous_condition = condition end result end |