lib/arel/engines/sql/relations/table.rb in arel-0.1.2 vs lib/arel/engines/sql/relations/table.rb in arel-0.2.pre

- old
+ new

@@ -1,13 +1,25 @@ module Arel class Table < Relation include Recursion::BaseCase cattr_accessor :engine - attr_reader :name, :engine + attr_reader :name, :engine, :table_alias, :options - def initialize(name, engine = Table.engine) - @name, @engine = name.to_s, engine + def initialize(name, options = {}) + @name = name.to_s + + if options.is_a?(Hash) + @options = options + @engine = options[:engine] || Table.engine + @table_alias = options[:as].to_s if options[:as].present? + else + @engine = options # Table.new('foo', engine) + end + end + + def as(table_alias) + Table.new(name, options.merge(:as => table_alias)) end def attributes @attributes ||= columns.collect do |column| Attribute.new(self, column.name.to_sym)