baza 0.0.19 → 0.0.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +157 -0
  3. data/Gemfile +11 -9
  4. data/Gemfile.lock +41 -9
  5. data/README.md +1 -1
  6. data/Rakefile +19 -16
  7. data/VERSION +1 -1
  8. data/baza.gemspec +31 -7
  9. data/config/best_project_practice_rubocop.yml +2 -0
  10. data/config/best_project_practice_rubocop_todo.yml +157 -0
  11. data/lib/baza/base_sql_driver.rb +79 -20
  12. data/lib/baza/cloner.rb +2 -2
  13. data/lib/baza/column.rb +6 -0
  14. data/lib/baza/database.rb +33 -0
  15. data/lib/baza/database_model.rb +26 -0
  16. data/lib/baza/database_model_functionality.rb +10 -0
  17. data/lib/baza/database_model_name.rb +16 -0
  18. data/lib/baza/db.rb +210 -413
  19. data/lib/baza/dbtime.rb +20 -20
  20. data/lib/baza/driver.rb +3 -3
  21. data/lib/baza/drivers/active_record/columns.rb +1 -1
  22. data/lib/baza/drivers/active_record/indexes.rb +1 -1
  23. data/lib/baza/drivers/active_record/result.rb +3 -5
  24. data/lib/baza/drivers/active_record/tables.rb +2 -2
  25. data/lib/baza/drivers/active_record.rb +30 -16
  26. data/lib/baza/drivers/mysql/column.rb +51 -48
  27. data/lib/baza/drivers/mysql/columns.rb +8 -8
  28. data/lib/baza/drivers/mysql/database.rb +28 -0
  29. data/lib/baza/drivers/mysql/databases.rb +35 -0
  30. data/lib/baza/drivers/mysql/index.rb +32 -22
  31. data/lib/baza/drivers/mysql/result.rb +24 -24
  32. data/lib/baza/drivers/mysql/sqlspecs.rb +1 -1
  33. data/lib/baza/drivers/mysql/table.rb +80 -91
  34. data/lib/baza/drivers/mysql/tables.rb +30 -32
  35. data/lib/baza/drivers/mysql/unbuffered_result.rb +5 -5
  36. data/lib/baza/drivers/mysql.rb +127 -220
  37. data/lib/baza/drivers/mysql2/database.rb +2 -0
  38. data/lib/baza/drivers/mysql2/databases.rb +2 -0
  39. data/lib/baza/drivers/mysql2/result.rb +3 -5
  40. data/lib/baza/drivers/mysql2.rb +21 -106
  41. data/lib/baza/drivers/mysql_java/database.rb +2 -0
  42. data/lib/baza/drivers/mysql_java/databases.rb +2 -0
  43. data/lib/baza/drivers/mysql_java.rb +16 -12
  44. data/lib/baza/drivers/sqlite3/column.rb +33 -33
  45. data/lib/baza/drivers/sqlite3/columns.rb +6 -6
  46. data/lib/baza/drivers/sqlite3/database.rb +2 -0
  47. data/lib/baza/drivers/sqlite3/databases.rb +25 -0
  48. data/lib/baza/drivers/sqlite3/index.rb +20 -6
  49. data/lib/baza/drivers/sqlite3/result.rb +16 -17
  50. data/lib/baza/drivers/sqlite3/sqlspecs.rb +1 -1
  51. data/lib/baza/drivers/sqlite3/table.rb +99 -100
  52. data/lib/baza/drivers/sqlite3/tables.rb +30 -23
  53. data/lib/baza/drivers/sqlite3/unbuffered_result.rb +2 -2
  54. data/lib/baza/drivers/sqlite3.rb +27 -14
  55. data/lib/baza/drivers/sqlite3_java/database.rb +2 -0
  56. data/lib/baza/drivers/sqlite3_java/unbuffered_result.rb +2 -2
  57. data/lib/baza/drivers/sqlite3_java.rb +12 -10
  58. data/lib/baza/drivers/sqlite3_rhodes.rb +9 -7
  59. data/lib/baza/dump.rb +55 -55
  60. data/lib/baza/errors.rb +5 -0
  61. data/lib/baza/idquery.rb +25 -25
  62. data/lib/baza/index.rb +6 -0
  63. data/lib/baza/jdbc_driver.rb +6 -8
  64. data/lib/baza/jdbc_result.rb +1 -1
  65. data/lib/baza/model.rb +299 -309
  66. data/lib/baza/model_custom.rb +74 -72
  67. data/lib/baza/model_handler.rb +244 -255
  68. data/lib/baza/model_handler_sqlhelper.rb +122 -132
  69. data/lib/baza/mysql_base_driver.rb +112 -0
  70. data/lib/baza/query_buffer.rb +23 -23
  71. data/lib/baza/result_base.rb +2 -2
  72. data/lib/baza/revision.rb +67 -67
  73. data/lib/baza/row.rb +82 -84
  74. data/lib/baza/sqlspecs.rb +1 -1
  75. data/lib/baza/table.rb +31 -0
  76. data/lib/baza.rb +43 -10
  77. data/shippable.yml +1 -0
  78. data/spec/cloner_spec.rb +4 -4
  79. data/spec/drivers/active_record_mysql2_spec.rb +3 -3
  80. data/spec/drivers/active_record_mysql_spec.rb +2 -2
  81. data/spec/drivers/active_record_sqlite3_spec.rb +2 -2
  82. data/spec/drivers/mysql2_spec.rb +1 -0
  83. data/spec/drivers/mysql_spec.rb +1 -0
  84. data/spec/drivers/sqlite3_spec.rb +4 -5
  85. data/spec/info_active_record_example.rb +4 -6
  86. data/spec/info_active_record_mysql.rb +6 -7
  87. data/spec/info_active_record_mysql2.rb +2 -4
  88. data/spec/info_active_record_mysql2_shippable.rb +2 -4
  89. data/spec/info_active_record_mysql_shippable.rb +2 -4
  90. data/spec/info_active_record_sqlite3.rb +5 -6
  91. data/spec/info_mysql2_example.rb +1 -1
  92. data/spec/info_mysql2_shippable.rb +1 -1
  93. data/spec/info_mysql_example.rb +1 -1
  94. data/spec/info_mysql_shippable.rb +1 -1
  95. data/spec/info_sqlite3.rb +4 -3
  96. data/spec/model_handler_spec.rb +102 -115
  97. data/spec/spec_helper.rb +5 -5
  98. data/spec/support/driver_collection.rb +98 -95
  99. data/spec/support/driver_columns_collection.rb +18 -22
  100. data/spec/support/driver_databases_collection.rb +29 -0
  101. data/spec/support/driver_indexes_collection.rb +7 -6
  102. data/spec/support/driver_tables_collection.rb +38 -26
  103. metadata +49 -3
