do_mysql 0.9.11 → 0.9.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/LICENSE +1 -1
  2. data/Manifest.txt +15 -4
  3. data/Rakefile +7 -122
  4. data/ext/do_mysql_ext/do_mysql_ext.c +154 -99
  5. data/ext/do_mysql_ext/extconf.rb +1 -0
  6. data/lib/do_mysql.rb +5 -2
  7. data/lib/do_mysql/version.rb +1 -1
  8. data/spec/command_spec.rb +9 -0
  9. data/spec/connection_spec.rb +19 -0
  10. data/spec/encoding_spec.rb +8 -0
  11. data/spec/lib/rspec_immediate_feedback_formatter.rb +3 -0
  12. data/spec/reader_spec.rb +8 -0
  13. data/spec/result_spec.rb +9 -0
  14. data/spec/spec_helper.rb +38 -47
  15. data/spec/typecast/array_spec.rb +8 -0
  16. data/spec/typecast/bigdecimal_spec.rb +9 -0
  17. data/spec/typecast/boolean_spec.rb +9 -0
  18. data/spec/typecast/byte_array_spec.rb +8 -0
  19. data/spec/typecast/class_spec.rb +8 -0
  20. data/spec/typecast/date_spec.rb +9 -0
  21. data/spec/typecast/datetime_spec.rb +9 -0
  22. data/spec/typecast/float_spec.rb +9 -0
  23. data/spec/typecast/integer_spec.rb +8 -0
  24. data/spec/typecast/nil_spec.rb +10 -0
  25. data/spec/typecast/range_spec.rb +8 -0
  26. data/spec/typecast/string_spec.rb +8 -0
  27. data/spec/typecast/time_spec.rb +8 -0
  28. data/tasks/gem.rake +60 -0
  29. data/tasks/install.rake +15 -0
  30. data/tasks/native.rake +31 -0
  31. data/tasks/release.rake +75 -0
  32. data/tasks/retrieve.rake +67 -0
  33. data/tasks/spec.rake +18 -0
  34. metadata +72 -40
  35. data/.gitignore +0 -0
  36. data/buildfile +0 -27
  37. data/ext-java/src/main/java/DoMysqlExtService.java +0 -23
  38. data/ext-java/src/main/java/do_mysql/MySqlDriverDefinition.java +0 -22
  39. data/ext/.gitignore +0 -2
  40. data/spec/integration/do_mysql_spec.rb +0 -341
  41. data/spec/integration/logging_spec.rb +0 -52
  42. data/spec/integration/quoting_spec.rb +0 -45
  43. data/spec/spec.opts +0 -2
  44. data/spec/unit/transaction_spec.rb +0 -35
