dohmysql 0.1.5 → 0.1.6

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/bin/makedb CHANGED
@@ -5,7 +5,7 @@ require 'doh/mysql/database_creator'
5
5
 
6
6
  opts = Doh::Options.new(
7
7
  {'drop_first' => [false, "-z", "--drop_first", "if true, will drop the database or tables before creating"] \
8
- ,'database' => [Doh::config[:default_database], "-d", "--database <database>", "name of the source database -- defaults to Doh::config[:default_database], currently '#{Doh::config[:default_database]}'"] \
8
+ ,'database' => [Doh.config[:default_database], "-d", "--database <database>", "name of the source database -- defaults to Doh.config[:default_database], currently '#{Doh.config[:default_database]}'"] \
9
9
  ,'all' => [false, "-a", "--all", "create all databases"] \
10
10
  ,'target' => [nil, "-g", "--target <database>", "name of the target database -- defaults to same as source"] \
11
11
  ,'tables' => [nil, "-t", "--tables <tables>", "comma-delimited list of tables to create; if specified, no databases are dropped or created"]
@@ -8,76 +8,12 @@ def self.connector_instance
8
8
  @@connector_instance
9
9
  end
10
10
 
11
- def self.request_handle
12
- connector_instance.request_handle
13
11
  end
14
12
 
15
- def self.query(statement)
16
- request_handle.query(statement)
17
- end
18
-
19
- def self.update(statement)
20
- request_handle.update(statement)
21
- end
22
-
23
- def self.update_row(statement)
24
- request_handle.update_row(statement)
25
- end
26
-
27
- def self.update_hash(hash, table, primary_key_value, primary_key_name)
28
- request_handle.update_hash(hash, table, primary_key_value, primary_key_name)
29
- end
30
-
31
- def self.insert(statement)
32
- request_handle.insert(statement)
33
- end
34
-
35
- def self.insert_hash(hash, table, quote_strings = true)
36
- request_handle.insert_hash(hash, table, quote_strings)
37
- end
38
-
39
- def self.insert_ignore_hash(hash, table, quote_strings = true)
40
- request_handle.insert_ignore_hash(hash, table, quote_strings)
41
- end
42
-
43
- def self.replace_hash(hash, table, quote_strings = true)
44
- request_handle.replace_hash(hash, table, quote_strings)
45
- end
46
-
47
- def self.select(statement, row_builder = nil)
48
- request_handle.select(statement, row_builder)
49
- end
50
-
51
- def self.select_row(statement, row_builder = nil)
52
- request_handle.select_row(statement, row_builder)
53
- end
54
-
55
- def self.select_optional_row(statement, row_builder = nil)
56
- request_handle.select_optional_row(statement, row_builder)
57
- end
58
-
59
- def self.select_field(statement, row_builder = nil)
60
- request_handle.select_field(statement, row_builder)
61
- end
62
-
63
- def self.select_optional_field(statement, row_builder = nil)
64
- request_handle.select_optional_field(statement, row_builder)
65
- end
66
-
67
- def self.select_transpose(statement, row_builder = nil)
68
- request_handle.select_transpose(statement, row_builder)
69
- end
70
-
71
- def self.select_values(statement, row_builder = nil)
72
- request_handle.select_values(statement, row_builder)
73
- end
74
-
75
- def self.select_list(statement, row_builder = nil)
76
- request_handle.select_list(statement, row_builder)
77
- end
13
+ module Doh
78
14
 
79
- def self.multi_select(statements)
80
- request_handle.multi_select(statements)
15
+ def self.db
16
+ DohDb.connector_instance.request_handle
81
17
  end
82
18
 
83
19
  end
@@ -15,7 +15,7 @@ def self.drop_create_and_connect(connector, new_default_database = nil)
15
15
  end
16
16
 
17
17
  def self.reconfigure_connector(cfg, connector = nil)
18
- connector ||= DohDb::connector_instance
18
+ connector ||= DohDb.connector_instance
19
19
  connector.reset
20
20
  connector.host = cfg['host'] if cfg.key?('host')
21
21
  connector.username = cfg['username'] if cfg.key?('username')
@@ -3,12 +3,12 @@ require 'doh/mysql/db_date'
3
3
 
4
4
  module DohDb
5
5
 
6
- def self.current_date_db
7
- Doh::current_date(DohDb::today)
6
+ def self.current_date
7
+ Doh.current_date(DohDb.today)
8
8
  end
9
9
 
10
- def self.current_datetime_db
11
- Doh::current_datetime(DohDb::now)
10
+ def self.current_datetime
11
+ Doh.current_datetime(DohDb.now)
12
12
  end
13
13
 
14
14
  end
@@ -7,8 +7,8 @@ module DohDb
7
7
 
8
8
  class DatabaseCreator
9
9
  def initialize(sqlfiles_directory = nil, connector = nil)
10
- @sqlfiles_directory = sqlfiles_directory || File.join(Doh::root, 'database')
11
- @connector = connector || DohDb::connector_instance
10
+ @sqlfiles_directory = sqlfiles_directory || File.join(Doh.root, 'database')
11
+ @connector = connector || DohDb.connector_instance
12
12
  @include_scripts = true
13
13
  end
14
14
 
@@ -66,12 +66,12 @@ private
66
66
  files = [sql_filename(database, 'tables', table_name)]
67
67
  inserts_file = sql_filename(database, 'insert_sql', table_name)
68
68
  files.push(inserts_file) if File.exist?(inserts_file)
69
- DohDb::load_sql(dbh.config, files)
69
+ DohDb.load_sql(dbh.config, files)
70
70
  end
71
71
 
72
72
  def create_view(dbh, database, view_name, drop_first)
73
73
  dbh.query("DROP VIEW IF EXISTS #{view_name}") if drop_first
74
- DohDb::load_sql(dbh.config, [sql_filename(database, 'views', view_name)])
74
+ DohDb.load_sql(dbh.config, [sql_filename(database, 'views', view_name)])
75
75
  end
76
76
 
77
77
  def create_one_database(dbh, dest_db, source_db, drop_first)
@@ -84,7 +84,7 @@ private
84
84
  @connector.config[:database] = dest_db
85
85
 
86
86
  files = find_files(source_db, 'tables') + find_files(source_db, 'insert_sql') + view_files(source_db)
87
- DohDb::load_sql(@connector.config, files)
87
+ DohDb.load_sql(@connector.config, files)
88
88
  return unless @include_scripts
89
89
  find_files(source_db, 'insert_scripts', '.rb').each do |filename|
90
90
  dohlog.info("loading file: #{filename}")
@@ -130,10 +130,10 @@ class Handle
130
130
  if field_count < 2
131
131
  raise UnexpectedQueryResult, "must select at least 2 fields in order to transpose"
132
132
  elsif field_count == 2
133
- Doh::array_to_hash(rows) { |row| [row.at(0), row.at(1)] }
133
+ Doh.array_to_hash(rows) { |row| [row.at(0), row.at(1)] }
134
134
  else
135
135
  key_field = rows.first.keys.first
136
- Doh::array_to_hash(rows) do |row|
136
+ Doh.array_to_hash(rows) do |row|
137
137
  value = row.to_h
138
138
  value.delete(key_field)
139
139
  [row.at(0), value]
@@ -8,7 +8,7 @@ end
8
8
 
9
9
  def self.load_sql(dbconfig, filenames)
10
10
  mysqlcmd = 'mysql' + mysql_arg(dbconfig[:host], 'h') + mysql_arg(dbconfig[:username], 'u') + mysql_arg(dbconfig[:password], 'p') + ' ' + dbconfig[:database]
11
- io = IO::popen(mysqlcmd, 'r+')
11
+ io = IO.popen(mysqlcmd, 'r+')
12
12
  dohlog.debug("loading sql file: " + filenames.first) if filenames.size == 1
13
13
  filenames.each do |elem|
14
14
  open(elem) {|file| io << file.read}
@@ -4,11 +4,11 @@ module DohDb
4
4
 
5
5
  @@cached_column_info = {}
6
6
  def self.column_info(table, database = nil)
7
- database ||= DohDb::connector_instance.config[:database]
7
+ database ||= DohDb.connector_instance.config[:database]
8
8
  lookup_str = database + '.' + table
9
9
  return @@cached_column_info[lookup_str] if @@cached_column_info[lookup_str]
10
10
  stmt = "SELECT column_name, is_nullable, data_type, character_maximum_length, numeric_scale, column_type FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='#{database}' AND TABLE_NAME='#{table}'"
11
- @@cached_column_info[lookup_str] = DohDb::select_transpose(stmt)
11
+ @@cached_column_info[lookup_str] = Doh.db.select_transpose(stmt)
12
12
  end
13
13
 
14
14
  def self.field_character_size(table, field, database = nil)
@@ -39,9 +39,9 @@ end
39
39
 
40
40
  @@tables_by_database = {}
41
41
  def self.all_tables(database = nil)
42
- database ||= DohDb::connector_instance.config[:database]
42
+ database ||= DohDb.connector_instance.config[:database]
43
43
  @@tables_by_database[database] ||
44
- @@tables_by_database[database] ||= DohDb::select_list("SELECT table_name FROM information_schema.tables WHERE table_schema = '#{database}'")
44
+ @@tables_by_database[database] ||= Doh.db.select_list("SELECT table_name FROM information_schema.tables WHERE table_schema = '#{database}'")
45
45
  end
46
46
 
47
47
  end
@@ -6,26 +6,26 @@ module DohDb
6
6
  class Test_ConnectorInstance < DohTest::TestGroup
7
7
  def test_stuff
8
8
  init_global_connector
9
- DohDb::query("CREATE TEMPORARY TABLE #{tbl} (id INT UNSIGNED AUTO_INCREMENT NOT NULL KEY, value INT NOT NULL DEFAULT 0, created_on DATE, created_at DATETIME, money DECIMAL(7,2) NOT NULL DEFAULT 0)")
10
- assert_equal(1, DohDb::insert("INSERT INTO #{tbl} (id, created_on, created_at, money) VALUES (null, CURDATE(), '2007-01-01 10:30:05', 10.5)"))
11
- assert_equal(2, DohDb::insert("INSERT INTO #{tbl} (id, created_on) VALUES (null, 0)"))
12
- assert_equal(1, DohDb::update("UPDATE #{tbl} SET money = 10.8 WHERE id = 1"))
13
- assert_equal(BigDecimal('10.80'), DohDb::select_field("SELECT money FROM #{tbl} WHERE id = 1"))
14
- assert_raises(UnexpectedQueryResult) {DohDb::select_row("SELECT * FROM #{tbl} WHERE id = 7")}
15
- assert_equal(nil, DohDb::select_optional_row("SELECT * FROM #{tbl} WHERE id = 7"))
16
- assert_raises(UnexpectedQueryResult){DohDb::select_optional_row("SELECT * FROM #{tbl} WHERE id < 3")}
17
- assert_equal(nil, DohDb::select_optional_field("SELECT money FROM #{tbl} WHERE id = 7"))
18
- assert_raises(UnexpectedQueryResult) {DohDb::select_field("SELECT money FROM #{tbl} WHERE id = 7")}
19
- assert_equal(1, DohDb::update_row("UPDATE #{tbl} SET money = 10.95 WHERE id = 1"))
20
- assert_raises(Mysql2::Error){DohDb::query("some invalid sql here")}
9
+ Doh.db.query("CREATE TEMPORARY TABLE #{tbl} (id INT UNSIGNED AUTO_INCREMENT NOT NULL KEY, value INT NOT NULL DEFAULT 0, created_on DATE, created_at DATETIME, money DECIMAL(7,2) NOT NULL DEFAULT 0)")
10
+ assert_equal(1, Doh.db.insert("INSERT INTO #{tbl} (id, created_on, created_at, money) VALUES (null, CURDATE(), '2007-01-01 10:30:05', 10.5)"))
11
+ assert_equal(2, Doh.db.insert("INSERT INTO #{tbl} (id, created_on) VALUES (null, 0)"))
12
+ assert_equal(1, Doh.db.update("UPDATE #{tbl} SET money = 10.8 WHERE id = 1"))
13
+ assert_equal(BigDecimal('10.80'), Doh.db.select_field("SELECT money FROM #{tbl} WHERE id = 1"))
14
+ assert_raises(UnexpectedQueryResult) {Doh.db.select_row("SELECT * FROM #{tbl} WHERE id = 7")}
15
+ assert_equal(nil, Doh.db.select_optional_row("SELECT * FROM #{tbl} WHERE id = 7"))
16
+ assert_raises(UnexpectedQueryResult){Doh.db.select_optional_row("SELECT * FROM #{tbl} WHERE id < 3")}
17
+ assert_equal(nil, Doh.db.select_optional_field("SELECT money FROM #{tbl} WHERE id = 7"))
18
+ assert_raises(UnexpectedQueryResult) {Doh.db.select_field("SELECT money FROM #{tbl} WHERE id = 7")}
19
+ assert_equal(1, Doh.db.update_row("UPDATE #{tbl} SET money = 10.95 WHERE id = 1"))
20
+ assert_raises(Mysql2::Error){Doh.db.query("some invalid sql here")}
21
21
  # TODO: re-enable
22
22
  # assert(DohTest::pop_error)
23
- assert_raises(UnexpectedQueryResult) {DohDb::update_row("UPDATE #{tbl} SET money = 10.95 WHERE id = 7")}
24
- onerow = DohDb::select_row("SELECT * FROM #{tbl} WHERE id = 1")
23
+ assert_raises(UnexpectedQueryResult) {Doh.db.update_row("UPDATE #{tbl} SET money = 10.95 WHERE id = 7")}
24
+ onerow = Doh.db.select_row("SELECT * FROM #{tbl} WHERE id = 1")
25
25
  assert_equal(1, onerow['id'])
26
- onerow = DohDb::select_optional_row("SELECT * FROM #{tbl} WHERE id = 1")
26
+ onerow = Doh.db.select_optional_row("SELECT * FROM #{tbl} WHERE id = 1")
27
27
  assert_equal(1, onerow['id'])
28
- rows = DohDb::select("SELECT * FROM #{tbl}")
28
+ rows = Doh.db.select("SELECT * FROM #{tbl}")
29
29
  rows.each {|row| assert(row['id'] != 0)}
30
30
  end
31
31
  end
data/test/helpers.rb CHANGED
@@ -23,7 +23,7 @@ module InternalTestHelpers
23
23
  def init_global_connector
24
24
  require 'doh/mysql/connector_instance'
25
25
  require 'doh/mysql/cache_connector'
26
- DohDb::set_connector_instance(DohDb::CacheConnector.new(dbcfg))
26
+ DohDb.set_connector_instance(DohDb::CacheConnector.new(dbcfg))
27
27
  end
28
28
  end
29
29
 
@@ -20,7 +20,7 @@ class Test_metadata_util < DohTest::TestGroup
20
20
  def test_stuff
21
21
  dbh = get_dbh
22
22
  dbh.query("CREATE TABLE #{tbl} (num INT, str CHAR(7))")
23
- column_info = DohDb::column_info(tbl)
23
+ column_info = DohDb.column_info(tbl)
24
24
  info = column_info['str']
25
25
  assert_equal('char', info['data_type'])
26
26
  assert_equal(7, info['character_maximum_length'])
@@ -28,16 +28,16 @@ class Test_metadata_util < DohTest::TestGroup
28
28
  assert_equal('int', info['data_type'])
29
29
  assert_equal(nil, info['character_maximum_length'])
30
30
 
31
- assert_equal(7, DohDb::field_character_size(tbl, 'str'))
32
- assert_equal(nil, DohDb::field_character_size(tbl, 'num'))
31
+ assert_equal(7, DohDb.field_character_size(tbl, 'str'))
32
+ assert_equal(nil, DohDb.field_character_size(tbl, 'num'))
33
33
 
34
34
  row = {'num' => 'blahblahblah', 'str' => 'blahblahblah'}
35
- DohDb::chop_character_fields!(tbl, row)
35
+ DohDb.chop_character_fields!(tbl, row)
36
36
  assert_equal('blahblahblah', row['num'])
37
37
  assert_equal('blahbla', row['str'])
38
38
 
39
39
  row = {'num' => 'blahblahblah', 'str' => 'blahblahblah'}
40
- newrow = DohDb::chop_character_fields(tbl, row)
40
+ newrow = DohDb.chop_character_fields(tbl, row)
41
41
  assert_equal('blahblahblah', newrow['num'])
42
42
  assert_equal('blahbla', newrow['str'])
43
43
  assert_equal('blahblahblah', row['num'])
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.5
4
+ version: 0.1.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ date: 2012-03-30 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: dohroot
17
- requirement: &70242076304200 !ruby/object:Gem::Requirement
17
+ requirement: &70363389961120 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 0.1.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70242076304200
25
+ version_requirements: *70363389961120
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: dohutil
28
- requirement: &70242076279100 !ruby/object:Gem::Requirement
28
+ requirement: &70363389960520 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 0.1.8
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *70242076279100
36
+ version_requirements: *70363389960520
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: mysql2
39
- requirement: &70242076275220 !ruby/object:Gem::Requirement
39
+ requirement: &70363389959920 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 0.3.11
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *70242076275220
47
+ version_requirements: *70363389959920
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: sqlstmt
50
- requirement: &70242076249640 !ruby/object:Gem::Requirement
50
+ requirement: &70363389959340 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: 0.1.1
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *70242076249640
58
+ version_requirements: *70363389959340
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: dohtest
61
- requirement: &70242076246900 !ruby/object:Gem::Requirement
61
+ requirement: &70363389933500 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,7 +66,7 @@ dependencies:
66
66
  version: 0.1.8
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *70242076246900
69
+ version_requirements: *70363389933500
70
70
  description: wrapper classes around low level mysql gem to provide a better interface
71
71
  email:
72
72
  - devinfo@atpsoft.com