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
@@ -1,9 +1,9 @@
1
- #This class buffers a lot of queries and flushes them out via transactions.
1
+ # This class buffers a lot of queries and flushes them out via transactions.
2
2
  class Baza::QueryBuffer
3
3
  attr_reader :thread_async
4
4
 
5
5
  INITIALIZE_ARGS_ALLOWED = [:db, :debug, :flush_async]
6
- #Constructor. Takes arguments to be used and a block.
6
+ # Constructor. Takes arguments to be used and a block.
7
7
  def initialize(args)
8
8
  @args = args
9
9
  @queries = []
@@ -37,7 +37,7 @@ class Baza::QueryBuffer
37
37
  end
38
38
  end
39
39
 
40
- #Adds a query to the buffer.
40
+ # Adds a query to the buffer.
41
41
  def query(str)
42
42
  @lock.synchronize do
43
43
  STDOUT.print "Adding to buffer: #{str}\n" if @debug
@@ -46,44 +46,44 @@ class Baza::QueryBuffer
46
46
  end
47
47
 
48
48
  flush if @queries_count >= 1000
49
- return nil
49
+ nil
50
50
  end
51
51
 
52
- #Delete as on a normal Baza::Db.
52
+ # Delete as on a normal Baza::Db.
53
53
  #===Example
54
54
  # buffer.delete(:users, {:id => 5})
55
55
  def delete(table, where)
56
56
  STDOUT.puts "Delete called on table #{table} with arguments: '#{where}'." if @debug
57
- query(@args[:db].delete(table, where, :return_sql => true))
58
- return nil
57
+ query(@args[:db].delete(table, where, return_sql: true))
58
+ nil
59
59
  end
60
60
 
61
- #Update as on a normal Baza::Db.
61
+ # Update as on a normal Baza::Db.
62
62
  #===Example
63
63
  # buffer.update(:users, {:name => "Kasper"}, {:id => 5})
64
64
  def update(table, update, terms)
65
65
  STDOUT.puts "Update called on table #{table}." if @debug
66
- query(@args[:db].update(table, update, terms, :return_sql => true))
67
- return nil
66
+ query(@args[:db].update(table, update, terms, return_sql: true))
67
+ nil
68
68
  end
69
69
 
70
- #Shortcut to doing upsert through the buffer instead of through the db-object with the buffer as an argument.
70
+ # Shortcut to doing upsert through the buffer instead of through the db-object with the buffer as an argument.
71
71
  #===Example
72
72
  # buffer.upsert(:users, {:id => 5}, {:name => "Kasper"})
73
73
  def upsert(table, data, terms)
74
- @args[:db].upsert(table, data, terms, :buffer => self)
75
- return nil
74
+ @args[:db].upsert(table, data, terms, buffer: self)
75
+ nil
76
76
  end
77
77
 
78
- #Plans to inset a hash into a table. It will only be inserted when flush is called.
78
+ # Plans to inset a hash into a table. It will only be inserted when flush is called.
79
79
  #===Examples
80
80
  # buffer.insert(:users, {:name => "John Doe"})
81
81
  def insert(table, data)
82
- query(@args[:db].insert(table, data, :return_sql => true))
83
- return nil
82
+ query(@args[:db].insert(table, data, return_sql: true))
83
+ nil
84
84
  end
85
85
 
86
- #Flushes all queries out in a transaction. This will automatically be called for every 1000 queries.
86
+ # Flushes all queries out in a transaction. This will automatically be called for every 1000 queries.
87
87
  def flush
88
88
  if @args[:flush_async]
89
89
  flush_async
@@ -94,7 +94,7 @@ class Baza::QueryBuffer
94
94
 
95
95
  private
96
96
 
97
- #Runs the flush in a thread in the background.
97
+ # Runs the flush in a thread in the background.
98
98
  def flush_async
99
99
  thread_async_join
100
100
 
@@ -114,14 +114,14 @@ private
114
114
  end
115
115
  end
116
116
 
117
- #Flushes the queries for real.
117
+ # Flushes the queries for real.
118
118
  def flush_real(db = nil)
119
119
  return nil if @queries_count <= 0
120
120
  db = @args[:db] if db == nil
121
121
 
