Module: Arel

Defined in:
lib/arel/crud.rb,
lib/arel.rb,
lib/arel/math.rb,
lib/arel/table.rb,
lib/arel/errors.rb,
lib/arel/nodes/in.rb,
lib/arel/visitors.rb,
lib/arel/nodes/and.rb,
lib/arel/nodes/case.rb,
lib/arel/nodes/node.rb,
lib/arel/nodes/over.rb,
lib/arel/nodes/true.rb,
lib/arel/nodes/with.rb,
lib/arel/expressions.rb,
lib/arel/nodes/count.rb,
lib/arel/nodes/false.rb,
lib/arel/nodes/unary.rb,
lib/arel/nodes/binary.rb,
lib/arel/nodes/casted.rb,
lib/arel/nodes/regexp.rb,
lib/arel/nodes/window.rb,
lib/arel/predications.rb,
lib/arel/tree_manager.rb,
lib/arel/visitors/dot.rb,
lib/arel/nodes/comment.rb,
lib/arel/nodes/extract.rb,
lib/arel/nodes/matches.rb,
lib/arel/delete_manager.rb,
lib/arel/insert_manager.rb,
lib/arel/nodes/equality.rb,
lib/arel/nodes/function.rb,
lib/arel/nodes/grouping.rb,
lib/arel/nodes/ordering.rb,
lib/arel/nodes/terminal.rb,
lib/arel/select_manager.rb,
lib/arel/update_manager.rb,
lib/arel/visitors/mysql.rb,
lib/arel/collectors/bind.rb,
lib/arel/factory_methods.rb,
lib/arel/nodes/ascending.rb,
lib/arel/visitors/sqlite.rb,
lib/arel/visitors/to_sql.rb,
lib/arel/nodes/bind_param.rb,
lib/arel/nodes/descending.rb,
lib/arel/nodes/inner_join.rb,
lib/arel/nodes/outer_join.rb,
lib/arel/visitors/visitor.rb,
lib/arel/alias_predication.rb,
lib/arel/nodes/join_source.rb,
lib/arel/nodes/select_core.rb,
lib/arel/nodes/sql_literal.rb,
lib/arel/nodes/string_join.rb,
lib/arel/nodes/table_alias.rb,
lib/arel/nodes/values_list.rb,
lib/arel/order_predications.rb,
lib/arel/visitors/postgresql.rb,
lib/arel/window_predications.rb,
lib/arel/attributes/attribute.rb,
lib/arel/collectors/composite.rb,
lib/arel/nodes/homogeneous_in.rb,
lib/arel/nodes/named_function.rb,
lib/arel/collectors/sql_string.rb,
lib/arel/nodes/full_outer_join.rb,
lib/arel/nodes/infix_operation.rb,
lib/arel/nodes/node_expression.rb,
lib/arel/nodes/unary_operation.rb,
lib/arel/nodes/delete_statement.rb,
lib/arel/nodes/insert_statement.rb,
lib/arel/nodes/right_outer_join.rb,
lib/arel/nodes/select_statement.rb,
lib/arel/nodes/update_statement.rb,
lib/arel/collectors/plain_string.rb,
lib/arel/nodes/unqualified_column.rb,
lib/arel/collectors/substitute_binds.rb
more...

Overview

:nodoc: all

Defined Under Namespace

Modules: AliasPredication, Attributes, Collectors, Crud, Expressions, FactoryMethods, Math, Nodes, OrderPredications, Predications, Visitors, WindowPredications Classes: ArelError, DeleteManager, EmptyJoinError, InsertManager, SelectManager, Table, TreeManager, UpdateManager

Constant Summary collapse

VERSION =
"10.0.0"
Attribute =
Attributes::Attribute

Class Method Summary collapse

Class Method Details

.arel_node?(value) ⇒ Boolean

:nodoc:

Returns:

  • (Boolean)
[View source]

45
46
47
# File 'lib/arel.rb', line 45

def self.arel_node?(value) # :nodoc:
  value.is_a?(Arel::Nodes::Node) || value.is_a?(Arel::Attribute) || value.is_a?(Arel::Nodes::SqlLiteral)
end

.fetch_attribute(value, &block) ⇒ Object

:nodoc:

[View source]

49
50
51
52
53
# File 'lib/arel.rb', line 49

def self.fetch_attribute(value, &block) # :nodoc:
  unless String === value
    value.fetch_attribute(&block)
  end
end

.sql(raw_sql) ⇒ Object

Wrap a known-safe SQL string for passing to query methods, e.g.

Post.order(Arel.sql("length(title)")).last

Great caution should be taken to avoid SQL injection vulnerabilities. This method should not be used with unsafe values such as request parameters or model attributes.

[View source]

37
38
39
# File 'lib/arel.rb', line 37

def self.sql(raw_sql)
  Arel::Nodes::SqlLiteral.new raw_sql
end

.starObject

:nodoc:

[View source]

41
42
43
# File 'lib/arel.rb', line 41

def self.star # :nodoc:
  sql "*"
end