Module: Arel

Defined in:
lib/arel/extensions/all.rb,
lib/arel/enhance.rb,
lib/arel/extensions.rb,
lib/arel/middleware.rb,
lib/arel/sql_to_arel.rb,
lib/arel/transformer.rb,
lib/arel/enhance/node.rb,
lib/arel/enhance/path.rb,
lib/arel/enhance/query.rb,
lib/arel/extensions/any.rb,
lib/arel/extensions/dot.rb,
lib/arel/extensions/row.rb,
lib/arel/extensions/top.rb,
lib/arel/enhance/visitor.rb,
lib/arel/extensions/case.rb,
lib/arel/extensions/into.rb,
lib/arel/extensions/node.rb,
lib/arel/extensions/trim.rb,
lib/arel/extensions/true.rb,
lib/arel/extensions/user.rb,
lib/arel/extensions/array.rb,
lib/arel/extensions/false.rb,
lib/arel/extensions/infer.rb,
lib/arel/extensions/least.rb,
lib/arel/extensions/table.rb,
lib/arel/extensions/unary.rb,
lib/arel/middleware/chain.rb,
lib/arel/enhance/path_node.rb,
lib/arel/extensions/binary.rb,
lib/arel/extensions/exists.rb,
lib/arel/extensions/modulo.rb,
lib/arel/extensions/to_sql.rb,
lib/arel/middleware/result.rb,
lib/arel/sql_to_arel/error.rb,
lib/arel/extensions/lateral.rb,
lib/arel/extensions/null_if.rb,
lib/arel/extensions/overlap.rb,
lib/arel/extensions/overlay.rb,
lib/arel/extensions/prepare.rb,
lib/arel/extensions/similar.rb,
lib/arel/extensions/unknown.rb,
lib/arel/middleware/railtie.rb,
lib/arel/sql_to_arel/result.rb,
lib/arel/extensions/absolute.rb,
lib/arel/extensions/coalesce.rb,
lib/arel/extensions/conflict.rb,
lib/arel/extensions/contains.rb,
lib/arel/extensions/equality.rb,
lib/arel/extensions/function.rb,
lib/arel/extensions/greatest.rb,
lib/arel/extensions/ordering.rb,
lib/arel/extensions/overlaps.rb,
lib/arel/extensions/position.rb,
lib/arel/extensions/cube_root.rb,
lib/arel/extensions/dealocate.rb,
lib/arel/extensions/factorial.rb,
lib/arel/extensions/not_equal.rb,
lib/arel/extensions/substring.rb,
lib/arel/extensions/type_cast.rb,
lib/arel/enhance/query_methods.rb,
lib/arel/extensions/assignment.rb,
lib/arel/extensions/bind_param.rb,
lib/arel/extensions/bit_string.rb,
lib/arel/extensions/cross_join.rb,
lib/arel/extensions/except_all.rb,
lib/arel/extensions/local_time.rb,
lib/arel/extensions/bitwise_xor.rb,
lib/arel/extensions/current_row.rb,
lib/arel/extensions/indirection.rb,
lib/arel/extensions/not_between.rb,
lib/arel/extensions/not_similar.rb,
lib/arel/extensions/select_core.rb,
lib/arel/extensions/square_root.rb,
lib/arel/extensions/transaction.rb,
lib/arel/extensions/values_list.rb,
lib/arel/middleware/no_op_cache.rb,
lib/arel/extensions/at_time_zone.rb,
lib/arel/extensions/contained_by.rb,
lib/arel/extensions/current_date.rb,
lib/arel/extensions/current_role.rb,
lib/arel/extensions/current_time.rb,
lib/arel/extensions/current_user.rb,
lib/arel/extensions/extract_from.rb,
lib/arel/extensions/natural_join.rb,
lib/arel/extensions/session_user.rb,
lib/arel/extensions/tree_manager.rb,
lib/arel/extensions/variable_set.rb,
lib/arel/extensions/distinct_from.rb,
lib/arel/extensions/intersect_all.rb,
lib/arel/extensions/variable_show.rb,
lib/arel/extensions/current_schema.rb,
lib/arel/extensions/default_values.rb,
lib/arel/extensions/delete_manager.rb,
lib/arel/extensions/exponentiation.rb,
lib/arel/extensions/insert_manager.rb,
lib/arel/extensions/json_get_field.rb,
lib/arel/extensions/named_argument.rb,
lib/arel/extensions/named_function.rb,
lib/arel/extensions/range_function.rb,
lib/arel/extensions/select_manager.rb,
lib/arel/extensions/set_to_default.rb,
lib/arel/extensions/update_manager.rb,
lib/arel/middleware/cache_accessor.rb,
lib/arel/extensions/array_subselect.rb,
lib/arel/extensions/contains_equals.rb,
lib/arel/extensions/current_catalog.rb,
lib/arel/extensions/infix_operation.rb,
lib/arel/extensions/json_get_object.rb,
lib/arel/extensions/local_timestamp.rb,
lib/arel/extensions/unary_operation.rb,
lib/arel/extensions/with_ordinality.rb,
lib/arel/middleware/to_sql_executor.rb,
lib/arel/extensions/delete_statement.rb,
lib/arel/extensions/insert_statement.rb,
lib/arel/extensions/jsonb_key_exists.rb,
lib/arel/extensions/select_statement.rb,
lib/arel/extensions/update_statement.rb,
lib/arel/extensions/between_symmetric.rb,
lib/arel/extensions/current_timestamp.rb,
lib/arel/extensions/not_distinct_from.rb,
lib/arel/middleware/database_executor.rb,
lib/arel/middleware/to_sql_middleware.rb,
lib/arel/sql_to_arel/pg_query_visitor.rb,
lib/arel/middleware/postgresql_adapter.rb,
lib/arel/extensions/json_path_get_field.rb,
lib/arel/extensions/time_with_precision.rb,
lib/arel/transformer/prefix_schema_name.rb,
lib/arel/extensions/attributes_attribute.rb,
lib/arel/extensions/json_path_get_object.rb,
lib/arel/extensions/jsonb_all_key_exists.rb,
lib/arel/extensions/jsonb_any_key_exists.rb,
lib/arel/extensions/current_of_expression.rb,
lib/arel/extensions/not_between_symmetric.rb,
lib/arel/extensions/contained_within_equals.rb,
lib/arel/middleware/active_record_extension.rb,
lib/arel/enhance/context_enhancer/arel_table.rb,
lib/arel/transformer/replace_table_with_subquery.rb,
lib/arel/extensions/active_record_type_caster_map.rb,
lib/arel/sql_to_arel/pg_query_visitor/frame_options.rb,
lib/arel/extensions/active_record_type_caster_connection.rb,
lib/arel/extensions/active_model_attribute_with_cast_value.rb,
lib/arel/extensions/active_record_relation_query_attribute.rb

