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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 072940a8a22b7a409ac52eaa593fba523a4e03f1
4
- data.tar.gz: d426eaf488465c1ba60e7f0af6709202b2572962
3
+ metadata.gz: cc9dca98f890921dd47fb0fd1930456ae42ab28b
4
+ data.tar.gz: 43eb016ff2365a7a810721cb182800a763662233
5
5
  SHA512:
6
- metadata.gz: 84e55aeb1540111d0d70b2a974bda49acd6012d9d7f02e2120841af1f7e825cfcd2460f1ad06d62ea656354a2285ce5b8c5c5d240ff068f7f2f23ef87127b9f7
7
- data.tar.gz: 2612756ffaa5877231f18b3f8ad9573c349145c4c1c0c9070e13164944c6929fffbfca5db33146ebe3b0a74bc809791ad97afa517de1b179e38a2d075bf21f16
6
+ metadata.gz: 46ca30c60e9e094770b38bdbe56cc95b725c47a463e49554fcc7aaab8594fffcabf7b94c020962cbc2ec7995268c1ebd1b0ab596bbdf0923e9f1aae482c89e53
7
+ data.tar.gz: d59e1ef5a4e09351086e8463cf611a2db94e91d4e60e66e75ae1a94ce0ff873cf94157fb54b5094e2adc5d7e076fc46fe7e6635ecf93fa3d30ee4500f8cae2af
@@ -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.14
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-06-14 00:00:00.000000000 Z
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.12
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.12
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.19
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.19
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.2
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