sqlstmt 0.1.14 → 0.1.15
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.
- checksums.yaml +4 -4
- data/lib/sqlstmt/from_query.rb +15 -1
- data/test/select.dt.rb +1 -0
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc9dca98f890921dd47fb0fd1930456ae42ab28b
|
4
|
+
data.tar.gz: 43eb016ff2365a7a810721cb182800a763662233
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 46ca30c60e9e094770b38bdbe56cc95b725c47a463e49554fcc7aaab8594fffcabf7b94c020962cbc2ec7995268c1ebd1b0ab596bbdf0923e9f1aae482c89e53
|
7
|
+
data.tar.gz: d59e1ef5a4e09351086e8463cf611a2db94e91d4e60e66e75ae1a94ce0ff873cf94157fb54b5094e2adc5d7e076fc46fe7e6635ecf93fa3d30ee4500f8cae2af
|
data/lib/sqlstmt/from_query.rb
CHANGED
@@ -8,6 +8,7 @@ class FromQuery < Query
|
|
8
8
|
@group_by = nil
|
9
9
|
@order_by = nil
|
10
10
|
@limit = nil
|
11
|
+
@having = []
|
11
12
|
end
|
12
13
|
|
13
14
|
def group_by(clause)
|
@@ -25,6 +26,11 @@ class FromQuery < Query
|
|
25
26
|
self
|
26
27
|
end
|
27
28
|
|
29
|
+
def having(*sql)
|
30
|
+
@having.concat(sql)
|
31
|
+
self
|
32
|
+
end
|
33
|
+
|
28
34
|
private
|
29
35
|
def verify_minimum_requirements
|
30
36
|
super
|
@@ -36,12 +42,20 @@ private
|
|
36
42
|
if value then " #{keywords} #{value}" else '' end
|
37
43
|
end
|
38
44
|
|
45
|
+
def having_clause
|
46
|
+
if @having.empty?
|
47
|
+
''
|
48
|
+
else
|
49
|
+
" HAVING #{@having.join(' AND ')}"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
39
53
|
def build_from_clause
|
40
54
|
join_clause = build_join_clause
|
41
55
|
group_clause = simple_clause('GROUP BY', @group_by)
|
42
56
|
order_clause = simple_clause('ORDER BY', @order_by)
|
43
57
|
limit_clause = simple_clause('LIMIT', @limit)
|
44
|
-
" FROM #{build_table_list}#{join_clause}#{build_where_clause}#{group_clause}#{order_clause}#{limit_clause}"
|
58
|
+
" FROM #{build_table_list}#{join_clause}#{build_where_clause}#{group_clause}#{order_clause}#{limit_clause}#{having_clause}"
|
45
59
|
end
|
46
60
|
end
|
47
61
|
|
data/test/select.dt.rb
CHANGED
@@ -20,6 +20,7 @@ class TestSelect < DohTest::TestGroup
|
|
20
20
|
assert_equal('SELECT blah FROM source s LEFT JOIN other o ON s.blah_id = o.blah_id', Select.new.table('source s').left_join('other o', 's.blah_id = o.blah_id').field('blah').no_where.to_s)
|
21
21
|
assert_equal('SELECT blah FROM source s LEFT JOIN other o USING (blah_id)', Select.new.table('source s').left_join_using('other o', 'blah_id').field('blah').no_where.to_s)
|
22
22
|
assert_equal('SELECT blah,blee FROM source', Select.new.table('source').field('blah','blee').no_where.to_s)
|
23
|
+
assert_equal('SELECT blah FROM source HAVING blee > 0', Select.new.table('source').field('blah').no_where.having('blee > 0').to_s)
|
23
24
|
end
|
24
25
|
|
25
26
|
def test_duplicate_joins
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sqlstmt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Makani Mason
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-07-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: dohutil
|
@@ -17,28 +17,28 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - '>='
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 0.2.
|
20
|
+
version: 0.2.15
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - '>='
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 0.2.
|
27
|
+
version: 0.2.15
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: dohtest
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - '>='
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 0.1.
|
34
|
+
version: 0.1.24
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - '>='
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: 0.1.
|
41
|
+
version: 0.1.24
|
42
42
|
description: build SQL statements in a modular fashion, one piece at a time; only
|
43
43
|
used/tested with MySQL so far
|
44
44
|
email:
|
@@ -85,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
85
85
|
version: '0'
|
86
86
|
requirements: []
|
87
87
|
rubyforge_project:
|
88
|
-
rubygems_version: 2.0.
|
88
|
+
rubygems_version: 2.0.3
|
89
89
|
signing_key:
|
90
90
|
specification_version: 4
|
91
91
|
summary: build SQL statements in a modular fashion, one piece at a time
|