data/lib/baza/row.rb CHANGED
@@ -1,23 +1,26 @@
1
1
  class Baza::Row
2
+ include Baza::DatabaseModelFunctionality
3
+
2
4
  attr_reader :args, :data
3
-
4
- def is_knj?; return true; end
5
-
5
+
6
+ def knj?
7
+ true
8
+ end
9
+
6
10
  def initialize(args)
7
11
  @args = {}
8
12
  args.each do |key, value|
9
13
  @args[key.to_sym] = value
10
14
  end
11
-
12
- @args[:db] = $db if !@args[:db] and $db and $db.class.to_s == "Baza::Db"
13
- @args[:objects] = $objects if !@args[:objects] and $objects and $objects.is_a?(Baza::ModelHandler)
14
- @args[:col_id] = :id if !@args[:col_id]
15
- raise "No table given." if !@args[:table]
16
-
17
- if @args[:data] and (@args[:data].is_a?(Integer) or @args[:data].is_a?(Fixnum) or @args[:data].is_a?(String))
15
+
16
+ @args[:objects] = $objects if !@args[:objects] && $objects && $objects.is_a?(Baza::ModelHandler)
17
+ @args[:col_id] ||= :id
18
+ raise "No table given." unless @args[:table]
19
+
20
+ if @args[:data] && (@args[:data].is_a?(Integer) || @args[:data].is_a?(Fixnum) || @args[:data].is_a?(String))
18
21
  @data = {@args[:col_id].to_sym => @args[:data].to_s}
