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.
- data/lib/doh/mysql/activate.rb +0 -5
- data/lib/doh/mysql/current_date.rb +1 -0
- data/lib/doh/mysql/database_creator.rb +0 -1
- data/lib/doh/mysql/handle.rb +1 -0
- data/lib/doh/mysql/raw_row_builder.rb +0 -1
- data/lib/doh/mysql/to_sql.rb +4 -67
- data/lib/doh/mysql/types.rb +0 -21
- data/test/to_sql.dt.rb +1 -8
- data/test/types.dt.rb +1 -1
- metadata +19 -8
data/lib/doh/mysql/activate.rb
CHANGED
@@ -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'
|
@@ -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)
|
data/lib/doh/mysql/handle.rb
CHANGED
data/lib/doh/mysql/to_sql.rb
CHANGED
@@ -1,71 +1,8 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
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
|
4
|
+
class String
|
68
5
|
def to_sql
|
69
|
-
'
|
6
|
+
"'#{Mysql2::Client.escape(to_s)}'"
|
70
7
|
end
|
71
8
|
end
|
data/lib/doh/mysql/types.rb
CHANGED
@@ -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('
|
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(
|
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.
|
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-
|
13
|
+
date: 2012-02-27 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: dohutil
|
17
|
-
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: *
|
25
|
+
version_requirements: *70362932067240
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: mysql2
|
28
|
-
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: *
|
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: &
|
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: *
|
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
|