dohmysql 0.1.1 → 0.1.2

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.
@@ -12,11 +12,6 @@ def self.activate
12
12
  root_cfg = Doh::config
13
13
  return unless root_cfg.fetch('enable_database', true)
14
14
  return unless root_cfg.key?('database')
15
- begin
16
- require 'mysql'
17
- rescue LoadError => e
18
- return
19
- end
20
15
  db_cfg = root_cfg['database']
21
16
  require 'doh/mysql'
22
17
  require 'doh/mysql/require_dbtypes'
@@ -1,6 +1,7 @@
1
1
  require 'doh/current_date'
2
2
  require 'doh/mysql/db_date'
3
3
  require 'doh/mysql/parse'
4
+ require 'doh/mysql/to_sql'
4
5
 
5
6
  module DohDb
6
7
 
@@ -19,7 +19,6 @@ class DatabaseCreator
19
19
 
20
20
  def create_database_copy(dest_db, source_db, drop_first = false)
21
21
  create_one_database(get_nodb_handle, dest_db, source_db, drop_first)
22
- DohDb::link_database_types(dest_db, source_db)
23
22
  end
24
23
 
25
24
  def create_all_databases(drop_first = false)
@@ -5,6 +5,7 @@ require 'doh/mysql/typed_row_builder'
5
5
  require 'doh/mysql/writable_row'
6
6
  require 'doh/mysql/hash_row'
7
7
  require 'doh/mysql/smart_row'
8
+ require 'doh/mysql/to_sql'
8
9
 
9
10
  module DohDb
10
11
 
@@ -1,4 +1,3 @@
1
- require 'mysql'
2
1
  require 'doh/mysql/readonly_row'
3
2
 
4
3
  module DohDb
@@ -1,71 +1,8 @@
1
- require 'bigdecimal'
2
- require 'date'
3
- begin
4
- require 'mysql'
5
- $mysql_loaded = true
6
- rescue
7
- $mysql_loaded = false
8
- end
9
-
10
- class Object
11
- def to_sql
12
- if $mysql_loaded
13
- str = Mysql.escape_string(to_s)
14
- else
15
- str = non_mysql_escape_string
16
- end
17
- '"' + str + '"'
18
- end
19
- private
20
- def non_mysql_escape_string
21
- str.gsub('\\', '\\\\').gsub('\'', '\\\'').gsub('"', '\\"')
22
- end
23
- end
24
-
25
- class NilClass
26
- def to_sql
27
- 'NULL'
28
- end
29
- end
30
-
31
- class Numeric
32
- def to_sql
33
- to_s
34
- end
35
- end
36
-
37
- class DateTime
38
- def to_sql
39
- '"' + strftime('%Y-%m-%d %H:%M:%S') + '"'
40
- end
41
- end
42
-
43
- class Time
44
- def to_sql
45
- '"' + strftime('%Y-%m-%d %H:%M:%S') + '"'
46
- end
47
- end
48
-
49
- class TrueClass
50
- def to_sql
51
- '1'
52
- end
53
- end
54
-
55
- class FalseClass
56
- def to_sql
57
- '0'
58
- end
59
- end
60
-
61
- class BigDecimal
62
- def to_sql
63
- to_s('F')
64
- end
65
- end
1
+ require 'sqlstmt/to_sql'
2
+ require 'mysql2'
66
3
 
67
- class Array
4
+ class String
68
5
  def to_sql
69
- '(' + collect { |elem| elem.to_sql }.join(',') + ')'
6
+ "'#{Mysql2::Client.escape(to_s)}'"
70
7
  end
71
8
  end
@@ -1,26 +1,5 @@
1
1
  module DohDb
2
2
 
3
- @@column_types = {}
4
- def self.register_column_type(database, table, column, klass)
5
- database = '__global__' # until database support is available
6
- @@column_types[database] ||= {}
7
- table = '__global__' if table.nil?
8
- @@column_types[database][table] ||= {}
9
- @@column_types[database][table][column] = klass
10
- end
11
-
12
- def self.find_column_type(database, table, column)
13
- database = '__global__' # until database support is available
14
- db_hash = @@column_types[database]; return nil unless db_hash
15
- table = '__global__' if table.nil?
16
- table_hash = db_hash[table]; return nil unless table_hash
17
- table_hash[column]
18
- end
19
-
20
- def self.link_database_types(dest_db, source_db)
21
- @@column_types[dest_db] = @@column_types[source_db]
22
- end
23
-
24
3
  @@row_types = {}
25
4
  def self.register_row_type(table, klass)
26
5
  @@row_types[table] = klass
data/test/to_sql.dt.rb CHANGED
@@ -4,14 +4,7 @@ module DohDb
4
4
 
5
5
  class Test_to_sql < DohTest::TestGroup
6
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)
7
+ assert_equal("'blah'", 'blah'.to_sql)
15
8
  end
16
9
  end
17
10
 
data/test/types.dt.rb CHANGED
@@ -20,7 +20,7 @@ class Test_types < DohTest::TestGroup
20
20
  assert_equal(5, row['int_field'])
21
21
  assert_equal(true, row['bool_field'])
22
22
  assert_equal(Date.new(2012,2,20), row['date_field'])
23
- assert_equal(Time.utc(2012,2,20, 21, 6, 0), row['datetime_field'])
23
+ assert_equal(DateTime.new(2012,2,20, 21, 6, 0).utc, row['datetime_field'])
24
24
  assert_equal(BigDecimal('54.12'), row['decimal_field'])
25
25
  end
26
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dohmysql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-02-23 00:00:00.000000000Z
13
+ date: 2012-02-27 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: dohutil
17
- requirement: &70236167835480 !ruby/object:Gem::Requirement
17
+ requirement: &70362932067240 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 0.1.5
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70236167835480
25
+ version_requirements: *70362932067240
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: mysql2
28
- requirement: &70236167834600 !ruby/object:Gem::Requirement
28
+ requirement: &70362932066660 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,21 @@ dependencies:
33
33
  version: 0.3.11
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *70236167834600
36
+ version_requirements: *70362932066660
37
+ - !ruby/object:Gem::Dependency
38
+ name: sqlstmt
39
+ requirement: &70362932065940 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: 0.1.0
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: *70362932065940
37
48
  - !ruby/object:Gem::Dependency
38
49
  name: dohtest
39
- requirement: &70236167833680 !ruby/object:Gem::Requirement
50
+ requirement: &70362932065220 !ruby/object:Gem::Requirement
40
51
  none: false
41
52
  requirements:
42
53
  - - ! '>='
@@ -44,7 +55,7 @@ dependencies:
44
55
  version: 0.1.4
45
56
  type: :development
46
57
  prerelease: false
47
- version_requirements: *70236167833680
58
+ version_requirements: *70362932065220
48
59
  description: wrapper classes around low level mysql gem to provide a better interface
49
60
  email:
50
61
  - devinfo@atpsoft.com