122
122
  @lock.synchronize do
123
- if !@queries.empty?
124
- while !@queries.empty?
123
+ unless @queries.empty?
124
+ until @queries.empty?
125
125
  db.transaction do
126
126
  @queries.shift(1000).each do |str|
127
127
  STDOUT.print "Executing via buffer: #{str}\n" if @debug
@@ -132,7 +132,7 @@ private
132
132
  end
133
133
 
134
134
  @inserts.each do |table, datas_arr|
135
- while !datas_arr.empty?
135
+ until datas_arr.empty?
136
136
  datas_chunk_arr = datas_arr.shift(1000)
137
137
  @db.insert_multi(table, datas_chunk_arr)
138
138
  end
@@ -142,6 +142,6 @@ private
142
142
  @queries_count = 0
143
143
  end
144
144
 
145
- return nil
145
+ nil
146
146
  end
147
147
  end
@@ -10,7 +10,7 @@ class Baza::ResultBase
10
10
  end
11
11
 
12
12
  def to_a_enum
13
- require 'array_enumerator'
13
+ require "array_enumerator"
14
14
  @a_enum ||= ArrayEnumerator.new(to_enum)
15
15
  end
16
16
 
@@ -20,6 +20,6 @@ class Baza::ResultBase
20
20
  array << row_data
21
21
  end
22
22
 
23
- return array
23
+ array
24
24
  end
25
25
  end
data/lib/baza/revision.rb CHANGED
@@ -1,4 +1,4 @@
1
- #This class takes a database-schema from a hash and runs it against the database. It then checks that the database matches the given schema.
1
+ # This class takes a database-schema from a hash and runs it against the database. It then checks that the database matches the given schema.
2
2
  #
3
3
  #===Examples
4
4
  # db = Baza::Db.new(type: :sqlite3, path: "test_db.sqlite3")
@@ -31,12 +31,12 @@ class Baza::Revision
31
31
  INIT_DB_ALLOWED_ARGS = [:db, :schema, :tables_cache, :debug]
32
32
  INIT_DB_SCHEMA_ALLOWED_ARGS = [:tables]
33
33
  INIT_DB_TABLE_ALLOWED_ARGS = [:columns, :indexes, :rows, :renames]
34
- #This initializes a database-structure and content based on a schema-hash.
34
+ # This initializes a database-structure and content based on a schema-hash.
35
35
  #===Examples
36
36
  # dbrev = Baza::Revision.new
37
37
  # dbrev.init_db("db" => db_obj, "schema" => schema_hash)
38
38
  def init_db(args)
39
- args.each do |key, val|
39
+ args.each do |key, _val|
40
40
  raise "Invalid key: '#{key}' (#{key.class.name})." unless INIT_DB_ALLOWED_ARGS.include?(key)
41
41
  end
42
42
 
@@ -44,15 +44,15 @@ class Baza::Revision
44
44
  db = args[:db]
45
45
  raise "No 'db' was given." unless db
46
46
 
47
- schema.each do |key, val|
47
+ schema.each do |key, _val|
48
48
  raise "Invalid key for schema: '#{key}' (#{key.class.name})." unless INIT_DB_SCHEMA_ALLOWED_ARGS.include?(key)
49
49
  end
50
50
 
51
- #Check for normal bugs and raise apropiate error.
51
+ # Check for normal bugs and raise apropiate error.
52
52
  raise "'schema' argument was not a Hash: '#{schema.class.name}'." unless schema.is_a?(Hash)
53
- raise "No tables given." unless schema.has_key?(:tables)
53
+ raise "No tables given." unless schema.key?(:tables)
54
54
 
55
- #Cache tables to avoid constant reloading.
55
+ # Cache tables to avoid constant reloading.
56
56
  if !args.key?(:tables_cache) || args[:tables_cache]
57
57
  puts "Caching tables-list." if args[:debug]
58
58
  tables = db.tables.list
@@ -61,7 +61,7 @@ class Baza::Revision
61
61
  end
62
62
 
63
63
  schema[:tables].each do |table_name, table_data|
64
- table_data.each do |key, val|
64
+ table_data.each do |key, _val|
65
65
  raise "Invalid key: '#{key}' (#{key.class.name})." unless INIT_DB_TABLE_ALLOWED_ARGS.include?(key)
