Sha256: 5ce2abd620fa24834ba6e31632bd7254f5f5511f3a7f9d8929956d927cea4b38

Contents?: true

Size: 951 Bytes

Versions: 119

Compression:

Stored size: 951 Bytes

Contents

# frozen_string_literal: true

module Arel # :nodoc: all
  ###
  # Methods for creating various nodes
  module FactoryMethods
    def create_true
      Arel::Nodes::True.new
    end

    def create_false
      Arel::Nodes::False.new
    end

    def create_table_alias(relation, name)
      Nodes::TableAlias.new(relation, name)
    end

    def create_join(to, constraint = nil, klass = Nodes::InnerJoin)
      klass.new(to, constraint)
    end

    def create_string_join(to)
      create_join to, nil, Nodes::StringJoin
    end

    def create_and(clauses)
      Nodes::And.new clauses
    end

    def create_on(expr)
      Nodes::On.new expr
    end

    def grouping(expr)
      Nodes::Grouping.new expr
    end

    ###
    # Create a LOWER() function
    def lower(column)
      Nodes::NamedFunction.new "LOWER", [Nodes.build_quoted(column)]
    end

    def coalesce(*exprs)
      Nodes::NamedFunction.new "COALESCE", exprs
    end
  end
end

Version data entries

119 entries across 115 versions & 11 rubygems

Version Path
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.7/lib/arel/factory_methods.rb
activerecord-7.0.8.7 lib/arel/factory_methods.rb
activerecord-7.0.8.6 lib/arel/factory_methods.rb
activerecord-6.1.7.10 lib/arel/factory_methods.rb
activerecord-6.1.7.9 lib/arel/factory_methods.rb
activerecord-7.0.8.5 lib/arel/factory_methods.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8.4/lib/arel/factory_methods.rb
cm-admin-1.5.22 vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.5.1/lib/arel/factory_methods.rb
cm-admin-1.5.21 vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.5.1/lib/arel/factory_methods.rb
cm-admin-1.5.20 vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.5.1/lib/arel/factory_methods.rb
activerecord-7.0.8.4 lib/arel/factory_methods.rb
activerecord-6.1.7.8 lib/arel/factory_methods.rb
activerecord-7.0.8.1 lib/arel/factory_methods.rb
activerecord-6.1.7.7 lib/arel/factory_methods.rb
scrapbook-0.3.2 vendor/ruby/2.7.0/gems/activerecord-6.1.6.1/lib/arel/factory_methods.rb
scrapbook-0.3.2 vendor/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/arel/factory_methods.rb
scrapbook-0.3.2 vendor/ruby/2.7.0/gems/activerecord-7.0.2.3/lib/arel/factory_methods.rb
activerecord-7.0.8 lib/arel/factory_methods.rb
activerecord-7.0.7.2 lib/arel/factory_methods.rb
activerecord-6.1.7.6 lib/arel/factory_methods.rb