19
- self.reload
20
- elsif @args[:data] and @args[:data].is_a?(Hash)
22
+ reload
23
+ elsif @args[:data] && @args[:data].is_a?(Hash)
21
24
  @data = {}
22
25
  @args[:data].each do |key, value|
23
26
  @data[key.to_sym] = value
@@ -25,71 +28,61 @@ class Baza::Row
25
28
  elsif @args[:id]
26
29
  @data = {}
27
30
  @data[@args[:col_id].to_sym] = @args[:id]
28
- self.reload
31
+ reload
29
32
  else
30
- raise ArgumentError.new("Invalid data: #{@args[:data].to_s} (#{@args[:data].class.to_s})")
33
+ raise ArgumentError.new("Invalid data: #{@args[:data]} (#{@args[:data].class})")
31
34
  end
32
35
  end
33
-
36
+
34
37
  def db
35
- if !@args[:force_selfdb]
36
- curthread = Thread.current
37
- if curthread.is_a?(Knj::Thread) and curthread[:knjappserver] and curthread[:knjappserver][:db]
38
- return curthread[:knjappserver][:db]
39
- end
40
- end
41
-
42
- return @args[:db]
38
+ @args.fetch(:db)
43
39
  end
44
-
40
+
45
41
  def ob
46
42
  return @args[:objects] if @args.key?(:objects)
47
- return $ob if $ob and $ob.is_a?(Baza::ModelHandler)
48
- return false
43
+ false
49
44
  end
50
-
51
- alias :objects :ob
52
-
45
+
46
+ alias_method :objects, :ob
47
+
53
48
  def reload
54
- last_id = self.id
55
- data = self.db.single(@args[:table], {@args[:col_id] => self.id})
56
- if !data
57
- raise Errno::ENOENT.new("Could not find any data for the object with ID: '#{last_id}' in the table '#{@args[:table].to_s}'.")
49
+ last_id = id
50
+ data = db.single(@args[:table], @args[:col_id] => id)
51
+ unless data
52
+ raise Errno::ENOENT, "Could not find any data for the object with ID: '#{last_id}' in the table '#{@args[:table]}'."
58
53
  end
59
-
54
+
60
55
  @data = {}
61
56
  data.each do |key, value|
62
57
  @data[key.to_sym] = value
63
58
  end
64
59
  end
65
-
60
+
66
61
  def update(newdata)
67
- self.db.update(@args[:table], newdata, {@args[:col_id] => self.id})
68
- self.reload
69
-
70
- if self.ob
71
- self.ob.call("object" => self, "signal" => "update")
72
- end
62
+ db.update(@args[:table], newdata, @args[:col_id] => id)
63
+ reload
64
+
65
+ ob.call("object" => self, "signal" => "update") if ob
73
66
  end
74
-
67
+
75
68
  def delete
76
- self.db.delete(@args[:table], {@args[:col_id] => self.id})
77
- self.destroy
69
+ db.delete(@args[:table], @args[:col_id] => id)
70
+ destroy
78
71
  end
79
-
72
+
80
73
  def destroy
81
74
  @args = nil
82
75
  @data = nil
83
76
  end
84
-
85
- def has_key?(key)
86
- return @data.key?(key.to_sym)
77
+
78
+ def key?(key)
79
+ @data.key?(key.to_sym)
87
80
  end