66
66
  end
67
67
 
@@ -72,7 +72,7 @@ class Baza::Revision
72
72
  puts "Getting table-object for table: '#{table_name}'." if args[:debug]
73
73
  table_obj = db.tables[table_name]
74
74
 
75
- #Cache indexes- and column-objects to avoid constant reloading.
75
+ # Cache indexes- and column-objects to avoid constant reloading.
76
76
  cols = table_obj.columns
77
77
  indexes = table_obj.indexes
78
78
 
@@ -86,12 +86,12 @@ class Baza::Revision
86
86
  type = col_data[:type].to_sym
87
87
  dochange = false
88
88
 
89
- if !first_col and !col_data[:after]
90
- #Try to find out the previous column - if so we can set "after" which makes the column being created in the right order as defined.
91
- if !col_data.has_key?(:after)
89
+ if !first_col && !col_data[:after]
90
+ # Try to find out the previous column - if so we can set "after" which makes the column being created in the right order as defined.
91
+ unless col_data.key?(:after)
92
92
  prev_no = table_data[:columns].index(col_data)
93
- if prev_no != nil and prev_no != 0
94
- prev_no = prev_no - 1
93
+ if prev_no.nil? && prev_no != 0
94
+ prev_no -= 1
95
95
  prev_col_data = table_data[:columns][prev_no]
96
96
  col_data[:after] = prev_col_data[:name]
97
97
  end
@@ -99,7 +99,7 @@ class Baza::Revision
99
99
 
100
100
  actual_after = nil
101
101
  set_next = false
102
- cols.each do |col_name, col_iter|
102
+ cols.each do |_col_name, col_iter|
103
103
  if col_iter.name == col_obj.name
104
104
  break
105
105
  else
@@ -113,49 +113,49 @@ class Baza::Revision
113
113
  end
114
114
  end
115
115
 
116
- #BUGFIX: When using SQLite3 the primary-column or a autoincr-column may never change type from int... This will break it!
117
- if db.opts[:type] == "sqlite3" and col_obj.type.to_s == "int" and (col_data[:primarykey] or col_data[:autoincr]) and db.int_types.index(col_data[:type].to_s)
116
+ # BUGFIX: When using SQLite3 the primary-column or a autoincr-column may never change type from int... This will break it!
117
+ if db.opts[:type] == "sqlite3" && col_obj.type.to_s == "int" && (col_data[:primarykey] || col_data[:autoincr]) && db.int_types.index(col_data[:type].to_s)
118
118
  type = :int
119
119
  end
120
120
 
121
- if type and col_obj.type.to_s != type
121
+ if type && col_obj.type.to_s != type
122
122
  print "Type mismatch on #{col_str}: #{col_data[:type]}, #{col_obj.type}\n" if args[:debug]
123
123
  dochange = true
124
124
  end
125
125
 
126
- if col_data.has_key?(:primarykey) and col_obj.primarykey? != col_data[:primarykey]
126
+ if col_data.key?(:primarykey) && col_obj.primarykey? != col_data[:primarykey]
127
127
  print "Primary-key mismatch for #{col_str}: #{col_data[:primarykey]}, #{col_obj.primarykey?}\n" if args[:debug]
128
128
  dochange = true
129
129
  end
130
130
 
131
- if col_data.has_key?(:autoincr) and col_obj.autoincr? != col_data[:autoincr]
131
+ if col_data.key?(:autoincr) && col_obj.autoincr? != col_data[:autoincr]
132
132
  print "Auto-increment mismatch for #{col_str}: #{col_data[:autoincr]}, #{col_obj.autoincr?}\n" if args[:debug]
133
133
  dochange = true
134
134
  end
135
135
 
136
- if col_data.has_key?(:maxlength) and col_obj.maxlength.to_s != col_data[:maxlength].to_s
136
+ if col_data.key?(:maxlength) && col_obj.maxlength.to_s != col_data[:maxlength].to_s
137
137
  print "Maxlength mismatch on #{col_str}: #{col_data[:maxlength]}, #{col_obj.maxlength}\n" if args[:debug]
138
138
  dochange = true
139
139
  end
