diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2010-07-27 20:33:59 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2010-07-27 20:33:59 -0700 |
commit | bf6fbc4591bd7fe696f48f1db06eec714c0ec790 (patch) | |
tree | 02fb2cc426e264ff070571efd288bf7dc3bf90ee /lib/arel/algebra | |
parent | c9fa1b47f83f6d07b91fe10922b0e8d042933c1f (diff) | |
download | rails-bf6fbc4591bd7fe696f48f1db06eec714c0ec790.tar.gz rails-bf6fbc4591bd7fe696f48f1db06eec714c0ec790.tar.bz2 rails-bf6fbc4591bd7fe696f48f1db06eec714c0ec790.zip |
PERF: reducing delegate methods
Diffstat (limited to 'lib/arel/algebra')
-rw-r--r-- | lib/arel/algebra/attributes/attribute.rb | 9 | ||||
-rw-r--r-- | lib/arel/algebra/relations/relation.rb | 4 |
2 files changed, 12 insertions, 1 deletions
diff --git a/lib/arel/algebra/attributes/attribute.rb b/lib/arel/algebra/attributes/attribute.rb index 0ad9382a52..770e0950c5 100644 --- a/lib/arel/algebra/attributes/attribute.rb +++ b/lib/arel/algebra/attributes/attribute.rb @@ -4,12 +4,19 @@ module Arel class TypecastError < StandardError ; end class Attribute attr_reader :relation, :name, :alias, :ancestor - delegate :engine, :christener, :to => :relation def initialize(relation, name, options = {}) @relation, @name, @alias, @ancestor = relation, name, options[:alias], options[:ancestor] end + def engine + @relation.engine + end + + def christener + @relation.christener + end + def == other super || Attribute === other && diff --git a/lib/arel/algebra/relations/relation.rb b/lib/arel/algebra/relations/relation.rb index 9936b9689f..cb7b30bb3c 100644 --- a/lib/arel/algebra/relations/relation.rb +++ b/lib/arel/algebra/relations/relation.rb @@ -41,6 +41,10 @@ module Arel end def christener + puts "#" * 50 + puts self.class.name + puts caller + puts "#" * 50 @christener ||= Sql::Christener.new end |