Class: ARCondition

Inherits:
Object
  • Object
show all
Defined in:
lib/ar_condition.rb

Overview

redMine - project management software Copyright © 2006-2008 Jean-Philippe Lang

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(condition = nil) ⇒ ARCondition

Returns a new instance of ARCondition.



21
22
23
24
# File 'lib/ar_condition.rb', line 21

def initialize(condition=nil)
  @conditions = ['1=1']
  add(condition) if condition
end

Instance Attribute Details

#conditionsObject (readonly)

Returns the value of attribute conditions.



19
20
21
# File 'lib/ar_condition.rb', line 19

def conditions
  @conditions
end

Instance Method Details

#<<(condition) ⇒ Object



38
39
40
# File 'lib/ar_condition.rb', line 38

def <<(condition)
  add(condition)
end

#add(condition) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/ar_condition.rb', line 26

def add(condition)
  if condition.is_a?(Array)
    @conditions.first << " AND (#{condition.first})"
    @conditions += condition[1..-1]
  elsif condition.is_a?(String)
    @conditions.first << " AND (#{condition})"
  else
    raise "Unsupported #{condition.class} condition: #{condition}"
  end
  self
end