Module: Arel::Predications

### Home Classes Methods

### In Files

- lib/arel/predications.rb

### Methods

- #between
- #does_not_match
- #does_not_match_all
- #does_not_match_any
- #eq
- #eq_all
- #eq_any
- #gt
- #gt_all
- #gt_any
- #gteq
- #gteq_all
- #gteq_any
- #in
- #in_all
- #in_any
- #lt
- #lt_all
- #lt_any
- #lteq
- #lteq_all
- #lteq_any
- #matches
- #matches_all
- #matches_any
- #not_between
- #not_eq
- #not_eq_all
- #not_eq_any
- #not_in
- #not_in_all
- #not_in_any

### Files

- History.txt
- MIT-LICENSE.txt

### Class/Module Index

Quicksearch

- Arel
- Arel::AliasPredication
- Arel::Attributes
- Arel::Attributes::Attribute
- Arel::Attributes::Boolean
- Arel::Attributes::Decimal
- Arel::Attributes::Float
- Arel::Attributes::Integer
- Arel::Attributes::String
- Arel::Attributes::Time
- Arel::Attributes::Undefined
- Arel::Collectors
- Arel::Collectors::Bind
- Arel::Collectors::PlainString
- Arel::Collectors::SQLString
- Arel::Crud
- Arel::DeleteManager
- Arel::Expressions
- Arel::FactoryMethods
- Arel::InsertManager
- Arel::Math
- Arel::Nodes
- Arel::Nodes::Addition
- Arel::Nodes::And
- Arel::Nodes::Ascending
- Arel::Nodes::Binary
- Arel::Nodes::BindParam
- Arel::Nodes::Count
- Arel::Nodes::CurrentRow
- Arel::Nodes::DeleteStatement
- Arel::Nodes::Descending
- Arel::Nodes::Distinct
- Arel::Nodes::Division
- Arel::Nodes::DoesNotMatch
- Arel::Nodes::Equality
- Arel::Nodes::Extract
- Arel::Nodes::False
- Arel::Nodes::Following
- Arel::Nodes::FullOuterJoin
- Arel::Nodes::Function
- Arel::Nodes::Grouping
- Arel::Nodes::In
- Arel::Nodes::InfixOperation
- Arel::Nodes::InnerJoin
- Arel::Nodes::InsertStatement
- Arel::Nodes::JoinSource
- Arel::Nodes::Matches
- Arel::Nodes::Multiplication
- Arel::Nodes::NamedFunction
- Arel::Nodes::NamedWindow
- Arel::Nodes::Node
- Arel::Nodes::OuterJoin
- Arel::Nodes::Over
- Arel::Nodes::Preceding
- Arel::Nodes::Range
- Arel::Nodes::RightOuterJoin
- Arel::Nodes::Rows
- Arel::Nodes::SelectCore
- Arel::Nodes::SelectStatement
- Arel::Nodes::SqlLiteral
- Arel::Nodes::StringJoin
- Arel::Nodes::Subtraction
- Arel::Nodes::TableAlias
- Arel::Nodes::True
- Arel::Nodes::Unary
- Arel::Nodes::UnqualifiedColumn
- Arel::Nodes::UpdateStatement
- Arel::Nodes::Values
- Arel::Nodes::Window
- Arel::Nodes::With
- Arel::Nodes::WithRecursive
- Arel::OrderPredications
- Arel::Predications
- Arel::SelectManager
- Arel::Table
- Arel::TreeManager
- Arel::UpdateManager
- Arel::Visitors
- Arel::Visitors::BindSubstitute
- Arel::Visitors::BindVisitor
- Arel::Visitors::DepthFirst
- Arel::Visitors::Dot
- Arel::Visitors::IBM_DB
- Arel::Visitors::Informix
- Arel::Visitors::MSSQL
- Arel::Visitors::MySQL
- Arel::Visitors::Oracle
- Arel::Visitors::PostgreSQL
- Arel::Visitors::Reduce
- Arel::Visitors::SQLite
- Arel::Visitors::ToSql
- Arel::Visitors::Visitor
- Arel::Visitors::WhereSql
- Arel::WindowPredications

No matching classes.

# Arel::Predications

### Public Instance Methods

between(other) click to toggle source

    # File lib/arel/predications.rb, line 27
    def between other
      if other.begin == -Float::INFINITY
        if other.end == Float::INFINITY
          not_in([])
        elsif other.exclude_end?
          lt(other.end)
        else
          lteq(other.end)
        end
      elsif other.end == Float::INFINITY
        gteq(other.begin)
      elsif other.exclude_end?
        gteq(other.begin).and(lt(other.end))
      else
        left = quoted_node(other.begin)
        right = quoted_node(other.end)
        Nodes::Between.new(self, left.and(right))
      end
    end

does_not_match(other, escape = nil) click to toggle source

    # File lib/arel/predications.rb, line 133
    def does_not_match other, escape = nil
      Nodes::DoesNotMatch.new self, quoted_node(other), escape
    end

does_not_match_all(others, escape = nil) click to toggle source

    # File lib/arel/predications.rb, line 141
    def does_not_match_all others, escape = nil
      grouping_all :does_not_match, others, escape
    end

does_not_match_any(others, escape = nil) click to toggle source

    # File lib/arel/predications.rb, line 137
    def does_not_match_any others, escape = nil
      grouping_any :does_not_match, others, escape
    end

