aboutsummaryrefslogtreecommitdiffstats
path: root/lib/active_relation/relations/alias.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/active_relation/relations/alias.rb')
-rw-r--r--lib/active_relation/relations/alias.rb56
1 files changed, 27 insertions, 29 deletions
diff --git a/lib/active_relation/relations/alias.rb b/lib/active_relation/relations/alias.rb
index 2d1b9c1476..63a92ccba1 100644
--- a/lib/active_relation/relations/alias.rb
+++ b/lib/active_relation/relations/alias.rb
@@ -1,36 +1,34 @@
module ActiveRelation
- module Relations
- class Alias < Compound
- attr_reader :alias
- alias_method :name, :alias
-
- def initialize(relation, aliaz)
- @relation, @alias = relation, aliaz
- end
-
- def attributes
- relation.attributes.collect(&method(:substitute))
- end
+ class Alias < Compound
+ attr_reader :alias
+ alias_method :name, :alias
- def ==(other)
- relation == other.relation and self.alias == other.alias
- end
-
- protected
- def table_sql
- "#{quote_table_name(relation.name)} AS #{quote_table_name(@alias)}"
- end
-
- def attribute(name)
- if unaliased_attribute = relation[name]
- substitute(unaliased_attribute)
- end
- end
+ def initialize(relation, aliaz)
+ @relation, @alias = relation, aliaz
+ end
- private
- def substitute(attribute)
- Primitives::Attribute.new(self, attribute.name, attribute.alias)
+ def attributes
+ relation.attributes.collect(&method(:substitute))
+ end
+
+ def ==(other)
+ relation == other.relation and self.alias == other.alias
+ end
+
+ protected
+ def table_sql
+ "#{quote_table_name(relation.name)} AS #{quote_table_name(@alias)}"
+ end
+
+ def attribute(name)
+ if unaliased_attribute = relation[name]
+ substitute(unaliased_attribute)
end
end
+
+ private
+ def substitute(attribute)
+ Attribute.new(self, attribute.name, attribute.alias)
+ end
end
end \ No newline at end of file