dohmysql 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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