sqldsl 1.4.2 → 1.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/join_builder.rb +10 -0
- data/lib/select.rb +27 -7
- data/lib/sqldsl.rb +1 -1
- data/rakefile.rb +1 -1
- data/test/inner_join_builder_test.rb +3 -3
- data/test/select_test.rb +7 -3
- metadata +5 -4
- data/lib/inner_join_builder.rb +0 -9
data/lib/join_builder.rb
ADDED
data/lib/select.rb
CHANGED
@@ -68,18 +68,39 @@ class Select < SqlStatement
|
|
68
68
|
self
|
69
69
|
end
|
70
70
|
|
71
|
-
# call-seq: select.inner_join ->
|
71
|
+
# call-seq: select.inner_join -> a_join_builder
|
72
72
|
#
|
73
|
-
# Returns
|
73
|
+
# Returns a JoinBuilder instance.
|
74
74
|
#
|
75
75
|
# Select.all.from[:table1].inner_join
|
76
|
-
# #=> #<
|
76
|
+
# #=> #<JoinBuilder:0x654f4 @select_builder=#<Select:0x65968 @tables=[:table1], @to_sql="select * from table1">>
|
77
77
|
def inner_join
|
78
|
-
|
78
|
+
JoinBuilder.new(self, "inner")
|
79
79
|
end
|
80
80
|
|
81
|
-
|
82
|
-
|
81
|
+
# call-seq: select.left_join -> a_join_builder
|
82
|
+
#
|
83
|
+
# Returns a JoinBuilder instance.
|
84
|
+
#
|
85
|
+
# Select.all.from[:table1].left_join
|
86
|
+
# #=> #<JoinBuilder:0x654f4 @select_builder=#<Select:0x65968 @tables=[:table1], @to_sql="select * from table1">>
|
87
|
+
def left_join
|
88
|
+
JoinBuilder.new(self, "left")
|
89
|
+
end
|
90
|
+
|
91
|
+
# call-seq: select.right_join -> a_join_builder
|
92
|
+
#
|
93
|
+
# Returns a JoinBuilder instance.
|
94
|
+
#
|
95
|
+
# Select.all.from[:table1].right_join
|
96
|
+
# #=> #<JoinBuilder:0x654f4 @select_builder=#<Select:0x65968 @tables=[:table1], @to_sql="select * from table1">>
|
97
|
+
def right_join
|
98
|
+
JoinBuilder.new(self, "right")
|
99
|
+
end
|
100
|
+
|
101
|
+
def join_table(join_type, table_names) #:nodoc:
|
102
|
+
|
103
|
+
@to_sql << " #{join_type} join "
|
83
104
|
table_names.flatten!
|
84
105
|
@to_sql += table_names.inject([]) do |result, element|
|
85
106
|
if element.to_s =~ / as /
|
@@ -92,7 +113,6 @@ class Select < SqlStatement
|
|
92
113
|
end.to_sql
|
93
114
|
self
|
94
115
|
end
|
95
|
-
|
96
116
|
# call-seq: sql_statement.on { block } -> a_sql_statement
|
97
117
|
#
|
98
118
|
# Creates a new OnWhereBuilder instance, passing the block as a parameter, then executes to_sql on the OnWhereBuilder instance.
|
data/lib/sqldsl.rb
CHANGED
@@ -6,7 +6,7 @@ require File.dirname(__FILE__) + '/string.rb'
|
|
6
6
|
require File.dirname(__FILE__) + '/numeric.rb'
|
7
7
|
require File.dirname(__FILE__) + '/time.rb'
|
8
8
|
require File.dirname(__FILE__) + '/sql_statement.rb'
|
9
|
-
require File.dirname(__FILE__) + '/
|
9
|
+
require File.dirname(__FILE__) + '/join_builder.rb'
|
10
10
|
require File.dirname(__FILE__) + '/where_builder.rb'
|
11
11
|
require File.dirname(__FILE__) + '/and_where_builder.rb'
|
12
12
|
require File.dirname(__FILE__) + '/or_where_builder.rb'
|
data/rakefile.rb
CHANGED
@@ -27,7 +27,7 @@ Gem::manage_gems
|
|
27
27
|
specification = Gem::Specification.new do |s|
|
28
28
|
s.name = "sqldsl"
|
29
29
|
s.summary = "A DSL for creating SQL Statements"
|
30
|
-
s.version = "1.4.
|
30
|
+
s.version = "1.4.4"
|
31
31
|
s.author = 'Jay Fields'
|
32
32
|
s.description = "A DSL for creating SQL Statements"
|
33
33
|
s.email = 'sqldsl-developer@rubyforge.org'
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/test_helper'
|
2
2
|
|
3
|
-
class
|
3
|
+
class JoinBuilderTest < Test::Unit::TestCase
|
4
4
|
def test_add_tables
|
5
|
-
ij =
|
6
|
-
s_builder.expects(:
|
5
|
+
ij = JoinBuilder.new(s_builder = mock, "inner")
|
6
|
+
s_builder.expects(:join_table).with("inner", [:"table1 as foo"])
|
7
7
|
ij[:table1.as(:foo)]
|
8
8
|
end
|
9
9
|
end
|
data/test/select_test.rb
CHANGED
@@ -58,10 +58,14 @@ class SelectTest < Test::Unit::TestCase
|
|
58
58
|
assert_equal [:table1, :table2], Select.all.from[:table1, :table2].instance_variable_get("@tables")
|
59
59
|
end
|
60
60
|
|
61
|
-
def
|
62
|
-
assert_equal
|
61
|
+
def test_left_join_with_table
|
62
|
+
assert_equal "select * from table1 left join table2", Select.all.from[:table1].left_join[:table2].to_sql
|
63
63
|
end
|
64
|
-
|
64
|
+
|
65
|
+
def test_right_join_with_table
|
66
|
+
assert_equal "select * from table1 right join table2", Select.all.from[:table1].right_join[:table2].to_sql
|
67
|
+
end
|
68
|
+
|
65
69
|
def test_inner_join_with_table
|
66
70
|
assert_equal "select * from table1 inner join table2", Select.all.from[:table1].inner_join[:table2].to_sql
|
67
71
|
end
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.
|
2
|
+
rubygems_version: 0.9.2
|
3
3
|
specification_version: 1
|
4
4
|
name: sqldsl
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.4.
|
7
|
-
date: 2007-
|
6
|
+
version: 1.4.4
|
7
|
+
date: 2007-05-25 00:00:00 -04:00
|
8
8
|
summary: A DSL for creating SQL Statements
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -25,6 +25,7 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
|
|
25
25
|
platform: ruby
|
26
26
|
signing_key:
|
27
27
|
cert_chain:
|
28
|
+
post_install_message:
|
28
29
|
authors:
|
29
30
|
- Jay Fields
|
30
31
|
files:
|
@@ -33,8 +34,8 @@ files:
|
|
33
34
|
- lib/blank_slate.rb
|
34
35
|
- lib/delete.rb
|
35
36
|
- lib/distinct_select.rb
|
36
|
-
- lib/inner_join_builder.rb
|
37
37
|
- lib/insert.rb
|
38
|
+
- lib/join_builder.rb
|
38
39
|
- lib/numeric.rb
|
39
40
|
- lib/on_where_builder.rb
|
40
41
|
- lib/or_where_builder.rb
|