88
-
81
+
89
82
  def [](key)
90
- raise "No valid key given." if !key
91
- raise "No data was loaded on the object? Maybe you are trying to call a deleted object?" if !@data
92
-
83
+ raise "No valid key given." unless key
84
+ raise "No data was loaded on the object? Maybe you are trying to call a deleted object?" unless @data
85
+
93
86
  if @data.key?(key)
94
87
  return @data[key]
95
88
  elsif @data.key?(key.to_sym)
@@ -97,57 +90,62 @@ class Baza::Row
97
90
  elsif @data.key?(key.to_s)
98
91
  return @data[key.to_s]
99
92
  end
100
-
101
- raise "No such key: #{key.to_s}."
93
+
94
+ raise "No such key: #{key}."
102
95
  end
103
-
96
+
104
97
  def []=(key, value)
105
- self.update(key.to_sym => value)
106
- self.reload
98
+ update(key.to_sym => value)
99
+ reload
107
100
  end
108
-
101
+
109
102
  def id
110
- return @data[@args[:col_id]]
103
+ @data[@args[:col_id]]
111
104
  end
112
-
105
+
106
+ def to_param
107
+ id
108
+ end
109
+
113
110
  def title
114
- if @args[:col_title]
115
- return @data[@args[:col_title].to_sym]
116
- end
117
-
111
+ return @data[@args[:col_title].to_sym] if @args[:col_title]
112
+
118
113
  if @data.key?(:title)
119
114
  return @data[:title]
120
115
  elsif @data.key?(:name)
121
116
  return @data[:name]
122
117
  end
123
-
124
- raise "'col_title' has not been set for the class: '#{self.class.to_s}'."
118
+
119
+ raise "'col_title' has not been set for the class: '#{self.class}'."
120
+ end
121
+
122
+ alias_method :name, :title
123
+
124
+ def each(*args, &blk)
125
+ @data.each(*args, &blk)
125
126
  end
126
-
127
- alias :name :title
128
-
129
- def each(&args)
130
- return @data.each(&args)
127
+
128
+ def each_value(*args, &blk)
129
+ @data.each_value(*args, &blk)
131
130
  end
132
-
131
+
133
132
  def to_hash
134
- return @data.clone
133
+ @data.clone
135
134
  end
136
-
135
+
137
136
  def esc(str)
138
- return self.db.escape(str)
137
+ db.escape(str)
139
138
  end
140
-
141
- def method_missing(*args)
142
- func_name = args[0].to_s
143
- if match = func_name.match(/^(\S+)\?$/) and @data.key?(match[1].to_sym)
144
- if @data[match[1].to_sym] == "1" or @data[match[1].to_sym] == "yes"
139
+
140
+ def method_missing(func_name, *args)
141
+ if match = func_name.to_s.match(/^(\S+)\?$/) && @data.key?(match[1].to_sym)
142
+ if @data[match[1].to_sym] == "1" || @data[match[1].to_sym] == "yes"
145
143
  return true
146
- elsif @data[match[1].to_sym] == "0" or @data[match[1].to_sym] == "no"
144
+ elsif @data[match[1].to_sym] == "0" || @data[match[1].to_sym] == "no"
147
145
  return false
148
146
  end
149
147
  end
150
-
151
- raise sprintf("No such method: %s", func_name)
148
+
149
+ super
152
150
  end
153
- end
151
+ end
data/lib/baza/sqlspecs.rb CHANGED
@@ -2,4 +2,4 @@ class Baza::Sqlspecs
2
2
  def initialize(args)
3
3
  @args = args
4
4
  end
5
- end
5
+ end
data/lib/baza/table.rb CHANGED
@@ -1,4 +1,8 @@
1
1
  class Baza::Table
2
+ include Baza::DatabaseModelFunctionality
3
+
4
+ attr_reader :db
5
+
2
6
  def to_s
3
7
  "#<#{self.class.name} name=\"#{name}\">"