@@ -1,52 +0,0 @@
1
- require 'pathname'
2
- require Pathname(__FILE__).dirname.expand_path.parent + 'spec_helper'
3
-
4
- describe DataObjects::Mysql::Command do
5
-
6
- before(:each) do
7
- @connection = DataObjects::Connection.new(DO_MYSQL_SPEC_URI)
8
- end
9
-
10
- after(:each) do
11
- @connection.close
12
- end
13
-
14
- describe "Executing a Reader" do
15
-
16
- it "should log reader queries when the level is Debug (0)" do
17
- command = @connection.create_command("SELECT * FROM widgets WHERE name = ?")
18
- @mock_logger = mock('MockLogger', :level => 0)
19
- DataObjects::Mysql.should_receive(:logger).and_return(@mock_logger)
20
- @mock_logger.should_receive(:debug).with(/\([\d.]+\) SELECT \* FROM widgets WHERE name = 'Scott'/)
21
-
22
- command.execute_reader('Scott').close # Readers must be closed!
23
- end
24
-
25
- it "shouldn't log reader queries when the level isn't Debug (0)" do
26
- command = @connection.create_command("SELECT * FROM widgets WHERE name = ?")
27
- @mock_logger = mock('MockLogger', :level => 1)
28
- DataObjects::Mysql.should_receive(:logger).and_return(@mock_logger)
29
- @mock_logger.should_not_receive(:debug)
30
- command.execute_reader('Scott').close # Readers must be closed!
31
- end
32
- end
33
-
34
- describe "Executing a Non-Query" do
35
- it "should log non-query statements when the level is Debug (0)" do
36
- command = @connection.create_command("INSERT INTO invoices (invoice_number) VALUES (?)")
37
- @mock_logger = mock('MockLogger', :level => 0)
38
- DataObjects::Mysql.should_receive(:logger).and_return(@mock_logger)
39
- @mock_logger.should_receive(:debug).with(/\([\d.]+\) INSERT INTO invoices \(invoice_number\) VALUES \(1234\)/)
40
- command.execute_non_query(1234)
41
- end
42
-
43
- it "shouldn't log non-query statements when the level isn't Debug (0)" do
44
- command = @connection.create_command("INSERT INTO invoices (invoice_number) VALUES (?)")
45
- @mock_logger = mock('MockLogger', :level => 1)
46
- DataObjects::Mysql.should_receive(:logger).and_return(@mock_logger)
47
- @mock_logger.should_not_receive(:debug)
48
- command.execute_non_query(1234)
49
- end
50
- end
51
-
52
- end
@@ -1,45 +0,0 @@
1
- require 'pathname'
2
- require Pathname(__FILE__).dirname.expand_path.parent + 'spec_helper'
3
-
4
- unless JRUBY
5
- require 'date'
6
-
7
- describe DataObjects::Mysql::Command, "Quoting" do
8
- include MysqlSpecHelpers
9
-
10
- before :each do
11
- setup_test_environment
12
- end
13
-
14
- after :each do
15
- teardown_test_environment
16
- end
17
-
18
- it "should escape strings properly" do
19
- command = @connection.create_command("SELECT * FROM widgets WHERE name = ?")
20
- command.quote_string("Willy O'Hare & Johnny O'Toole").should == "'Willy O\\'Hare & Johnny O\\'Toole'".dup
21
- command.quote_string("The\\Backslasher\\Rises\\Again").should == "'The\\\\Backslasher\\\\Rises\\\\Again'"
22
- command.quote_string("Scott \"The Rage\" Bauer").should == "'Scott \\\"The Rage\\\" Bauer'"
23
- end
24
-
25
- it "should quote DateTime instances properly" do
26
- command = @connection.create_command("SELECT * FROM widgets WHERE release_datetime >= ?")
27
- dt = DateTime.now
28
- command.quote_datetime(dt).should == "'#{dt.strftime('%Y-%m-%d %H:%M:%S')}'"
29
- end
30
-
31
- it "should quote Time instances properly" do
32
- command = @connection.create_command("SELECT * FROM widgets WHERE release_timestamp >= ?")
33
- dt = Time.now
34
- command.quote_time(dt).should == "'#{dt.strftime('%Y-%m-%d %H:%M:%S')}'"
35
- end
36
-
37
- it "should quote Date instances properly" do
38
- command = @connection.create_command("SELECT * FROM widgets WHERE release_date >= ?")
39
- dt = Date.today
40
- command.quote_date(dt).should == "'#{dt.strftime('%Y-%m-%d')}'"
41
- end
42
-
43
- end
44
-
45
- end
@@ -1,2 +0,0 @@
1
- --format specdoc
2
- --colour
@@ -1,35 +0,0 @@
1
- require 'pathname'
2
- require Pathname(__FILE__).dirname.expand_path.parent + 'spec_helper'
3
-
4
- describe DataObjects::Mysql::Transaction do
5
-
6
- before :each do
7
- @connection = mock("connection")
8
- DataObjects::Connection.should_receive(:new).with("mock://mock/mock").once.and_return(@connection)
9
- @transaction = DataObjects::Mysql::Transaction.new("mock://mock/mock")
10
- @transaction.id.replace("id")
11
- @command = mock("command")
12
- end
13
-
14
- {
15
- :begin => "XA START 'id'",
16
- :commit => "XA COMMIT 'id'",
17
- :rollback => ["XA END 'id'", "XA ROLLBACK 'id'"],
18
- :rollback_prepared => "XA ROLLBACK 'id'",
19
- :prepare => ["XA END 'id'", "XA PREPARE 'id'"]
20
- }.each do |method, commands|
21
- it "should execute #{commands.inspect} on ##{method}" do
22
- if commands.is_a?(String)
23
- @command.should_receive(:execute_non_query).once
24
- @connection.should_receive(:create_command).once.with(commands).and_return(@command)
25
- @transaction.send(method)
26
- elsif commands.is_a?(Array) && commands.size == 2
27
- @command.should_receive(:execute_non_query).twice
28
- @connection.should_receive(:create_command).once.with(commands.first).and_return(@command)
29
- @connection.should_receive(:create_command).once.with(commands.last).and_return(@command)
30
- @transaction.send(method)
31
- end
32
- end
33
- end
34
-
35
- end