eq(other) click to toggle source

    # File lib/arel/predications.rb, line 15
    def eq other
      Nodes::Equality.new self, quoted_node(other)
    end

eq_all(others) click to toggle source

    # File lib/arel/predications.rb, line 23
    def eq_all others
      grouping_all :eq, quoted_array(others)
    end

eq_any(others) click to toggle source

    # File lib/arel/predications.rb, line 19
    def eq_any others
      grouping_any :eq, others
    end

gt(right) click to toggle source

    # File lib/arel/predications.rb, line 157
    def gt right
      Nodes::GreaterThan.new self, quoted_node(right)
    end

gt_all(others) click to toggle source

    # File lib/arel/predications.rb, line 165
    def gt_all others
      grouping_all :gt, others
    end

gt_any(others) click to toggle source

    # File lib/arel/predications.rb, line 161
    def gt_any others
      grouping_any :gt, others
    end

gteq(right) click to toggle source

    # File lib/arel/predications.rb, line 145
    def gteq right
      Nodes::GreaterThanOrEqual.new self, quoted_node(right)
    end

gteq_all(others) click to toggle source

    # File lib/arel/predications.rb, line 153
    def gteq_all others
      grouping_all :gteq, others
    end

gteq_any(others) click to toggle source

    # File lib/arel/predications.rb, line 149
    def gteq_any others
      grouping_any :gteq, others
    end

in(other) click to toggle source

    # File lib/arel/predications.rb, line 47
    def in other
      case other
      when Arel::SelectManager
        Arel::Nodes::In.new(self, other.ast)
      when Range
        if $VERBOSE
          warn Passing a range to `#in` is deprecated. Call `#between`, instead.
        end
        between(other)
      when Enumerable
        Nodes::In.new self, quoted_array(other)
      else
        Nodes::In.new self, quoted_node(other)
      end
    end

in_all(others) click to toggle source

    # File lib/arel/predications.rb, line 69
    def in_all others
      grouping_all :in, others
    end

in_any(others) click to toggle source

    # File lib/arel/predications.rb, line 65
    def in_any others
      grouping_any :in, others
    end

lt(right) click to toggle source

    # File lib/arel/predications.rb, line 169
    def lt right
      Nodes::LessThan.new self, quoted_node(right)
    end

lt_all(others) click to toggle source

    # File lib/arel/predications.rb, line 177
    def lt_all others
      grouping_all :lt, others
    end

lt_any(others) click to toggle source

    # File lib/arel/predications.rb, line 173
    def lt_any others
      grouping_any :lt, others
    end

lteq(right) click to toggle source

    # File lib/arel/predications.rb, line 181
    def lteq right
      Nodes::LessThanOrEqual.new self, quoted_node(right)
    end

lteq_all(others) click to toggle source

    # File lib/arel/predications.rb, line 189
    def lteq_all others
      grouping_all :lteq, others
    end

lteq_any(others) click to toggle source

    # File lib/arel/predications.rb, line 185
    def lteq_any others
      grouping_any :lteq, others
    end

matches(other, escape = nil) click to toggle source

    # File lib/arel/predications.rb, line 121
    def matches other, escape = nil
      Nodes::Matches.new self, quoted_node(other), escape
    end

matches_all(others, escape = nil) click to toggle source

    # File lib/arel/predications.rb, line 129
    def matches_all others, escape = nil
      grouping_all :matches, others, escape
    end

matches_any(others, escape = nil) click to toggle source

    # File lib/arel/predications.rb, line 125
    def matches_any others, escape = nil
      grouping_any :matches, others, escape
    end

not_between(other) click to toggle source

    # File lib/arel/predications.rb, line 73
    def not_between other
      if other.begin == -Float::INFINITY # The range begins with negative infinity
        if other.end == Float::INFINITY
          self.in([])
        elsif other.exclude_end?
          gteq(other.end)
        else
          gt(other.end)
        end
      elsif other.end == Float::INFINITY
        lt(other.begin)
      else
        left = lt(other.begin)
        right = if other.exclude_end?
          gteq(other.end)
        else
          gt(other.end)
        end
        left.or(right)
      end
    end

not_eq(other) click to toggle source

    # File lib/arel/predications.rb, line 3
    def not_eq other
      Nodes::NotEqual.new self, quoted_node(other)
    end

not_eq_all(others) click to toggle source

    # File lib/arel/predications.rb, line 11
    def not_eq_all others
      grouping_all :not_eq, others
    end

not_eq_any(others) click to toggle source

    # File lib/arel/predications.rb, line 7
    def not_eq_any others
      grouping_any :not_eq, others
    end

not_in(other) click to toggle source

    # File lib/arel/predications.rb, line 95
    def not_in other
      case other
      when Arel::SelectManager
        Arel::Nodes::NotIn.new(self, other.ast)
      when Range
        if $VERBOSE
          warn Passing a range to `#not_in` is deprecated. Call `#not_between`, instead.
        end
        not_between(other)
      when Enumerable
        Nodes::NotIn.new self, quoted_array(other)
      else
        Nodes::NotIn.new self, quoted_node(other)
      end
    end

not_in_all(others) click to toggle source

    # File lib/arel/predications.rb, line 117
    def not_in_all others
      grouping_all :not_in, others
    end

not_in_any(others) click to toggle source

    # File lib/arel/predications.rb, line 113
    def not_in_any others
      grouping_any :not_in, others
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.