class Rusql::BasicCondition
Constants
- TYPES
Attributes
right[RW]
type[R]
Public Instance Methods
and(condition)
click to toggle source
# File lib/rusql/basic_condition.rb, line 25 def and(condition) raise TypeException.new(Condition, condition.class) unless condition.is_a?(Condition) c = ComplexCondition.new c.type = :and c.add_condition(self) c.add_condition(condition) c end
or(condition)
click to toggle source
# File lib/rusql/basic_condition.rb, line 36 def or(condition) raise TypeException.new(Condition, condition.class) unless condition.is_a?(Condition) c = ComplexCondition.new c.type = :or c.add_condition(self) c.add_condition(condition) c end
to_s(indent_level: 1, multiline: true)
click to toggle source
# File lib/rusql/basic_condition.rb, line 47 def to_s(indent_level: 1, multiline: true) # dummy params to make it compatible with complex condition to_s case self.type when :equals if self.right.nil? "#{left.to_s} IS NULL" else "#{left.to_s} = #{convert_value(self.right)}" end when :greater_than "#{left.to_s} > #{convert_value(self.right)}" when :greater_than_or_equals "#{left.to_s} >= #{convert_value(self.right)}" when :in "#{left.to_s} IN (#{ self.right.map{|v| convert_value(v) }.join(", ") })" when :less_than "#{left.to_s} < #{convert_value(self.right)}" when :less_than_or_equals "#{left.to_s} <= #{convert_value(self.right)}" when :like "#{left.to_s} LIKE #{convert_value(self.right)}" when :not_equals if self.right.nil? "#{left.to_s} IS NOT NULL" else "#{left.to_s} != #{convert_value(self.right)}" end when :not_in "#{left.to_s} NOT IN (#{ self.right.map{|v| convert_value(v) }.join(", ") })" end end
type=(t)
click to toggle source
# File lib/rusql/basic_condition.rb, line 19 def type=(t) raise Exception.new("Expected type to be one of #{ TYPES.map(&:to_s).join(", ") }") unless TYPES.include?(t) @type = t end