diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2010-07-20 17:07:02 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2010-07-20 17:07:02 -0700 |
commit | 5b3433069fc94e120555ae4d218f6be19d2e51d4 (patch) | |
tree | 8f322e0f730267e880ebe335bfb99d7ca642e8e5 /lib/arel/algebra/attributes | |
parent | 2f6ae7592ff20c8ce02113f3d349b67911103023 (diff) | |
download | rails-5b3433069fc94e120555ae4d218f6be19d2e51d4.tar.gz rails-5b3433069fc94e120555ae4d218f6be19d2e51d4.tar.bz2 rails-5b3433069fc94e120555ae4d218f6be19d2e51d4.zip |
removing more meta programming
Diffstat (limited to 'lib/arel/algebra/attributes')
-rw-r--r-- | lib/arel/algebra/attributes/attribute.rb | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/arel/algebra/attributes/attribute.rb b/lib/arel/algebra/attributes/attribute.rb index f1085aaae0..9206b228c8 100644 --- a/lib/arel/algebra/attributes/attribute.rb +++ b/lib/arel/algebra/attributes/attribute.rb @@ -3,14 +3,22 @@ require 'set' module Arel class TypecastError < StandardError ; end class Attribute - attributes :relation, :name, :alias, :ancestor - deriving :== + 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 == other + super || + Attribute === other && + @relation == other.relation && + @name == other.name && + @alias == other.alias && + @ancestor == other.ancestor + end + def named?(hypothetical_name) (@alias || name).to_s == hypothetical_name.to_s end |