dohmysql 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/bin/makedb +28 -0
  3. data/lib/doh/mysql/abstract_row.rb +80 -0
  4. data/lib/doh/mysql/activate.rb +31 -0
  5. data/lib/doh/mysql/cache_connector.rb +54 -0
  6. data/lib/doh/mysql/connector_instance.rb +79 -0
  7. data/lib/doh/mysql/connector_util.rb +27 -0
  8. data/lib/doh/mysql/convert.rb +18 -0
  9. data/lib/doh/mysql/current_date.rb +22 -0
  10. data/lib/doh/mysql/database_creator.rb +101 -0
  11. data/lib/doh/mysql/db_date.rb +28 -0
  12. data/lib/doh/mysql/default_type_guesser.rb +37 -0
  13. data/lib/doh/mysql/error.rb +7 -0
  14. data/lib/doh/mysql/handle.rb +218 -0
  15. data/lib/doh/mysql/hash_row.rb +13 -0
  16. data/lib/doh/mysql/load_sql.rb +26 -0
  17. data/lib/doh/mysql/metadata_util.rb +73 -0
  18. data/lib/doh/mysql/parse.rb +36 -0
  19. data/lib/doh/mysql/raw_row_builder.rb +15 -0
  20. data/lib/doh/mysql/readonly_row.rb +26 -0
  21. data/lib/doh/mysql/require_dbtypes.rb +8 -0
  22. data/lib/doh/mysql/smart_row.rb +156 -0
  23. data/lib/doh/mysql/to_sql.rb +65 -0
  24. data/lib/doh/mysql/typed_row_builder.rb +28 -0
  25. data/lib/doh/mysql/types.rb +33 -0
  26. data/lib/doh/mysql/unquoted.rb +17 -0
  27. data/lib/doh/mysql/version.rb +102 -0
  28. data/lib/doh/mysql/virtual.rb +17 -0
  29. data/lib/doh/mysql/writable_row.rb +59 -0
  30. data/lib/doh/mysql.rb +7 -0
  31. data/test/cache_connector.dt.rb +41 -0
  32. data/test/connector.yml +4 -0
  33. data/test/connector.yml.tmpl +4 -0
  34. data/test/connector_instance.dt.rb +32 -0
  35. data/test/convert.dt.rb +45 -0
  36. data/test/db_unit_test.rb +10 -0
  37. data/test/handle.dt.rb +112 -0
  38. data/test/metadata_util.dt.rb +53 -0
  39. data/test/parse.dt.rb +39 -0
  40. data/test/readonly_row.dt.rb +85 -0
  41. data/test/smart_row.dt.rb +21 -0
  42. data/test/to_sql.dt.rb +19 -0
  43. data/test/types.dt.rb +32 -0
  44. data/test/unquoted.dt.rb +16 -0
  45. data/test/writable_row.dt.rb +21 -0
  46. metadata +118 -0