140
140
 
141
- if col_data.has_key?(:null) and col_obj.null?.to_s != col_data[:null].to_s
141
+ if col_data.key?(:null) && col_obj.null?.to_s != col_data[:null].to_s
142
142
  print "Null mismatch on #{col_str}: #{col_data[:null]}, #{col_obj.null?}\n" if args[:debug]
143
143
  dochange = true
144
144
  end
145
145
 
146
- if col_data.has_key?(:default) and col_obj.default.to_s != col_data[:default].to_s
146
+ if col_data.key?(:default) && col_obj.default.to_s != col_data[:default].to_s
147
147
  print "Default mismatch on #{col_str}: #{col_data[:default]}, #{col_obj.default}\n" if args[:debug]
148
148
  dochange = true
149
149
  end
150
150
 
151
- if col_data.has_key?(:comment) and col_obj.respond_to?(:comment) and col_obj.comment.to_s != col_data[:comment].to_s
151
+ if col_data.key?(:comment) && col_obj.respond_to?(:comment) && col_obj.comment.to_s != col_data[:comment].to_s
152
152
  print "Comment mismatch on #{col_str}: #{col_data[:comment]}, #{col_obj.comment}\n" if args[:debug]
153
153
  dochange = true
154
154
  end
155
155
 
156
- if col_data.is_a?(Hash) and col_data[:on_before_alter]
157
- callback_data = col_data[:on_before_alter].call(:db => db, :table => table_obj, :col => col_obj, :col_data => col_data)
158
- if callback_data and callback_data[:action]
156
+ if col_data.is_a?(Hash) && col_data[:on_before_alter]
157
+ callback_data = col_data[:on_before_alter].call(db: db, table: table_obj, col: col_obj, col_data: col_data)
158
+ if callback_data && callback_data[:action]
159
159
  if callback_data[:action] == :retry
160
160
  raise Baza::Errors::Retry
161
161
  end
@@ -168,28 +168,28 @@ class Baza::Revision
168
168
 
169
169
  col_obj.change(col_data_change)
170
170
 
171
- #Change has been made - update cache.
171
+ # Change has been made - update cache.
172
172
  cols = table_obj.columns
173
173
  end
174
174
 
175
175
  first_col = false
176
- rescue Errno::ENOENT => e
176
+ rescue Baza::Errors::ColumnNotFound => e
177
177
  print "Column not found: #{table_obj.name}.#{col_data[:name]}.\n" if args[:debug]
178
178
 
179
- if col_data.has_key?(:renames)
180
- raise "'renames' was not an array for column '#{table_obj.name}.#{col_data[:name]}'." if !col_data[:renames].is_a?(Array)
179
+ if col_data.key?(:renames)
180
+ raise "'renames' was not an array for column '#{table_obj.name}.#{col_data[:name]}'." unless col_data[:renames].is_a?(Array)
181
181
 
182
182
  rename_found = false
183
- col_data[:renames].each do |col_name|
183
+ col_data[:renames].each do |col_name_rename|
184
184
  begin
185
- col_rename = table_obj.column(col_name)
186
- rescue Errno::ENOENT => e
185
+ col_rename = table_obj.column(col_name_rename)
186
+ rescue Baza::Errors::ColumnNotFound
187
187
  next
188
188
  end
189
189
 
190
- print "Rename #{table_obj.name}.#{col_name} to #{table_obj.name}.#{col_data[:name]}\n" if args[:debug]
191
- if col_data.is_a?(Hash) and col_data[:on_before_rename]
192
- col_data[:on_before_rename].call(:db => db, :table => table_obj, :col => col_rename, :col_data => col_data)
190
+ print "Rename #{table_obj.name}.#{col_name_rename} to #{table_obj.name}.#{col_data[:name]}\n" if args[:debug]
191
+ if col_data.is_a?(Hash) && col_data[:on_before_rename]
192
+ col_data[:on_before_rename].call(db: db, table: table_obj, col: col_rename, col_data: col_data)
193
193
  end
194
194
 
195
195
  col_data_change = col_data.clone
@@ -197,11 +197,11 @@ class Baza::Revision
197
197
 
198
198
  col_rename.change(col_data_change)
199
199
 
