Class: Grouping
- Inherits:
-
Object
- Object
- Grouping
- Defined in:
- lib/grouping.rb
Instance Attribute Summary collapse
-
#combinator ⇒ Object
Returns the value of attribute combinator.
-
#conditions ⇒ Object
readonly
Returns the value of attribute conditions.
-
#groupings ⇒ Object
readonly
Returns the value of attribute groupings.
-
#id ⇒ Object
Returns the value of attribute id.
Instance Method Summary collapse
- #add_condition(condition = nil) ⇒ Object
- #add_conditions(conditions) ⇒ Object
- #add_grouping(grouping = nil) ⇒ Object
- #add_groupings(groupings) ⇒ Object
-
#initialize {|_self| ... } ⇒ Grouping
constructor
A new instance of Grouping.
- #ransackify ⇒ Object
Constructor Details
#initialize {|_self| ... } ⇒ Grouping
Returns a new instance of Grouping.
5 6 7 8 9 10 11 |
# File 'lib/grouping.rb', line 5 def initialize @id = RansackQuery.generate_id @combinator = :and @conditions = [] @groupings = [] yield self if block_given? end |
Instance Attribute Details
#combinator ⇒ Object
Returns the value of attribute combinator.
2 3 4 |
# File 'lib/grouping.rb', line 2 def combinator @combinator end |
#conditions ⇒ Object (readonly)
Returns the value of attribute conditions.
3 4 5 |
# File 'lib/grouping.rb', line 3 def conditions @conditions end |
#groupings ⇒ Object (readonly)
Returns the value of attribute groupings.
3 4 5 |
# File 'lib/grouping.rb', line 3 def groupings @groupings end |
#id ⇒ Object
Returns the value of attribute id.
2 3 4 |
# File 'lib/grouping.rb', line 2 def id @id end |
Instance Method Details
#add_condition(condition = nil) ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/grouping.rb', line 13 def add_condition(condition=nil) if block_given? condition = Condition.new do |new_condition| yield new_condition end end conditions << condition self end |
#add_conditions(conditions) ⇒ Object
33 34 35 36 |
# File 'lib/grouping.rb', line 33 def add_conditions(conditions) @conditions += conditions self end |
#add_grouping(grouping = nil) ⇒ Object
23 24 25 26 27 28 29 30 31 |
# File 'lib/grouping.rb', line 23 def add_grouping(grouping=nil) if block_given? grouping = Grouping.new do |new_grouping| yield new_grouping end end groupings << grouping self end |
#add_groupings(groupings) ⇒ Object
38 39 40 41 |
# File 'lib/grouping.rb', line 38 def add_groupings(groupings) @groupings += groupings self end |
#ransackify ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/grouping.rb', line 43 def ransackify ransack_hash = { group_id => { @id => { 'm' => @combinator.to_s } } } ransackify_conditions(ransack_hash) ransackify_groupings(ransack_hash) ransack_hash end |