4
8
  end
@@ -6,4 +10,31 @@ class Baza::Table
6
10
  def inspect
7
11
  to_s
8
12
  end
13
+
14
+ def rows(*args)
15
+ ArrayEnumerator.new do |yielder|
16
+ db.select(name, *args) do |data|
17
+ yielder << Baza::Row.new(
18
+ db: db,
19
+ table: name,
20
+ data: data
21
+ )
22
+ end
23
+ end
24
+ end
25
+
26
+ def row(id)
27
+ data = rows({id: id}, limit: 1).fetch
28
+ raise Baza::Errors::RowNotFound unless data
29
+
30
+ Baza::Row.new(
31
+ db: db,
32
+ table: name,
33
+ data: data
34
+ )
35
+ end
36
+
37
+ def to_param
38
+ name
39
+ end
9
40
  end
data/lib/baza.rb CHANGED
@@ -1,31 +1,64 @@
1
- require 'wref'
2
- require 'datet'
3
- require 'string-cases'
1
+ require "array_enumerator"
2
+ require "wref"
3
+ require "datet"
4
+ require "string-cases"
4
5
 
5
6
  class Baza
6
- #Autoloader for subclasses.
7
+ # Autoloader for subclasses.
7
8
  def self.const_missing(name)
8
- file_name = name.to_s.gsub(/(.)([A-Z])/,'\1_\2').downcase
9
+ file_name = name.to_s.gsub(/(.)([A-Z])/, '\1_\2').downcase
9
10
  require "#{File.dirname(__FILE__)}/baza/#{file_name}.rb"
10
11
  raise "Still not defined: '#{name}'." unless Baza.const_defined?(name)
11
- return Baza.const_get(name)
12
+ Baza.const_get(name)
12
13
  end
13
14
 
14
- def self.default_db=(db)
15
- @default_db = db
15
+ class << self
16
+ attr_writer :default_db
16
17
  end
17
18
 
18
19
  def self.default_db
19
20
  unless @default_db
20
21
  config_file = "#{Dir.pwd}/config/baza_database.rb"
22
+ init_file = "#{Dir.pwd}/config/initializers/baza_database.rb"
21
23
 
22
- load(config_file)
24
+ begin
25
+ load(config_file)
26
+ rescue LoadError
27
+ load(init_file)
28
+ end
23
29
 
24
30
  unless @default_db.is_a?(Baza::Db)
25
31
  raise "Config file didn't return a Baza::Db: #{@default_db.class.name}"
26
32
  end
27
33
  end
28
34
 
29
- return @default_db
35
+ @default_db
36
+ end
37
+
38
+ def self.drivers
39
+ Enumerator.new do |yielder|
40
+ Dir.foreach("#{File.dirname(__FILE__)}/baza/drivers") do |file|
41
+ if (match = file.match(/\A(.+?)\.rb\Z/))
42
+ load_driver(match[1])
43
+
44
+ driver_name = StringCases.snake_to_camel(match[1])
45
+ yielder << {
46
+ class: Baza::Driver.const_get(driver_name),
47
+ snake_name: match[1],
48
+ camel_name: driver_name
49
+ }
50
+ end
51
+ end
52
+ end
53
+ end
54
+
55
+ def self.load_driver(name)
56
+ require_relative "baza/drivers/#{name}"
57
+
58
+ loads = %w(databases database tables table columns column indexes index result)
59
+ loads.each do |load|
60
+ file_path = "#{File.dirname(__FILE__)}/baza/drivers/#{name}/#{load}"
61
+ require_relative file_path if File.exist?(file_path)
62
+ end
30
63
  end
31
64
  end
data/shippable.yml CHANGED
@@ -12,5 +12,6 @@ before_script:
12
12
  - mysql -e 'CREATE DATABASE baza;'
13
13
  script:
