umbrellio-utils 1.6.1 → 1.7.1

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: 8be88d2fa97055fc1bc49b73c4b3af3a387f17fb6d8915d861efeefb005a0abd
4
- data.tar.gz: 39b7bf9da7908d054078739cc5ab1ab2005b9704517adb597279272e624ef4fb
3
+ metadata.gz: 72c716ebf78b007bf1dc966d953ca6563a145158111e22bffeab0e5f0dd80534
4
+ data.tar.gz: fd2601b9ccacc05ab08c1207a225f4a64f7d4e4b8a10182dda321eac4f1bc842
5
5
  SHA512:
6
- metadata.gz: 92064061a08489b21412bac9339d390af12e22be2b94576b9ad9d6af97ba3bffc19fc05a3b732e8d229a707f96eca807ca6b01f422d17abc5b9f053889cd22ea
7
- data.tar.gz: 312675a6b065ff407689c39aa04a73da156cd952c905546d575a2af2f713fa81f2d3d3f03ee9050f87aa68d89fb6d88f38a01ed777fa2a93fd496267f53bba81
6
+ metadata.gz: 5cb0504965e332ae3abaed1579b93ee0abe8772443b59422fe1f2425eb105569b29caa636f4a98c9777dee7d5f693d94257b309ba690f47b3384cc0f6104305a
7
+ data.tar.gz: e89db44cd27f225d694212863bb8439012ef4723218f1840dff4ba242ed8638bebcedfab52b93787c2a727e6504ae03c61be6946fe89405160513bd28f5de51b
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- umbrellio-utils (1.6.1)
4
+ umbrellio-utils (1.7.1)
5
5
  memery (~> 1)
6
6
 
7
7
  GEM
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # rubocop:disable Metrics/ModuleLength
3
4
  module UmbrellioUtils
4
5
  module Database
5
6
  extend self
@@ -40,12 +41,14 @@ module UmbrellioUtils
40
41
  # @option [Array] primary_key custom primary key to use for dataset
41
42
  # @option [Symbol, String] temp_table_name custom name for temporary table,
42
43
  # table is reused if already exists
44
+ # rubocop:disable Metrics/ParameterLists
43
45
  def with_temp_table(
44
46
  dataset,
45
47
  page_size: 1_000,
46
48
  sleep: nil,
47
49
  primary_key: nil,
48
- temp_table_name: nil
50
+ temp_table_name: nil,
51
+ transaction: true
49
52
  )
50
53
  primary_key = primary_key_from(dataset, primary_key:)
51
54
  sleep_interval = sleep_interval_from(sleep)
@@ -57,7 +60,7 @@ module UmbrellioUtils
57
60
  pk_set = []
58
61
 
59
62
  loop do
60
- DB.transaction do
63
+ conditional_transaction(transaction) do
61
64
  pk_set = pop_next_pk_batch(temp_table_name, primary_key, page_size)
62
65
  yield(pk_set) if pk_set.any?
63
66
  end
@@ -69,6 +72,7 @@ module UmbrellioUtils
69
72
 
70
73
  DB.drop_table(temp_table_name)
71
74
  end
75
+ # rubocop:enable Metrics/ParameterLists
72
76
 
73
77
  def create_temp_table(dataset, primary_key: nil, temp_table_name: nil)
74
78
  time = Time.current
@@ -96,6 +100,14 @@ module UmbrellioUtils
96
100
 
97
101
  private
98
102
 
103
+ def conditional_transaction(transaction, &)
104
+ if transaction
105
+ DB.transaction(&)
106
+ else
107
+ yield
108
+ end
109
+ end
110
+
99
111
  def row(values)
100
112
  return values if values.size == 1
101
113
  Sequel.function(:row, *values)
@@ -137,3 +149,4 @@ module UmbrellioUtils
137
149
  end
138
150
  end
139
151
  end
152
+ # rubocop:enable Metrics/ModuleLength
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module UmbrellioUtils
4
- VERSION = "1.6.1"
4
+ VERSION = "1.7.1"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: umbrellio-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Team Umbrellio
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-02-25 00:00:00.000000000 Z
10
+ date: 2025-07-15 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: memery