sqlstmt 0.1.25 → 0.1.26
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sqlstmt/delete.rb +8 -7
- data/test/delete.dt.rb +2 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 86081cffce1fdbfb03ff8a64d72a171a71e2990e
|
4
|
+
data.tar.gz: db532da61dec6cef6743aa32f7b37937e7c33bf5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40c54debde5bfc2691c9ea61266dbdcf7f781fc5a449e327f37173fdea5bb8f1e15a151e4284bbd7e706ef7ae2c85fcd661294e7c9a326bc4ca374d272b43074
|
7
|
+
data.tar.gz: 5b6a92b7477c601a4064fc3b999c0ad277821efdcea86ff3e829d4c809be171c2f70deebf3c1f426f1c7a2ae15d0b8062544b77250550fbac41747a0301b3b38
|
data/lib/sqlstmt/delete.rb
CHANGED
@@ -3,14 +3,15 @@ require 'sqlstmt/from_query'
|
|
3
3
|
module SqlStmt
|
4
4
|
|
5
5
|
class Delete < FromQuery
|
6
|
+
force_deep_copy :from_tables
|
7
|
+
|
6
8
|
def initialize
|
7
9
|
super
|
8
|
-
@
|
10
|
+
@from_tables = []
|
9
11
|
end
|
10
12
|
|
11
13
|
def from(table)
|
12
|
-
@
|
13
|
-
@tables.push(table)
|
14
|
+
@from_tables << table
|
14
15
|
self
|
15
16
|
end
|
16
17
|
|
@@ -18,14 +19,14 @@ private
|
|
18
19
|
def verify_minimum_requirements
|
19
20
|
super
|
20
21
|
combined_table_count = @tables.size + @joins.size
|
21
|
-
raise SqlStmt::Error, "unable to build sql - must call :from when including multiple tables" if @
|
22
|
+
raise SqlStmt::Error, "unable to build sql - must call :from when including multiple tables" if @from_tables.empty? && (combined_table_count > 1)
|
22
23
|
end
|
23
24
|
|
24
25
|
def build_stmt
|
25
|
-
if @
|
26
|
-
table_clause = " #@from_table"
|
27
|
-
else
|
26
|
+
if @from_tables.empty?
|
28
27
|
table_clause = ''
|
28
|
+
else
|
29
|
+
table_clause = ' ' + @from_tables.join(',')
|
29
30
|
end
|
30
31
|
"DELETE#{table_clause}#{build_from_clause}"
|
31
32
|
end
|
data/test/delete.dt.rb
CHANGED
@@ -8,7 +8,8 @@ class TestDelete < DohTest::TestGroup
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def test_simple
|
11
|
-
assert_equal('DELETE
|
11
|
+
assert_equal('DELETE t FROM target t,other_table o', Delete.new.from('t').table('target t').table('other_table o').no_where.to_s)
|
12
|
+
assert_equal('DELETE t,o FROM t JOIN o ON t.id=o.id', Delete.new.from('t').from('o').table('t').join('o','t.id=o.id').no_where.to_s)
|
12
13
|
assert_equal('DELETE FROM target', Delete.new.table('target').no_where.to_s)
|
13
14
|
assert_equal('DELETE FROM target WHERE target_id = 1', Delete.new.table('target').where('target_id = 1').to_s)
|
14
15
|
end
|
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.26
|
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:
|
12
|
+
date: 2015-03-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: dohutil
|
@@ -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.6
|
89
89
|
signing_key:
|
90
90
|
specification_version: 4
|
91
91
|
summary: build SQL statements in a modular fashion, one piece at a time
|