14
14
  - CODECLIMATE_REPO_TOKEN=98c06de7271764c9cd7bbde7cee4ddfa0d3e7db4bd9933f17779100276672e5f bundle exec rspec
15
+ - bundle exec rake best_practice_project:run
15
16
  notifications:
16
17
  email: false
data/spec/cloner_spec.rb CHANGED
@@ -1,10 +1,10 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe Baza::Cloner do
4
- it 'can clone drivers' do
5
- require 'info_active_record_mysql'
4
+ it "can clone drivers" do
5
+ require "info_active_record_mysql"
6
6
  conn = Baza::InfoActiveRecordMysql.connection
7
7
  baza_db = Baza::Cloner.from_active_record_connection(conn[:conn])
8
- expect(baza_db.query('SELECT 1 AS test').fetch[:test].to_s).to eq '1'
8
+ expect(baza_db.query("SELECT 1 AS test").fetch[:test].to_s).to eq "1"
9
9
  end
10
10
  end
@@ -1,14 +1,14 @@
1
1
  require "spec_helper"
2
2
 
3
- unless RUBY_PLATFORM == 'java'
3
+ unless RUBY_PLATFORM == "java"
4
4
  describe Baza::Driver::ActiveRecord do
5
- let(:constant) {
5
+ let(:constant) do
6
6
  name = described_class.name.split("::").last
7
7
  const_name = "InfoActiveRecordMysql2"
8
8
  require "#{File.dirname(__FILE__)}/../#{StringCases.camel_to_snake(const_name)}"
9
9
  raise "Constant was not defined: '#{const_name}'." unless Baza.const_defined?(const_name)
10
10
  Baza.const_get(const_name)
11
- }
11
+ end
12
12
 
13
13
  it_behaves_like "a baza driver"
14
14
  it_should_behave_like "a baza tables driver"
@@ -1,13 +1,13 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe Baza::Driver::ActiveRecord do
4
- let(:constant) {
4
+ let(:constant) do
5
5
  name = described_class.name.split("::").last
6
6
  const_name = "InfoActiveRecordMysql"
7
7
  require "#{File.dirname(__FILE__)}/../#{StringCases.camel_to_snake(const_name)}"
8
8
  raise "Constant was not defined: '#{const_name}'." unless Baza.const_defined?(const_name)
9
9
  Baza.const_get(const_name)
10
- }
10
+ end
11
11
 
12
12
  it_behaves_like "a baza driver"
13
13
  it_should_behave_like "a baza tables driver"
@@ -1,13 +1,13 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe Baza::Driver::ActiveRecord do
4
- let(:constant) {
4
+ let(:constant) do
5
5
  name = described_class.name.split("::").last
6
6
  const_name = "InfoActiveRecordSqlite3"
7
7
  require "#{File.dirname(__FILE__)}/../#{StringCases.camel_to_snake(const_name)}"
8
8
  raise "Constant was not defined: '#{const_name}'." unless Baza.const_defined?(const_name)
9
9
  Baza.const_get(const_name)
10
- }
10
+ end
11
11
 
12
12
  it_behaves_like "a baza driver"
13
13
  it_should_behave_like "a baza tables driver"
@@ -10,6 +10,7 @@ describe Baza::Driver::Mysql2 do
10
10
  end
11
11
 
12
12
  it_should_behave_like "a baza driver"
13
+ it_should_behave_like "a baza databases driver"
13
14
  it_should_behave_like "a baza tables driver"
14
15
  it_should_behave_like "a baza columns driver"
15
16
  it_should_behave_like "a baza indexes driver"
@@ -10,6 +10,7 @@ describe Baza.const_get(:Driver).const_get(:Mysql) do
10
10
  end
11
11
 
12
12
  it_should_behave_like "a baza driver"
13
+ it_should_behave_like "a baza databases driver"
13
14
  it_should_behave_like "a baza tables driver"
14
15
  it_should_behave_like "a baza columns driver"
15
16
  it_should_behave_like "a baza indexes driver"
