tapsoob 0.3.22 → 0.3.27

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 39668125ecb9a04823357801014aafd32b66b497ebe0e067b9b4cb19e641f04e
4
- data.tar.gz: fe1b3dd5eb413addbc09960ec659cc935c40ce8ce416900dd0f5784369cb2e43
3
+ metadata.gz: b7b43f7fe0ec4c4f90c32f00e0ca57ab252c78cdf5f13dfe1c689f8d7a031d32
4
+ data.tar.gz: 3d27c0eb39663d9766d1104df903045be1ddbd1580cfcf854e0ea6a98eb64f70
5
5
  SHA512:
6
- metadata.gz: eda88cd4c768141b177fd44cbb05392941d23a7bf285bcda2890d8b35bd972121b6fe6a8407b155ef8074abc971c991a1f8f41af9ed447643f4f8d88332adb6d
7
- data.tar.gz: 7d2339542cb0b2c246cebdb2908f371cb695ce273eac7c11cabe1122a86febdbc947d293ca5c92601c1243d9c130a0026bb4d85f9d4e6036b8c2fddf78ba0a6e
6
+ metadata.gz: be0a84840b6036dfd5ee03a4c659978eb38b30353961f2797bdb03a6f5ea6fddad407ff3442252a87f0619968cafe57a7c52f7c3102de8757b70ffaf2babd0d4
7
+ data.tar.gz: c415ccc0c1d035ece72938c443ff2deba691432f4f9baa6560cba29eac0537bd7c48579a5640727af5f2a42091b2ffdffb63fd2c88bb90f7cf4c266a86449990
@@ -219,6 +219,9 @@ module Tapsoob
219
219
  end
220
220
 
221
221
  def import_rows(rows)
222
+ columns = rows[:header]
223
+ data = rows[:data]
224
+
222
225
  # Decode blobs
223
226
  if rows.has_key?(:types) && rows[:types].include?("blob")
224
227
  blob_indices = rows[:types].each_index.select { |idx| rows[:types][idx] == "blob" }
@@ -229,10 +232,27 @@ module Tapsoob
229
232
  end
230
233
  end
231
234
 
235
+ # Parse date/datetime/time columns
236
+ if rows.has_key?(:types)
237
+ %w(date datetime time).each do |type|
238
+ if rows[:types].include?(type)
239
+ type_indices = rows[:types].each_index.select { |idx| rows[:types][idx] == type }
240
+ rows[:data].each_index do |idx|
241
+ type_indices.each do |ti|
242
+ rows[:data][idx][ti] = Sequel.send("string_to_#{type}".to_sym, rows[:data][idx][ti])
243
+ end
244
+ end
245
+ end
246
+ end
247
+ end
248
+
232
249
  # Remove id column
233
- columns = ((@options[:"discard-identity"] && rows[:headers].include?("id")) ? rows[:headers] - ["id"] : rows[:headers])
250
+ if @options[:"discard-identity"]
251
+ columns = rows[:header] - ["id"]
252
+ data = data.map { |d| d[1..-1] }
253
+ end
234
254
 
235
- table.import(columns, rows[:data], :commit_every => 100)
255
+ table.import(columns, data, :commit_every => 100)
236
256
  state[:offset] += rows[:data].size
237
257
  rescue Exception => ex
238
258
  case ex.message
@@ -250,19 +270,19 @@ module Tapsoob
250
270
  state[:offset] = table.count
251
271
  end
252
272
 
253
- def self.factory(db, state)
273
+ def self.factory(db, state, opts)
254
274
  if defined?(Sequel::MySQL) && Sequel::MySQL.respond_to?(:convert_invalid_date_time=)
255
275
  Sequel::MySQL.convert_invalid_date_time = :nil
256
276
  end
257
277
 
258
278
  if state.has_key?(:klass)
259
- return eval(state[:klass]).new(db, state)
279
+ return eval(state[:klass]).new(db, state, opts)
260
280
  end
261
281
 
262
282
  if Tapsoob::Utils.single_integer_primary_key(db, state[:table_name].to_sym)
263
- DataStreamKeyed.new(db, state)
283
+ DataStreamKeyed.new(db, state, opts)
264
284
  else
265
- DataStream.new(db, state)
285
+ DataStream.new(db, state, opts)
266
286
  end
267
287
  end
268
288
  end
@@ -270,8 +290,8 @@ module Tapsoob
270
290
  class DataStreamKeyed < DataStream
271
291
  attr_accessor :buffer
272
292
 
273
- def initialize(db, state)
274
- super(db, state)
293
+ def initialize(db, state, opts = {})
294
+ super(db, state, opts)
275
295
  @state = { :primary_key => order_by(state[:table_name]).first, :filter => 0 }.merge(@state)
276
296
  @state[:chunksize] ||= DEFAULT_CHUNKSIZE
277
297
  @buffer = []
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module Tapsoob
3
- VERSION = "0.3.22".freeze
3
+ VERSION = "0.3.27".freeze
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tapsoob
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.22
4
+ version: 0.3.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Félix Bellanger