data_objects 0.10.8 → 0.10.9

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog.markdown CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.10.9 2012-08-13
2
+
3
+ * Don't try to escape queries when no binding parameters are given
4
+
1
5
  ## 0.10.8 2012-02-10
2
6
 
3
7
  * Ruby 1.9.3 compatibility on Windows
@@ -52,6 +52,7 @@ module DataObjects
52
52
  # This method is meant mostly for adapters that don't support
53
53
  # bind-parameters.
54
54
  def escape_sql(args)
55
+ return @text if args.empty?
55
56
  sql = @text.dup
56
57
  vars = args.dup
57
58
 
@@ -7,9 +7,11 @@ shared_examples_for 'a Command' do
7
7
  end
8
8
 
9
9
  before do
10
- @connection = DataObjects::Connection.new(CONFIG.uri)
11
- @command = @connection.create_command("INSERT INTO users (name) VALUES (?)")
12
- @reader = @connection.create_command("SELECT code, name FROM widgets WHERE ad_description = ?")
10
+ @connection = DataObjects::Connection.new(CONFIG.uri)
11
+ @command = @connection.create_command("INSERT INTO users (name) VALUES (?)")
12
+ @reader = @connection.create_command("SELECT code, name FROM widgets WHERE ad_description = ?")
13
+ @arg_command = @connection.create_command("INSERT INTO users (name, fired_at) VALUES (?, ?)")
14
+ @arg_reader = @connection.create_command("SELECT code, name FROM widgets WHERE ad_description = ? AND whitepaper_text = ?")
13
15
  end
14
16
 
15
17
  after do
@@ -32,14 +34,14 @@ shared_examples_for 'a Command' do
32
34
  expect { @invalid_command.execute_non_query }.to raise_error(DataObjects::SQLError)
33
35
  end
34
36
 
35
- it 'should raise an error with too few binding parameters' do
36
- expect { @command.execute_non_query("Too", "Many") }.to raise_error(ArgumentError,
37
- /Binding mismatch: 2 for 1/)
37
+ it 'should raise an error with too many binding parameters' do
38
+ expect { @arg_command.execute_non_query("Too", Date.today, "Many") }.to raise_error(ArgumentError,
39
+ /Binding mismatch: 3 for 2/)
38
40
  end
39
41
 
40
- it 'should raise an error with too many binding parameters' do
41
- expect { @command.execute_non_query }.to raise_error(ArgumentError,
42
- /Binding mismatch: 0 for 1/)
42
+ it 'should raise an error with too few binding parameters' do
43
+ expect { @arg_command.execute_non_query("Few") }.to raise_error(ArgumentError,
44
+ /Binding mismatch: 1 for 2/)
43
45
  end
44
46
 
45
47
  end
@@ -47,7 +49,7 @@ shared_examples_for 'a Command' do
47
49
  describe 'with a valid statement' do
48
50
 
49
51
  it 'should not raise an error with an explicit nil as parameter' do
50
- expect { @command.execute_non_query(nil) }.not_to raise_error(ArgumentError)
52
+ expect { @arg_command.execute_non_query(nil, nil) }.not_to raise_error(ArgumentError)
51
53
  end
52
54
 
53
55
  end
@@ -73,7 +75,7 @@ shared_examples_for 'a Command' do
73
75
  describe 'with an invalid reader' do
74
76
 
75
77
  before do
76
- @invalid_reader = @connection.create_command("SELECT * FROM non_existent_widgets WHERE ad_description = ?")
78
+ @invalid_reader = @connection.create_command("SELECT * FROM non_existent_widgets WHERE ad_description = ? AND white_paper_text = ?")
77
79
  end
78
80
 
79
81
  it 'should raise an error on an invalid query' do
@@ -81,14 +83,14 @@ shared_examples_for 'a Command' do
81
83
  expect { @invalid_reader.execute_reader }.to raise_error # (ArgumentError, DataObjects::SQLError)
82
84
  end
83
85
 
84
- it 'should raise an error with too few binding parameters' do
85
- expect { @reader.execute_reader("Too", "Many") }.to raise_error(ArgumentError,
86
- /Binding mismatch: 2 for 1/)
86
+ it 'should raise an error with too many few binding parameters' do
87
+ expect { @arg_reader.execute_reader("Too", "Many", "Args") }.to raise_error(ArgumentError,
88
+ /Binding mismatch: 3 for 2/)
87
89
  end
