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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f5d47a52dd9ccf4606743734009c9f8ecce7d074
4
- data.tar.gz: 672c9d20b75f2890796e487856dda30a82096415
3
+ metadata.gz: 86081cffce1fdbfb03ff8a64d72a171a71e2990e
4
+ data.tar.gz: db532da61dec6cef6743aa32f7b37937e7c33bf5
5
5
  SHA512:
6
- metadata.gz: c45f5c3c9f4adbf18a9dddea300ff897028fb982697d7e89883cdfd90e1812b335638c55602ec30d85bcd2bcc7d04d7b26c6c1c310cba6deffe3dd716d3863a5
7
- data.tar.gz: acb4c4d744a1d01da1ae6db10880e3b42a0d9d3f9226e60c904d80c448c7e006aada0018d6d174eef7025cdc3a0d7184c57fced07a6ce58638a8af0c9c25424a
6
+ metadata.gz: 40c54debde5bfc2691c9ea61266dbdcf7f781fc5a449e327f37173fdea5bb8f1e15a151e4284bbd7e706ef7ae2c85fcd661294e7c9a326bc4ca374d272b43074
7
+ data.tar.gz: 5b6a92b7477c601a4064fc3b999c0ad277821efdcea86ff3e829d4c809be171c2f70deebf3c1f426f1c7a2ae15d0b8062544b77250550fbac41747a0301b3b38
@@ -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
- @from_table = nil
10
+ @from_tables = []
9
11
  end
10
12
 
11
13
  def from(table)
12
- @from_table = table
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 @from_table.nil? && (combined_table_count > 1)
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 @from_table
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 target FROM target,other_table', Delete.new.from('target').table('other_table').no_where.to_s)
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.25
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: 2014-12-17 00:00:00.000000000 Z
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.14
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