Module: Refine::Inspector
- Included in:
- Filter
- Defined in:
- app/models/refine/inspector.rb
Instance Method Summary collapse
- #has_duplicate_conditions? ⇒ Boolean
- #uses_and? ⇒ Boolean
- #uses_condition(condition_id, using_clauses: []) ⇒ Object
- #uses_condition_at_least(condition_id, occurrences: 1) ⇒ Object
- #uses_negative_clause? ⇒ Boolean
- #uses_or? ⇒ Boolean
Instance Method Details
#has_duplicate_conditions? ⇒ Boolean
40 41 42 43 44 45 |
# File 'app/models/refine/inspector.rb', line 40 def has_duplicate_conditions? return false if @blueprint.nil? || @blueprint.empty? conditions = @blueprint.select{|c| c[:type] == "criterion"} condition_ids = conditions.map{|c| c[:condition_id]} condition_ids.length != condition_ids.uniq.length end |
#uses_and? ⇒ Boolean
8 9 10 11 |
# File 'app/models/refine/inspector.rb', line 8 def uses_and? return false if @blueprint.nil? || @blueprint.empty? @blueprint.select{|c| c[:type] == "conjunction" && c[:word] == "and"}.any? end |
#uses_condition(condition_id, using_clauses: []) ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'app/models/refine/inspector.rb', line 13 def uses_condition(condition_id, using_clauses: []) return false if @blueprint.nil? || @blueprint.empty? condition = @blueprint.select{|c| c[:type] == "criterion" && c[:condition_id] == condition_id}.any? using_clauses = [using_clauses] unless using_clauses&.is_a?(Array) if(using_clauses.any?) condition = condition && @blueprint.select{|c| c[:type] == "criterion" && using_clauses.include?(c[:input][:clause]) }.any? end return condition end |
#uses_condition_at_least(condition_id, occurrences: 1) ⇒ Object
23 24 25 26 27 |
# File 'app/models/refine/inspector.rb', line 23 def uses_condition_at_least(condition_id, occurrences: 1) return false if @blueprint.nil? || @blueprint.empty? conditions = @blueprint.select{|c| c[:type] == "criterion" && c[:condition_id] == condition_id} return conditions.length >= occurrences end |
#uses_negative_clause? ⇒ Boolean
29 30 31 32 33 34 35 36 37 38 |
# File 'app/models/refine/inspector.rb', line 29 def uses_negative_clause? return false if @blueprint.nil? || @blueprint.empty? negative_clauses = [ Refine::Conditions::Clauses::NOT_IN, Refine::Conditions::Clauses::NOT_SET, Refine::Conditions::Clauses::DOESNT_EQUAL, Refine::Conditions::Clauses::DOESNT_CONTAIN ] @blueprint.select{|c| c[:type] == "criterion" && negative_clauses.include?(c[:input][:clause])}.any? end |
#uses_or? ⇒ Boolean
3 4 5 6 |
# File 'app/models/refine/inspector.rb', line 3 def uses_or? return false if @blueprint.nil? || @blueprint.empty? @blueprint.select{|c| c[:type] == "conjunction" && c[:word] == "or"}.any? end |