hekenga 0.1.0 → 0.1.1

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
  SHA1:
3
- metadata.gz: 1f8ad94b462c9140e11f83e4f4ad0f0a16a9ab83
4
- data.tar.gz: 6be1fcf20d2a9f1b76c826c6624828feba9c5ad5
3
+ metadata.gz: 58c5fc1783be650fcaeecf3dee14fc806d6243fa
4
+ data.tar.gz: 3a5718418b2509d2b3f720cc29557c8455be2aba
5
5
  SHA512:
6
- metadata.gz: 5dfa4bb023c546776514ebf1cd5818688de1937513ba6d2b847b95475052b6f408fd33f3464fcb150d28808c4b0fb7b6282824f81323391514eedafdbe5e4171
7
- data.tar.gz: 6d9fb7bed2f662c107773e17f109374a9767f69e6c2c99546fc90e9a74b5c22fbfde767c1fb47065ec38facd31559876b57fe7937c0fcf2b2352d66c7cf2fe27
6
+ metadata.gz: 01033bc170ffd1f5c83e5271eb682461e1adf53792a62336fe11d9382d82801492818eb94fc677c9a2ab5d16b9e9393198d88a5ecb5eb1ffe56637d471fb6553
7
+ data.tar.gz: ecd32414846a4e0f28f92b24550bf5838ebfd2768105651e31bef2b0a5113154c20ae0bacf1b857cf0c8712e36f6bef3815d4a6bfad2dcd3415096d565b4c9a6
@@ -69,7 +69,6 @@ module Hekenga
69
69
  end
70
70
  def perform_task!(task_idx = 0, scope = nil)
71
71
  task = @tasks[task_idx] or return
72
- @active_task = task
73
72
  @active_idx = task_idx
74
73
  case task
75
74
  when Hekenga::SimpleTask
@@ -306,6 +305,9 @@ module Hekenga
306
305
  @context.instance_exec(record, &block)
307
306
  end
308
307
  end
308
+ def deep_clone(record)
309
+ record.as_document.deep_dup
310
+ end
309
311
  def process_batch(task, records)
310
312
  @skipped = []
311
313
  to_persist = []
@@ -317,7 +319,7 @@ module Hekenga
317
319
  log_skipped(task, filtered[false]) if filtered[false]
318
320
  return unless filtered[true]
319
321
  filtered[true].map.with_index do |record, idx|
320
- original_record = Marshal.load(Marshal.dump(record.as_document))
322
+ original_record = deep_clone(record)
321
323
  begin
322
324
  task.up!(@context, record)
323
325
  rescue => e
@@ -325,7 +327,7 @@ module Hekenga
325
327
  @skipped = filtered[true][idx+1..-1]
326
328
  return
327
329
  end
328
- if validate_record(record)
330
+ if validate_record(task, record)
329
331
  to_persist.push(record)
330
332
  fallbacks.push(original_record)
331
333
  else
@@ -422,7 +424,7 @@ module Hekenga
422
424
  }, Hekenga::Failure::Write)
423
425
  log_cancel!
424
426
  end
425
- def failed_validation!(record)
427
+ def failed_validation!(task, record)
426
428
  log.add_failure({
427
429
  doc_id: record.id,
428
430
  errs: record.errors.full_messages,
@@ -430,18 +432,18 @@ module Hekenga
430
432
  }, Hekenga::Failure::Validation)
431
433
  log.set(error: true)
432
434
  log.incr_and_return(processed: 1, unvalid: 1)
433
- if @active_task.invalid_strategy == :cancel
435
+ if task.invalid_strategy == :cancel
434
436
  log_cancel!
435
437
  else
436
438
  check_for_completion
437
439
  end
438
440
  end
439
- def validate_record(record)
441
+ def validate_record(task, record)
440
442
  # TODO - ability to skip validation
441
443
  if record.valid?
442
444
  true
443
445
  else
444
- failed_validation!(record)
446
+ failed_validation!(task, record)
445
447
  false
446
448
  end
447
449
  end
@@ -1,3 +1,3 @@
1
1
  module Hekenga
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hekenga
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tapio Saarinen