diff options
author | Carl Lerche <carllerche@mac.com> | 2010-03-22 16:26:00 -0700 |
---|---|---|
committer | Carl Lerche <carllerche@mac.com> | 2010-03-22 16:26:00 -0700 |
commit | 30fb25d3abfc002b85f290587b979d54c35a2e98 (patch) | |
tree | 5ea4b427f6abed9d9be1f45ad449b14e35271095 /lib/arel/engines | |
parent | d0b47c64e2c44ef1cc0e9cfb3dc8681599d4d1f3 (diff) | |
download | rails-30fb25d3abfc002b85f290587b979d54c35a2e98.tar.gz rails-30fb25d3abfc002b85f290587b979d54c35a2e98.tar.bz2 rails-30fb25d3abfc002b85f290587b979d54c35a2e98.zip |
Switch Arel::Relation to a module. This will allow for classes with Relation extended on them to represent relations themselves (as opposed to their instances being relations).
Diffstat (limited to 'lib/arel/engines')
-rw-r--r-- | lib/arel/engines/memory/relations/array.rb | 4 | ||||
-rw-r--r-- | lib/arel/engines/memory/relations/compound.rb | 2 | ||||
-rw-r--r-- | lib/arel/engines/memory/relations/operations.rb | 2 | ||||
-rw-r--r-- | lib/arel/engines/sql/relations/operations/join.rb | 2 | ||||
-rw-r--r-- | lib/arel/engines/sql/relations/relation.rb | 2 | ||||
-rw-r--r-- | lib/arel/engines/sql/relations/table.rb | 4 | ||||
-rw-r--r-- | lib/arel/engines/sql/relations/utilities/compound.rb | 2 | ||||
-rw-r--r-- | lib/arel/engines/sql/relations/utilities/nil.rb | 2 |
8 files changed, 11 insertions, 9 deletions
diff --git a/lib/arel/engines/memory/relations/array.rb b/lib/arel/engines/memory/relations/array.rb index 577e327b19..6486dcbcc1 100644 --- a/lib/arel/engines/memory/relations/array.rb +++ b/lib/arel/engines/memory/relations/array.rb @@ -1,5 +1,7 @@ module Arel - class Array < Relation + class Array + include Relation + attributes :array, :attribute_names_and_types include Recursion::BaseCase deriving :==, :initialize diff --git a/lib/arel/engines/memory/relations/compound.rb b/lib/arel/engines/memory/relations/compound.rb index 6dda92a6a1..0f3c24f9ec 100644 --- a/lib/arel/engines/memory/relations/compound.rb +++ b/lib/arel/engines/memory/relations/compound.rb @@ -1,5 +1,5 @@ module Arel - class Compound < Relation + class Compound delegate :array, :to => :relation def unoperated_rows diff --git a/lib/arel/engines/memory/relations/operations.rb b/lib/arel/engines/memory/relations/operations.rb index a5082715a1..5d7b7670b6 100644 --- a/lib/arel/engines/memory/relations/operations.rb +++ b/lib/arel/engines/memory/relations/operations.rb @@ -50,7 +50,7 @@ module Arel end end - class Join < Relation + class Join def eval result = [] relation1.call.each do |row1| diff --git a/lib/arel/engines/sql/relations/operations/join.rb b/lib/arel/engines/sql/relations/operations/join.rb index a3aaaa163b..7fad6400ad 100644 --- a/lib/arel/engines/sql/relations/operations/join.rb +++ b/lib/arel/engines/sql/relations/operations/join.rb @@ -1,5 +1,5 @@ module Arel - class Join < Relation + class Join def table_sql(formatter = Sql::TableReference.new(self)) relation1.externalize.table_sql(formatter) end diff --git a/lib/arel/engines/sql/relations/relation.rb b/lib/arel/engines/sql/relations/relation.rb index 5e8fc2e83e..f372589af1 100644 --- a/lib/arel/engines/sql/relations/relation.rb +++ b/lib/arel/engines/sql/relations/relation.rb @@ -1,5 +1,5 @@ module Arel - class Relation + module Relation @@connection_tables_primary_keys = {} def compiler diff --git a/lib/arel/engines/sql/relations/table.rb b/lib/arel/engines/sql/relations/table.rb index aa70eaaa28..8ee7a94357 100644 --- a/lib/arel/engines/sql/relations/table.rb +++ b/lib/arel/engines/sql/relations/table.rb @@ -1,6 +1,6 @@ module Arel - class Table < Relation - include Recursion::BaseCase + class Table + include Relation, Recursion::BaseCase cattr_accessor :engine, :tables attr_reader :name, :engine, :table_alias, :options diff --git a/lib/arel/engines/sql/relations/utilities/compound.rb b/lib/arel/engines/sql/relations/utilities/compound.rb index b8b0e7d269..55853be742 100644 --- a/lib/arel/engines/sql/relations/utilities/compound.rb +++ b/lib/arel/engines/sql/relations/utilities/compound.rb @@ -1,5 +1,5 @@ module Arel - class Compound < Relation + class Compound delegate :table, :table_sql, :to => :relation def build_query(*parts) diff --git a/lib/arel/engines/sql/relations/utilities/nil.rb b/lib/arel/engines/sql/relations/utilities/nil.rb index 519ea8acf1..0f7ca5d757 100644 --- a/lib/arel/engines/sql/relations/utilities/nil.rb +++ b/lib/arel/engines/sql/relations/utilities/nil.rb @@ -1,5 +1,5 @@ module Arel - class Nil < Relation + class Nil def table_sql(formatter = nil); '' end def name; '' end end |