aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/arel/table.rb7
-rw-r--r--spec/arel/table_spec.rb12
2 files changed, 16 insertions, 3 deletions
diff --git a/lib/arel/table.rb b/lib/arel/table.rb
index 4c0404b492..1b37a3b66b 100644
--- a/lib/arel/table.rb
+++ b/lib/arel/table.rb
@@ -6,9 +6,10 @@ module Arel
attr_reader :name, :engine
def initialize name, engine = Table.engine
- @name = name
- @engine = engine
- @columns = nil
+ @name = name
+ @engine = engine
+ @engine = engine[:engine] if Hash === engine
+ @columns = nil
end
def tm
diff --git a/spec/arel/table_spec.rb b/spec/arel/table_spec.rb
index b68fdd5a3d..67024f5c52 100644
--- a/spec/arel/table_spec.rb
+++ b/spec/arel/table_spec.rb
@@ -6,6 +6,18 @@ module Arel
@relation = Table.new(:users)
end
+ describe 'new' do
+ it 'should accept an engine' do
+ rel = Table.new :users, 'foo'
+ rel.engine.should == 'foo'
+ end
+
+ it 'should accept a hash' do
+ rel = Table.new :users, :engine => 'foo'
+ rel.engine.should == 'foo'
+ end
+ end
+
describe 'where' do
it "returns a tree manager" do
manager = @relation.where @relation[:id].eq 1