sqlstmt 0.1.25 → 0.1.26

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: 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