diff options
-rw-r--r-- | lib/sql_algebra.rb | 3 | ||||
-rw-r--r-- | lib/sql_algebra/relations/table_relation.rb | 5 | ||||
-rw-r--r-- | lib/sql_algebra/sql/select.rb | 23 | ||||
-rw-r--r-- | spec/relations/table_relation_spec.rb | 5 | ||||
-rw-r--r-- | spec/spec_helper.rb | 7 | ||||
-rw-r--r-- | spec/sql/select_spec.rb | 19 |
6 files changed, 16 insertions, 46 deletions
diff --git a/lib/sql_algebra.rb b/lib/sql_algebra.rb index 8adbed150d..79bdc8a449 100644 --- a/lib/sql_algebra.rb +++ b/lib/sql_algebra.rb @@ -29,4 +29,5 @@ require 'sql_algebra/predicates/match_predicate' require 'sql_algebra/extensions/range' -require 'sql_algebra/sql/select'
\ No newline at end of file +require 'sql_algebra/sql_builder/sql_builder' +require 'sql_algebra/sql_builder/select_builder'
\ No newline at end of file diff --git a/lib/sql_algebra/relations/table_relation.rb b/lib/sql_algebra/relations/table_relation.rb index dd4987c3e1..17cdbab61a 100644 --- a/lib/sql_algebra/relations/table_relation.rb +++ b/lib/sql_algebra/relations/table_relation.rb @@ -6,6 +6,9 @@ class TableRelation < Relation end def to_sql - Select.new(:*).from(table) + SelectBuilder.new do + select :* + from table + end end end
\ No newline at end of file diff --git a/lib/sql_algebra/sql/select.rb b/lib/sql_algebra/sql/select.rb deleted file mode 100644 index da92ad3a52..0000000000 --- a/lib/sql_algebra/sql/select.rb +++ /dev/null @@ -1,23 +0,0 @@ -class Select - attr_reader :attributes, :tables, :predicates - - def initialize(*attributes) - @attributes = attributes - end - - def from(*tables) - returning self do |select| - @tables = tables - end - end - - def where(*predicates) - returning self do |select| - @predicates = predicates - end - end - - def ==(other) - attributes == other.attributes and tables == other.tables and predicates == other.predicates - end -end
\ No newline at end of file diff --git a/spec/relations/table_relation_spec.rb b/spec/relations/table_relation_spec.rb index dd86f83294..a0647aa541 100644 --- a/spec/relations/table_relation_spec.rb +++ b/spec/relations/table_relation_spec.rb @@ -2,6 +2,9 @@ require File.join(File.dirname(__FILE__), '..', 'spec_helper') describe TableRelation, '#to_sql' do it "returns a simple SELECT query" do - TableRelation.new(:users).to_sql.should == Select.new(:*).from(:users) + TableRelation.new(:users).to_sql.should == SelectBuilder.new do |s| + select :* + from :users + end end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 30c1f65f57..a764fff03e 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,3 +1,8 @@ require 'rubygems' require 'spec' -require File.join(File.dirname(__FILE__), '..', 'lib', 'sql_algebra')
\ No newline at end of file +require File.join(File.dirname(__FILE__), '..', 'lib', 'sql_algebra') +require File.join(File.dirname(__FILE__), 'spec_helpers', 'be_like') + +Spec::Runner.configure do |config| + config.include(BeLikeMatcher) +end
\ No newline at end of file diff --git a/spec/sql/select_spec.rb b/spec/sql/select_spec.rb deleted file mode 100644 index 7d40a20a5b..0000000000 --- a/spec/sql/select_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -require File.join(File.dirname(__FILE__), '..', 'spec_helper') - -describe Select, '==' do - it "obtains for queries with identical attributes" do - Select.new(:foo).should == Select.new(:foo) - Select.new(:bar).should_not == Select.new(:foo) - end - - it "obtains for queries with identical tables" do - Select.new(:foo).from(:bar).should == Select.new(:foo).from(:bar) - Select.new(:foo).from(:bar).should_not == Select.new(:foo).from(:foo) - end - - it "obtains for queries with identical predicates" do - Select.new(:foo).from(:bar).where(:baz).should == Select.new(:foo).from(:bar).where(:baz) - Select.new(:foo).from(:bar).where(:baz).should_not == Select.new(:foo).from(:bar).where(:foo) - end - -end
\ No newline at end of file |