@@ -19,7 +19,8 @@ describe Baza::Driver::Sqlite3 do
19
19
  db = Baza::InfoSqlite3.new.db
20
20
  db2 = Baza::InfoSqlite3.new.db
21
21
 
22
- db.tables.create(:test_table, {
22
+ db.tables.create(
23
+ :test_table,
23
24
  columns: [
24
25
  {name: "id", type: :int, autoincr: true, primarykey: true},
25
26
  {name: "testname", type: :varchar, null: true}
@@ -27,7 +28,7 @@ describe Baza::Driver::Sqlite3 do
27
28
  indexes: [
28
29
  "testname"
29
30
  ]
30
- })
31
+ )
31
32
 
32
33
  table1 = db.tables["test_table"]
33
34
  cols1 = table1.columns
@@ -36,9 +37,7 @@ describe Baza::Driver::Sqlite3 do
36
37
  table1.insert(testname: "TestRow#{count}")
37
38
  end
38
39
 
39
- expect {
40
- table2 = db2.tables[:test_table]
41
- }.to raise_error(Errno::ENOENT)
40
+ expect { table2 = db2.tables[:test_table] }.to raise_error(Baza::Errors::TableNotFound)
42
41
 
43
42
  db.copy_to(db2)
44
43
 
@@ -13,22 +13,20 @@ class Baza::InfoActiveRecord
13
13
  )
14
14
  @conn ||= @conn_pool.connection
15
15
 
16
- return {pool: @conn_pool, conn: @conn}
16
+ {pool: @conn_pool, conn: @conn}
17
17
  end
18
18
 
19
19
  def initialize
20
20
  data = Baza::InfoActiveRecord.connection
21
21
 
22
- @db = Baza::Db.new(
22
+ @db = Baza::Db.new({
23
23
  type: :active_record,
24
24
  conn: data[:conn]
25
- )
25
+ }.merge(args))
26
26
  end
27
27
 
28
28
  def before
29
- @db.tables.list.each do |name, table|
30
- table.drop
31
- end
29
+ @db.tables.list(&:drop)
32
30
  end
33
31
 
34
32
  def after
@@ -4,31 +4,30 @@ class Baza::InfoActiveRecordMysql
4
4
  def self.connection
5
5
  require "active_record"
6
6
 
7
- conn_pool = ::ActiveRecord::Base.establish_connection(
7
+ @conn_pool ||= ::ActiveRecord::Base.establish_connection(
8
8
  adapter: "mysql",
9
9
  host: "localhost",
10
10
  database: "baza-test",
11
11
  username: "baza-test",
12
12
  password: "BBH7djRUKzL5nmG3"
13
13
  )
14
- conn = conn_pool.connection
14
+ @conn ||= @conn_pool.connection
15
15
 
16
- return {pool: conn_pool, conn: conn}
16
+ {pool: @conn_pool, conn: @conn}
17
17
  end
18
18
 
19
19
  def initialize(args = {})
20
20
  @data = Baza::InfoActiveRecordMysql.connection
21
+ @data.fetch(:conn).reconnect!
21
22
 
22
23
  @db = Baza::Db.new({
23
24
  type: :active_record,
24
- conn: @data[:conn]
25
+ conn: @data.fetch(:conn)
25
26
  }.merge(args))
26
27
  end
27
28
 
28
29
  def before
29
- @db.tables.list.each do |name, table|
30
- table.drop
31
- end
30
+ @db.tables.list(&:drop)
32
31
  end
33
32
 
34
33
  def after
@@ -13,7 +13,7 @@ class Baza::InfoActiveRecordMysql2
13
13
  )
14
14
  @conn ||= @conn_pool.connection
15
15
 
16
- return {pool: @conn_pool, conn: @conn}
16
+ {pool: @conn_pool, conn: @conn}
17
17
  end
18
18
 
19
19
  def initialize(args = {})