200
- #Change has been made - update cache.
200
+ # Change has been made - update cache.
201
201
  cols = table_obj.columns
202
202
 
203
- if col_data.is_a?(Hash) and col_data[:on_after_rename]
204
- col_data[:on_after_rename].call(:db => db, :table => table_obj, :col => col_rename, :col_data => col_data)
203
+ if col_data.is_a?(Hash) && col_data[:on_after_rename]
204
+ col_data[:on_after_rename].call(db: db, table: table_obj, col: col_rename, col_data: col_data)
205
205
  end
206
206
 
207
207
  rename_found = true
@@ -219,10 +219,10 @@ class Baza::Revision
219
219
 
220
220
  col_obj = table_obj.create_columns([col_data])
221
221
 
222
- #Change has been made - update cache.
222
+ # Change has been made - update cache.
223
223
  cols = table_obj.columns
224
224
 
225
- oncreated.call(:db => db, :table => table_obj) if oncreated
225
+ oncreated.call(db: db, table: table_obj) if oncreated
226
226
  end
227
227
  end
228
228
  end
@@ -231,32 +231,32 @@ class Baza::Revision
231
231
  table_data[:columns_remove].each do |column_name, column_data|
232
232
  begin
233
233
  col_obj = table_obj.column(column_name)
234
- rescue Errno::ENOENT => e
234
+ rescue Baza::Errors::ColumnNotFound => e
235
235
  next
236
236
  end
237
237
 
238
- column_data[:callback].call if column_data.is_a?(Hash) and column_data[:callback]
238
+ column_data[:callback].call if column_data.is_a?(Hash) && column_data[:callback]
239
239
  col_obj.drop
240
240
  end
241
241
  end
242
242
 
243
243
  if table_data[:indexes]
244
244
  table_data[:indexes].each do |index_data|
245
- if index_data.is_a?(String) or index_data.is_a?(Symbol)
246
- index_data = {:name => index_data, :columns => [index_data]}
245
+ if index_data.is_a?(String) || index_data.is_a?(Symbol)
246
+ index_data = {name: index_data, columns: [index_data]}
247
247
  end
248
248
 
249
249
  begin
250
250
  index_obj = table_obj.index(index_data[:name])
251
251
 
252
252
  rewrite_index = false
253
- rewrite_index = true if index_data.key?(:unique) and index_data[:unique] != index_obj.unique?
253
+ rewrite_index = true if index_data.key?(:unique) && index_data[:unique] != index_obj.unique?
254
254
 
255
255
  if rewrite_index
256
256
  index_obj.drop
257
257
  table_obj.create_indexes([index_data])
258
258
  end
259
- rescue Errno::ENOENT => e
259
+ rescue Baza::Errors::IndexNotFound => e
260
260
  table_obj.create_indexes([index_data])
261
261
  end
262
262
  end
@@ -266,11 +266,11 @@ class Baza::Revision
266
266
  table_data[:indexes_remove].each do |index_name, index_data|
267
267
  begin
268
268
  index_obj = table_obj.index(index_name)
269
- rescue Errno::ENOENT => e
269
+ rescue Baza::Errors::IndexNotFound => e
270
270
  next
271
271
  end
272
272
 
273
- if index_data.is_a?(Hash) and index_data[:callback]
273
+ if index_data.is_a?(Hash) && index_data[:callback]
274
274
  index_data[:callback].call if index_data[:callback]
275
275
  end
276
276
 
@@ -278,8 +278,8 @@ class Baza::Revision
278
278
  end
279
279
  end
280
280
 
281
- rows_init(:db => db, :table => table_obj, :rows => table_data[:rows]) if table_data and table_data[:rows]
282
- rescue Errno::ENOENT => e
281
+ rows_init(db: db, table: table_obj, rows: table_data[:rows]) if table_data && table_data[:rows]
282
+ rescue Baza::Errors::TableNotFound => e
283
283
  puts "Table did not exist: '#{table_name}'." if args[:debug]
284
284
 
285
285
  if table_data.key?(:renames)
@@ -289,19 +289,19 @@ class Baza::Revision
289
289
  table_rename = db.tables[table_name_rename.to_sym]
290
290
  table_rename.rename(table_name)
