Class: ActiveRecord::Associations::JoinDependency::Aliases
- Inherits:
-
Object
- Object
- ActiveRecord::Associations::JoinDependency::Aliases
- Defined in:
- lib/active_record/associations/join_dependency.rb
Overview
:nodoc:
Defined Under Namespace
Instance Method Summary collapse
- #column_alias(node, column) ⇒ Object
- #column_aliases(node) ⇒ Object
- #columns ⇒ Object
-
#initialize(tables) ⇒ Aliases
constructor
A new instance of Aliases.
Constructor Details
#initialize(tables) ⇒ Aliases
Returns a new instance of Aliases.
10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/active_record/associations/join_dependency.rb', line 10 def initialize(tables) @tables = tables @alias_cache = tables.each_with_object({}) { |table, h| h[table.node] = table.columns.each_with_object({}) { |column, i| i[column.name] = column.alias } } @columns_cache = tables.each_with_object({}) { |table, h| h[table.node] = table.columns } end |
Instance Method Details
#column_alias(node, column) ⇒ Object
30 31 32 |
# File 'lib/active_record/associations/join_dependency.rb', line 30 def column_alias(node, column) @alias_cache[node][column] end |
#column_aliases(node) ⇒ Object
26 27 28 |
# File 'lib/active_record/associations/join_dependency.rb', line 26 def column_aliases(node) @columns_cache[node] end |
#columns ⇒ Object
22 23 24 |
# File 'lib/active_record/associations/join_dependency.rb', line 22 def columns @tables.flat_map(&:column_aliases) end |