88
90
 
89
- it 'should raise an error with too many binding parameters' do
90
- expect { @reader.execute_reader }.to raise_error(ArgumentError,
91
- /Binding mismatch: 0 for 1/)
91
+ it 'should raise an error with too few binding parameters' do
92
+ expect { @arg_reader.execute_reader("Few") }.to raise_error(ArgumentError,
93
+ /Binding mismatch: 1 for 2/)
92
94
  end
93
95
 
94
96
  end
@@ -96,7 +98,7 @@ shared_examples_for 'a Command' do
96
98
  describe 'with a valid reader' do
97
99
 
98
100
  it 'should not raise an error with an explicit nil as parameter' do
99
- expect { @reader.execute_reader(nil) }.not_to raise_error(ArgumentError)
101
+ expect { @arg_reader.execute_reader(nil, nil) }.not_to raise_error(ArgumentError)
100
102
  end
101
103
 
102
104
  end
@@ -127,7 +129,7 @@ shared_examples_for 'a Command' do
127
129
  end
128
130
 
129
131
  it 'should raise an error when types are set' do
130
- expect { @command.execute_non_query }.to raise_error(ArgumentError)
132
+ expect { @arg_command.execute_non_query("Few") }.to raise_error(ArgumentError)
131
133
  end
132
134
 
133
135
  end
@@ -1,3 +1,13 @@
1
+ def test_connection(conn)
2
+ reader = conn.create_command(CONFIG.testsql || "SELECT 1").execute_reader
3
+ reader.next!
4
+ result = reader.values[0]
5
+ result
6
+ ensure
7
+ reader.close
8
+ conn.close
9
+ end
10
+
1
11
  shared_examples_for 'a Connection' do
2
12
 
3
13
  before :all do
@@ -25,21 +35,15 @@ shared_examples_for 'a Connection' do
25
35
  end
26
36
 
27
37
  describe 'various connection URIs' do
28
- def test_connection(conn)
29
- reader = conn.create_command(CONFIG.testsql || "SELECT 1").execute_reader
30
- reader.next!
31
- reader.values[0]
32
- end
33
38
 
34
39
  it 'should open with an uri object' do
35
40
  uri = DataObjects::URI.new(
36
- @driver,
37
- @user,
38
- @password,
39
- @host,
40
- @port && @port.to_i,
41
- @database,
42
- nil, nil
41
+ :scheme => @driver,
42
+ :user => @user,
43
+ :password => @password,
44
+ :host => @host,
45
+ :port => @port && @port.to_i,
46
+ :path => @database
43
47
  )
44
48
  conn = DataObjects::Connection.new(uri)
45
49
  test_connection(conn).should == 1
@@ -109,10 +113,6 @@ shared_examples_for 'a Connection with authentication support' do
109
113
  lambda { DataObjects::Connection.new(uri) }
110
114
  end
111
115
 
112
- it 'should raise an error if no database specified' do
113
- connecting_with("#{@driver}://#{@user}:#{@password}@#{@host}:#{@port}").should raise_error #(ArgumentError, DataObjects::Error)
114
- end
115
-
116
116
  it 'should raise an error if bad username is given' do
117
117
  connecting_with("#{@driver}://thisreallyshouldntexist:#{@password}@#{@host}:#{@port}#{@database}").should raise_error #(ArgumentError, DataObjects::Error)
118
118
  end
@@ -137,14 +137,13 @@ shared_examples_for 'a Connection with authentication support' do
137
137
 
138
138
  end
139
139
 
140
- def test_connection(conn)
141
- reader = conn.create_command(CONFIG.testsql || "SELECT 1").execute_reader
142
- reader.next!
143
- result = reader.values[0]
144
- result
145
- ensure
146
- reader.close
147
- conn.close
140
+ shared_examples_for 'a Connection allowing default database' do
141
+ describe 'with a URI without a database' do
142
+ it 'should connect properly' do
143
+ conn = DataObjects::Connection.new("#{@driver}://#{@user}:#{@password}@#{@host}:#{@port}")
144
+ test_connection(conn).should == 1
145
+ end
146
+ end
148
147
  end
