Mercurial > hg > soundsoftware-site
annotate lib/ar_condition.rb @ 1474:c4436fec34bf bug_494
Close obsolete branch bug_494
author | Chris Cannam |
---|---|
date | Sat, 10 Nov 2012 13:57:53 +0000 |
parents | cbb26bc654de |
children |
rev | line source |
---|---|
Chris@909 | 1 # Redmine - project management software |
Chris@909 | 2 # Copyright (C) 2006-2011 Jean-Philippe Lang |
Chris@0 | 3 # |
Chris@0 | 4 # This program is free software; you can redistribute it and/or |
Chris@0 | 5 # modify it under the terms of the GNU General Public License |
Chris@0 | 6 # as published by the Free Software Foundation; either version 2 |
Chris@0 | 7 # of the License, or (at your option) any later version. |
Chris@909 | 8 # |
Chris@0 | 9 # This program is distributed in the hope that it will be useful, |
Chris@0 | 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
Chris@0 | 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
Chris@0 | 12 # GNU General Public License for more details. |
Chris@909 | 13 # |
Chris@0 | 14 # You should have received a copy of the GNU General Public License |
Chris@0 | 15 # along with this program; if not, write to the Free Software |
Chris@0 | 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
Chris@0 | 17 |
Chris@0 | 18 class ARCondition |
Chris@0 | 19 attr_reader :conditions |
Chris@909 | 20 |
Chris@0 | 21 def initialize(condition=nil) |
Chris@0 | 22 @conditions = ['1=1'] |
Chris@0 | 23 add(condition) if condition |
Chris@0 | 24 end |
Chris@909 | 25 |
Chris@0 | 26 def add(condition) |
Chris@0 | 27 if condition.is_a?(Array) |
Chris@0 | 28 @conditions.first << " AND (#{condition.first})" |
Chris@0 | 29 @conditions += condition[1..-1] |
Chris@0 | 30 elsif condition.is_a?(String) |
Chris@0 | 31 @conditions.first << " AND (#{condition})" |
Chris@0 | 32 else |
Chris@0 | 33 raise "Unsupported #{condition.class} condition: #{condition}" |
Chris@0 | 34 end |
Chris@0 | 35 self |
Chris@0 | 36 end |
Chris@0 | 37 |
Chris@0 | 38 def <<(condition) |
Chris@0 | 39 add(condition) |
Chris@0 | 40 end |
Chris@0 | 41 end |