datahen 1.5.2 → 1.5.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dc47c55d814a573f9de29c4725aba0cad212dceae5dfa2d330dc980ad4f64253
4
- data.tar.gz: 508fe6249ef13f07c835297758f31eb8459080b13c4256c9393d0c8c6ea2b171
3
+ metadata.gz: beadb0e5b371134e96d8e1888250de66411eb287a30cfc5f717e525c19343d6c
4
+ data.tar.gz: 298daaf6f56f1fcfb4e842b9e82d0e4f8896315d264b9481aa2ed4ec55bc8a9b
5
5
  SHA512:
6
- metadata.gz: 23c817ae6f20698c95fdae1503bfe9fc6072f617389e979a1389eab746de07632fab432b2a3a5a824c56c9ad3b6a254a1508ecfd7bb691013843e7b93831daf5
7
- data.tar.gz: c3a1df12099bc6bf159ac7689d7c7be36dc15416b6ecc3c347e7ef1ba1e8e844a58d9600f00803c7fd73837915b88674aa8e470e504acc6ac89d6fd0897df632
6
+ metadata.gz: 8cba2e599b72315d65cd20440c6a8804d7298bd577d5d24f9408bc71e35f47ee5abb8e7d580b7b42cc95c10608f852339a1d44ecfedaedd82acb565f5ffb05d2
7
+ data.tar.gz: 6a8c1c8f7d8deca7663699f7f20ea0e9cf7e7608b2d93150fb2fd4da438780fecff010332e43675800f94012739bfcda6a85dd27df1055958e6de0bbd4c158ab
@@ -13,6 +13,9 @@ module Datahen
13
13
  finisher: nil
14
14
  }
15
15
 
16
+ CHECK_NIL = lambda{|v|v.nil?}
17
+ CHECK_EMPTY_BODY = lambda{|v|v.body.nil? || v.body.empty?}
18
+
16
19
  def self.env_auth_token
17
20
  ENV['DATAHEN_TOKEN']
18
21
  end
@@ -56,14 +59,14 @@ module Datahen
56
59
  target.merge(source.select{|k,v|target.has_key?(k)})
57
60
  end
58
61
 
59
- def retry times, delay = nil, err_msg = nil, stream = false
62
+ def retry(times, delay = nil, err_msg = nil, stream = false, check_nil = CHECK_NIL)
60
63
  limit = times.nil? ? nil : times.to_i
61
64
  delay = delay.nil? ? 5 : delay.to_i
62
65
  count = 0
63
66
  begin
64
67
  val = yield
65
68
  if stream
66
- return if val.nil?
69
+ return if check_nil.call(val)
67
70
  if val['error'] != ""
68
71
  raise StandardError.new(val['error'])
69
72
  end
@@ -60,7 +60,7 @@ module Datahen
60
60
  params = @options.merge({body: body.to_json})
61
61
 
62
62
  limit = opts.has_key?(:retry_limit) ? opts.fetch(:retry_limit) : self.default_retry_limit[:seeder]
63
- self.retry(limit, 5, "Error while updating the seeder.") do
63
+ self.retry(limit, 5, "Error while updating the seeder.", false, CHECK_EMPTY_BODY) do
64
64
  response = self.class.put("/jobs/#{job_id}/seeding_update", params)
65
65
  if response.code == 422 && response.body.to_s =~ /pq:\s*deadlock/i
66
66
  raise CustomRetryError.new(self.class.random_delay(5), response.body.to_s)
@@ -78,7 +78,7 @@ module Datahen
78
78
  params = @options.merge({body: body.to_json})
79
79
 
80
80
  limit = opts.has_key?(:retry_limit) ? opts.fetch(:retry_limit) : self.default_retry_limit[:finisher]
81
- self.retry(limit, 5, "Error while updating the finisher.") do
81
+ self.retry(limit, 5, "Error while updating the finisher.", false, CHECK_EMPTY_BODY) do
82
82
  response = self.class.put("/jobs/#{job_id}/finisher_update", params)
83
83
  if response.code == 422 && response.body.to_s =~ /pq:\s*deadlock/
84
84
  raise CustomRetryError.new(self.class.random_delay(5), response.body.to_s)
@@ -7,7 +7,7 @@ module Datahen
7
7
 
8
8
  def all(job_id, collection = 'default', opts = {})
9
9
  limit = opts.has_key?(:retry_limit) ? opts.fetch(:retry_limit) : 0
10
- self.retry(limit, 10, "Error while updating the seeder.", true) do
10
+ self.retry(limit, 10, "Error while updating the seeder.", true, CHECK_EMPTY_BODY) do
11
11
  self.class.get("/jobs/#{job_id}/output/collections/#{collection}/records", @options)
12
12
  end
13
13
  end
@@ -63,7 +63,7 @@ module Datahen
63
63
  params = @options.merge({body: body.to_json})
64
64
 
65
65
  limit = opts.has_key?(:retry_limit) ? opts.fetch(:retry_limit) : self.default_retry_limit[:parser]
66
- self.retry(limit, 5, "Error while updating the parser.") do
66
+ self.retry(limit, 5, "Error while updating the parser.", false, CHECK_EMPTY_BODY) do
67
67
  response = self.class.put("/jobs/#{job_id}/pages/#{gid}/parsing_update", params)
68
68
  if response.code == 422 && response.body.to_s =~ /pq:\s*deadlock/i
69
69
  raise Error::CustomRetryError.new(self.class.random_delay(5), response.body.to_s)
@@ -1,3 +1,3 @@
1
1
  module Datahen
2
- VERSION = "1.5.2"
2
+ VERSION = "1.5.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datahen
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.2
4
+ version: 1.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Parama Danoesubroto
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-09 00:00:00.000000000 Z
11
+ date: 2024-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor