Class: ARCondition
- Inherits:
-
Object
- Object
- ARCondition
- Defined in:
- lib/ar_condition/ar_condition.rb
Overview
Class for create condition from Array
Instance Attribute Summary collapse
-
#conditions ⇒ Object
readonly
Returns Array.
-
#operator ⇒ Object
writeonly
Sets the attribute operator.
Instance Method Summary collapse
- #<<(condition) ⇒ Object
- #add(condition) ⇒ Object
-
#initialize(condition = nil, operator = 'AND') ⇒ ARCondition
constructor
A new instance of ARCondition.
Constructor Details
#initialize(condition = nil, operator = 'AND') ⇒ ARCondition
Returns a new instance of ARCondition.
8 9 10 11 12 |
# File 'lib/ar_condition/ar_condition.rb', line 8 def initialize(condition=nil, operator='AND') @conditions = [] @operator = operator add(condition) if condition end |
Instance Attribute Details
#conditions ⇒ Object (readonly)
Returns Array
5 6 7 |
# File 'lib/ar_condition/ar_condition.rb', line 5 def conditions @conditions end |
#operator=(value) ⇒ Object (writeonly)
Sets the attribute operator
6 7 8 |
# File 'lib/ar_condition/ar_condition.rb', line 6 def operator=(value) @operator = value end |
Instance Method Details
#<<(condition) ⇒ Object
34 35 36 |
# File 'lib/ar_condition/ar_condition.rb', line 34 def <<(condition) add(condition) end |
#add(condition) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/ar_condition/ar_condition.rb', line 14 def add(condition) if condition.is_a?(Array) if @conditions.size > 0 @conditions.first << " #{@operator} (#{condition.first}) " else @conditions << " (#{condition.first}) " end @conditions += condition[1..-1] elsif condition.is_a?(String) if @conditions.size > 0 @conditions.first << " #{@operator} (#{condition})" else @conditions << " (#{condition})" end else raise "Unsupported #{condition.class} condition: #{condition}" end self end |