149
148
 
150
149
  shared_examples_for 'a Connection with JDBC URL support' do
@@ -41,7 +41,7 @@ shared_examples_for 'supporting String' do
41
41
  describe 'with manual typecasting' do
42
42
 
43
43
  before do
44
- @command = @connection.create_command("SELECT weight FROM widgets WHERE ad_description = ?")
44
+ @command = @connection.create_command("SELECT number_sold FROM widgets WHERE ad_description = ?")
45
45
  @command.set_types(String)
46
46
  @reader = @command.execute_reader('Buy this product now!')
47
47
  @reader.next!
@@ -57,7 +57,7 @@ shared_examples_for 'supporting String' do
57
57
  end
58
58
 
59
59
  it 'should return the correct result' do
60
- @values.first.should == "13.4"
60
+ @values.first.should == "0"
61
61
  end
62
62
 
63
63
  end
@@ -1,3 +1,3 @@
1
1
  module DataObjects
2
- VERSION = '0.10.8'
2
+ VERSION = '0.10.9'
3
3
  end
data/spec/pooling_spec.rb CHANGED
@@ -148,7 +148,7 @@ describe "DataObjects::Pooling" do
148
148
  bob = Person.new('Bob')
149
149
  bob.release
150
150
  DataObjects.exiting = true
151
- sleep(0.1)
151
+ sleep(1)
152
152
  DataObjects::Pooling.scavenger?.should be_false
153
153
  end
154
154
 
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_objects
3
3
  version: !ruby/object:Gem::Version
4
- hash: 39
5
- prerelease:
4
+ prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 10
9
- - 8
10
- version: 0.10.8
8
+ - 9
9
+ version: 0.10.9
11
10
  platform: ruby
12
11
  authors:
13
12
  - Dirkjan Bussink
@@ -15,17 +14,16 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2011-03-29 00:00:00 Z
17
+ date: 2011-03-29 00:00:00 +02:00
18
+ default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: addressable
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
24
  requirements:
26
25
  - - ~>
27
26
  - !ruby/object:Gem::Version
28
- hash: 1
29
27
  segments:
30
28
  - 2
31
29
  - 1
@@ -36,11 +34,9 @@ dependencies:
36
34
  name: rspec
37
35
  prerelease: false
38
36
  requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
37
  requirements:
41
38
  - - ~>
42
39
  - !ruby/object:Gem::Version
43
- hash: 9
44
40
  segments:
45
41
  - 2
46
42
  - 5
@@ -51,11 +47,9 @@ dependencies:
51
47
  name: yard
52
48
  prerelease: false
53
49
  requirement: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
50
  requirements:
56
51
  - - ~>
57
52
  - !ruby/object:Gem::Version
58
- hash: 1
59
53
  segments:
60
54
  - 0
61
55
  - 5
@@ -135,6 +129,7 @@ files:
135
129
  - tasks/spec.rake
136
130
  - tasks/yard.rake
137
131
  - tasks/yardstick.rake
132
+ has_rdoc: true
138
133
  homepage: http://github.com/datamapper/do
139
134
  licenses: []
140
135
 
@@ -144,27 +139,23 @@ rdoc_options: []
144
139
  require_paths:
145
140
  - lib
146
141
  required_ruby_version: !ruby/object:Gem::Requirement
147
- none: false
148
142
  requirements:
149
143
  - - ">="
150
144
  - !ruby/object:Gem::Version
151
- hash: 3
152
145
  segments:
153
146
  - 0
154
147
  version: "0"
155
148
  required_rubygems_version: !ruby/object:Gem::Requirement
156
- none: false
157
149
  requirements:
158
150
  - - ">="
159
151
  - !ruby/object:Gem::Version
160
- hash: 3
161
152
  segments:
162
153
  - 0
163
154
  version: "0"
164
155
  requirements: []
165
156
 
166
157
  rubyforge_project: dorb
167
- rubygems_version: 1.8.14
158
+ rubygems_version: 1.3.6
168
159
  signing_key:
169
160
  specification_version: 3
170
161
  summary: DataObjects basic API and shared driver specifications