data/test/to_sql.dt.rb ADDED
@@ -0,0 +1,19 @@
1
+ require 'doh/mysql/to_sql'
2
+
3
+ module DohDb
4
+
5
+ class Test_to_sql < DohTest::TestGroup
6
+ def test_stuff
7
+ assert_equal('"blah"', 'blah'.to_sql)
8
+ assert_equal('NULL', nil.to_sql)
9
+ assert_equal('3', 3.to_sql)
10
+ assert_equal('"2008-09-24 09:30:04"', DateTime.new(2008,9,24,9,30,4).to_sql)
11
+ assert_equal('1', true.to_sql)
12
+ assert_equal('0', false.to_sql)
13
+ assert_equal('10.0', BigDecimal.new('10').to_sql)
14
+ assert_equal('("a","b","c")', ['a', 'b', 'c'].to_sql)
15
+ end
16
+ end
17
+
18
+ end
19
+
data/test/types.dt.rb ADDED
@@ -0,0 +1,32 @@
1
+ require_relative 'db_unit_test'
2
+ require 'doh/mysql/types'
3
+
4
+ module DohDb
5
+
6
+ class ConvertToString
7
+ def self.build(field, value)
8
+ value.to_s
9
+ end
10
+ end
11
+
12
+ class Test_types < DohTest::TestGroup
13
+ def test_stuff
14
+ dbh = DohDb::request_handle
15
+ tbl = "doh_mysql_types_stuff_test"
16
+ tbl2 = "island.doh_mysql_types_stuff_another_test"
17
+ DohDb::query("CREATE TEMPORARY TABLE #{tbl} (amount INT)")
18
+ DohDb::query("INSERT INTO #{tbl} SET amount = NULL")
19
+ assert_equal(nil, DohDb::select_field("SELECT amount FROM #{tbl}"))
20
+ DohDb::query("UPDATE #{tbl} SET amount = 5")
21
+ assert_equal(5, DohDb::select_field("SELECT amount FROM #{tbl}"))
22
+
23
+ DohDb::query("CREATE TEMPORARY TABLE #{tbl2} (other INT)")
24
+ DohDb::query("INSERT INTO #{tbl2} SET other = 7")
25
+ assert_equal(5, DohDb::select_field("SELECT amount, other FROM #{tbl}, #{tbl2}"))
26
+
27
+ DohDb::register_column_type(DohDb::connector_instance.database, tbl, 'amount', ConvertToString)
28
+ assert_equal('5', DohDb::select_field("SELECT amount FROM #{tbl}"))
29
+ end
30
+ end
31
+
32
+ end
@@ -0,0 +1,16 @@
1
+ require 'doh/mysql/unquoted'
2
+
3
+ module DohDb
4
+
5
+ class Test_Unquoted < DohTest::TestGroup
6
+ def test_stuff
7
+ assert_equal('', Unquoted.new)
8
+ assert_equal('blah', Unquoted.new('blah'))
9
+ assert_equal('blah', Unquoted.new('blah').to_s)
10
+ assert_equal('blah', Unquoted.new('blah').to_sql)
11
+ assert_equal('SELECT * FROM blah WHERE smoe = NULL', "SELECT * FROM blah WHERE smoe = #{DohDb::NULL.to_sql}")
12
+ end
13
+ end
14
+
15
+ end
16
+
@@ -0,0 +1,21 @@
1
+ require 'doh/mysql/writable_row'
2
+
3
+ module DohDb
4
+
5
+ class Test_WritableRow < DohTest::TestGroup
6
+ def test_bracket_assign_not_mutate
7
+ keys = []; values = []
8
+ row = WritableRow.new(keys, values)
9
+ keys.push('blah')
10
+ values.push('blee')
11
+ assert(row.keys.empty?)
12
+ assert(row.values.empty?)
13
+ row['frog'] = 'chicken'
14
+ assert_equal(['blah'], keys)
15
+ assert_equal(['blee'], values)
16
+ assert_equal(['frog'], row.keys)
17
+ assert_equal(['chicken'], row.values)
18
+ end
19
+ end
20
+
21
+ end
metadata ADDED
@@ -0,0 +1,118 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dohmysql
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Makani Mason
9
+ - Kem Mason
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-02-11 00:00:00.000000000Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: dohutil
17
+ requirement: &70173088680320 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: 0.1.4
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *70173088680320
26
+ description: wrapper classes around low level mysql gem to provide a better interface
27
+ email:
28
+ - devinfo@atpsoft.com
29
+ executables:
30
+ - makedb
31
+ extensions: []
32
+ extra_rdoc_files:
33
+ - MIT-LICENSE
34
+ files:
35
+ - bin/makedb
36
+ - lib/doh/mysql/abstract_row.rb
37
+ - lib/doh/mysql/activate.rb
38
+ - lib/doh/mysql/cache_connector.rb
39
+ - lib/doh/mysql/connector_instance.rb
40
+ - lib/doh/mysql/connector_util.rb
41
+ - lib/doh/mysql/convert.rb
42
+ - lib/doh/mysql/current_date.rb
43
+ - lib/doh/mysql/database_creator.rb
44
+ - lib/doh/mysql/db_date.rb
45
+ - lib/doh/mysql/default_type_guesser.rb
46
+ - lib/doh/mysql/error.rb
47
+ - lib/doh/mysql/handle.rb
48
+ - lib/doh/mysql/hash_row.rb
49
+ - lib/doh/mysql/load_sql.rb
50
+ - lib/doh/mysql/metadata_util.rb
51
+ - lib/doh/mysql/parse.rb
52
+ - lib/doh/mysql/raw_row_builder.rb
53
+ - lib/doh/mysql/readonly_row.rb
54
+ - lib/doh/mysql/require_dbtypes.rb
55
+ - lib/doh/mysql/smart_row.rb
56
+ - lib/doh/mysql/to_sql.rb
57
+ - lib/doh/mysql/typed_row_builder.rb
58
+ - lib/doh/mysql/types.rb
59
+ - lib/doh/mysql/unquoted.rb
60
+ - lib/doh/mysql/version.rb
61
+ - lib/doh/mysql/virtual.rb
62
+ - lib/doh/mysql/writable_row.rb
63
+ - lib/doh/mysql.rb
64
+ - test/cache_connector.dt.rb
65
+ - test/connector.yml
66
+ - test/connector.yml.tmpl
67
+ - test/connector_instance.dt.rb
68
+ - test/convert.dt.rb
69
+ - test/db_unit_test.rb
70
+ - test/handle.dt.rb
71
+ - test/metadata_util.dt.rb
72
+ - test/parse.dt.rb
73
+ - test/readonly_row.dt.rb
74
+ - test/smart_row.dt.rb
75
+ - test/to_sql.dt.rb
76
+ - test/types.dt.rb
77
+ - test/unquoted.dt.rb
78
+ - test/writable_row.dt.rb
79
+ - MIT-LICENSE
80
+ homepage: https://github.com/atpsoft/dohmysql
81
+ licenses:
82
+ - MIT
83
+ post_install_message:
84
+ rdoc_options: []
85
+ require_paths:
86
+ - lib
87
+ required_ruby_version: !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ! '>='
91
+ - !ruby/object:Gem::Version
92
+ version: 1.9.2
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ requirements: []
100
+ rubyforge_project:
101
+ rubygems_version: 1.8.15
102
+ signing_key:
103
+ specification_version: 3
104
+ summary: friendly mysql client interface
105
+ test_files:
106
+ - test/cache_connector.dt.rb
107
+ - test/connector_instance.dt.rb
108
+ - test/convert.dt.rb
109
+ - test/db_unit_test.rb
110
+ - test/handle.dt.rb
111
+ - test/metadata_util.dt.rb
112
+ - test/parse.dt.rb
113
+ - test/readonly_row.dt.rb
114
+ - test/smart_row.dt.rb
115
+ - test/to_sql.dt.rb
116
+ - test/types.dt.rb
117
+ - test/unquoted.dt.rb
118
+ - test/writable_row.dt.rb