# File lib/arel/predications.rb, line 52 def not_in other case other when Arel::SelectManager Nodes::NotIn.new self, other.to_a.map { |x| x.id } when Range if other.exclude_end? left = Nodes::LessThan.new(self, other.begin) right = Nodes::GreaterThanOrEqual.new(self, other.end) Nodes::Or.new left, right else left = Nodes::LessThan.new(self, other.begin) right = Nodes::GreaterThan.new(self, other.end) Nodes::Or.new left, right end else Nodes::NotIn.new self, other end end