@@ -26,9 +26,7 @@ class Baza::InfoActiveRecordMysql2
26
26
  end
27
27
 
28
28
  def before
29
- @db.tables.list.each do |name, table|
30
- table.drop
31
- end
29
+ @db.tables.list(&:drop)
32
30
  end
33
31
 
34
32
  def after
@@ -12,7 +12,7 @@ class Baza::InfoActiveRecordMysql2
12
12
  )
13
13
  conn = conn_pool.connection
14
14
 
15
- return {pool: conn_pool, conn: conn}
15
+ {pool: conn_pool, conn: conn}
16
16
  end
17
17
 
18
18
  def initialize
@@ -25,9 +25,7 @@ class Baza::InfoActiveRecordMysql2
25
25
  end
26
26
 
27
27
  def before
28
- @db.tables.list.each do |name, table|
29
- table.drop
30
- end
28
+ @db.tables.list(&:drop)
31
29
  end
32
30
 
33
31
  def after
@@ -12,7 +12,7 @@ class Baza::InfoActiveRecordMysql
12
12
  )
13
13
  conn = conn_pool.connection
14
14
 
15
- return {pool: conn_pool, conn: conn}
15
+ {pool: conn_pool, conn: conn}
16
16
  end
17
17
 
18
18
  def initialize
@@ -25,9 +25,7 @@ class Baza::InfoActiveRecordMysql
25
25
  end
26
26
 
27
27
  def before
28
- @db.tables.list.each do |name, table|
29
- table.drop
30
- end
28
+ @db.tables.list(&:drop)
31
29
  end
32
30
 
33
31
  def after
@@ -5,7 +5,7 @@ class Baza::InfoActiveRecordSqlite3
5
5
  require "active_record"
6
6
 
7
7
  path = "#{Dir.tmpdir}/baza_sqlite3_test_#{Time.now.to_f.to_s.hash}_#{Random.rand}.sqlite3"
8
- File.unlink(path) if File.exists?(path)
8
+ File.unlink(path) if File.exist?(path)
9
9
 
10
10
  @conn_pool ||= ::ActiveRecord::Base.establish_connection(
11
11
  adapter: "sqlite3",
@@ -13,7 +13,7 @@ class Baza::InfoActiveRecordSqlite3
13
13
  )
14
14
  @conn ||= @conn_pool.connection
15
15
 
16
- return {pool: @conn_pool, conn: @conn}
16
+ {pool: @conn_pool, conn: @conn}
17
17
  end
18
18
 
19
19
  def initialize(args = {})
@@ -21,14 +21,13 @@ class Baza::InfoActiveRecordSqlite3
21
21
 
22
22
  @db = Baza::Db.new({
23
23
  type: :active_record,
24
- conn: data[:conn]
24
+ conn: data[:conn],
25
+ index_append_table_name: true
25
26
  }.merge(args))
26
27
  end
27
28
 
28
29
  def before
29
- @db.tables.list.each do |name, table|
30
- table.drop
31
- end
30
+ @db.tables.list(&:drop)
32
31
  end
33
32
 
34
33
  def after
@@ -12,7 +12,7 @@ class Baza::InfoMysql
12
12
  end
13
13
 
14
14
  def before
15
- @db.tables.list.each do |name, table|
15
+ @db.tables.list do |table|
16
16
  table.drop
17
17
  end
18
18
  end
@@ -11,7 +11,7 @@ class Baza::InfoMysql2
11
11
  end
12
12
 
13
13
  def before
14
- @db.tables.list.each do |name, table|
14
+ @db.tables.list do |table|
15
15
  table.drop
16
16
  end
17
17
  end
@@ -12,7 +12,7 @@ class Baza::InfoMysql
12
12
  end
13
13
 
14
14
  def before
15
- @db.tables.list.each do |name, table|
15
+ @db.tables.list do |table|
16
16
  table.drop
17
17
  end
18
18
  end