291
291
  raise Baza::Errors::Retry
292
- rescue Errno::ENOENT
292
+ rescue Baza::Errors::TableNotFound
293
293
  next
294
294
  end
295
295
  end
296
296
  end
297
297
 
298
- if !table_data.key?(:columns)
298
+ unless table_data.key?(:columns)
299
299
  puts "Notice: Skipping creation of '#{table_name}' because no columns were given in hash." if args[:debug]
300
300
  next
301
301
  end
302
302
 
303
303
  if table_data[:on_create]
304
- table_data[:on_create].call(:db => db, :table_name => table_name, :table_data => table_data)
304
+ table_data[:on_create].call(db: db, table_name: table_name, table_data: table_data)
305
305
  end
306
306
 
307
307
  table_data_create = table_data.clone
@@ -312,10 +312,10 @@ class Baza::Revision
312
312
  table_obj = db.tables[table_name.to_sym]
313
313
 
314
314
  if table_data[:on_create_after]
315
- table_data[:on_create_after].call(:db => db, :table_name => table_name, :table_data => table_data)
315
+ table_data[:on_create_after].call(db: db, table_name: table_name, table_data: table_data)
316
316
  end
317
317
 
318
- rows_init(:db => db, :table => table_obj, :rows => table_data[:rows]) if table_data[:rows]
318
+ rows_init(db: db, table: table_obj, rows: table_data[:rows]) if table_data[:rows]
319
319
  end
320
320
  rescue Baza::Errors::Retry
321
321
  retry
@@ -326,34 +326,34 @@ class Baza::Revision
326
326
  schema[:tables_remove].each do |table_name, table_data|
327
327
  begin
328
328
  table_obj = db.tables[table_name.to_sym]
329
- table_data[:callback].call(:db => db, :table => table_obj) if table_data.is_a?(Hash) and table_data[:callback]
329
+ table_data[:callback].call(db: db, table: table_obj) if table_data.is_a?(Hash) && table_data[:callback]
330
330
  table_obj.drop
331
- rescue Errno::ENOENT => e
331
+ rescue Baza::Errors::TableNotFound => e
332
332
  next
333
333
  end
334
334
  end
335
335
  end
336
336
 
337
337
 
338
- #Free cache.
338
+ # Free cache.
339
339
  tables.clear if tables
340
340
  tables = nil
341
341
  end
342
342
 
343
- private
343
+ private
344
344
 
345
345
  ROWS_INIT_ALLOWED_ARGS = [:db, :table, :rows]
346
- #This method checks if certain rows are present in a table based on a hash.
346
+ # This method checks if certain rows are present in a table based on a hash.
347
347
  def rows_init(args)
348
- args.each do |key, val|
348
+ args.each do |key, _val|
349
349
  raise "Invalid key: '#{key}' (#{key.class.name})." unless ROWS_INIT_ALLOWED_ARGS.include?(key)
350
350
  end
351
351
 
352
352
  db = args[:db]
353
353
  table = args[:table]
354
354
 
355
- raise "No db given." if !db
356
- raise "No table given." if !table
355
+ raise "No db given." unless db
356
+ raise "No table given." unless table
357
357
 
358
358
  args[:rows].each do |row_data|
359
359
  if row_data[:find_by]
@@ -368,7 +368,7 @@ class Baza::Revision
368
368
  args[:db].select(table.name, find_by) do |d_rows|
369
369
  rows_found += 1
370
370
 
371
- if Knj::ArrayExt.hash_diff?(Knj::ArrayExt.hash_sym(row_data[:data]), Knj::ArrayExt.hash_sym(d_rows), {"h2_to_h1" => false})
371
+ if Knj::ArrayExt.hash_diff?(Knj::ArrayExt.hash_sym(row_data[:data]), Knj::ArrayExt.hash_sym(d_rows), "h2_to_h1" => false)
372
372
  print "Data was not right - updating row: #{JSON.generate(row_data[:data])}\n" if args[:debug]
373
373
  args[:db].update(table.name, row_data[:data], d_rows)
374
374
  end
@@ -380,4 +380,4 @@ class Baza::Revision
380
380
  end
381
381
  end
382
382
  end
383
- end
383
+ end