Overview

rubocop:disable Naming/MethodName rubocop:disable Naming/UncommunicativeMethodParamName

Defined Under Namespace

Modules: Attributes, Enhance, Extensions, Middleware, Nodes, SqlToArel, Transformer, Visitors Classes: DeleteManager, InsertManager, SelectManager, Table, TreeManager, UpdateManager

Class Method Summary collapse

Class Method Details

.enhance(object, context_enhancers = Arel::Enhance::Visitor::DEFAULT_CONTEXT_ENHANCERS) ⇒ Object



12
13
14
15
16
# File 'lib/arel/enhance.rb', line 12

def self.enhance(object, context_enhancers = Arel::Enhance::Visitor::DEFAULT_CONTEXT_ENHANCERS)
  return object if object.is_a?(Arel::Enhance::Node)

  Arel::Enhance::Visitor.new.accept(object, context_enhancers)
end

.middlewareObject



24
25
26
# File 'lib/arel/middleware.rb', line 24

def self.middleware
  Arel::Middleware.current_chain
end

.sql_to_arel(sql, binds: []) ⇒ Object



9
10
11
# File 'lib/arel/sql_to_arel.rb', line 9

def self.sql_to_arel(sql, binds: [])
  SqlToArel::PgQueryVisitor.new.accept(sql, binds)
end