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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/umbrellio_utils/database.rb +15 -2
- data/lib/umbrellio_utils/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 72c716ebf78b007bf1dc966d953ca6563a145158111e22bffeab0e5f0dd80534
|
4
|
+
data.tar.gz: fd2601b9ccacc05ab08c1207a225f4a64f7d4e4b8a10182dda321eac4f1bc842
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5cb0504965e332ae3abaed1579b93ee0abe8772443b59422fe1f2425eb105569b29caa636f4a98c9777dee7d5f693d94257b309ba690f47b3384cc0f6104305a
|
7
|
+
data.tar.gz: e89db44cd27f225d694212863bb8439012ef4723218f1840dff4ba242ed8638bebcedfab52b93787c2a727e6504ae03c61be6946fe89405160513bd28f5de51b
|
data/Gemfile.lock
CHANGED
@@ -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
|
-
|
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
|
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.
|
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-
|
10
|
+
date: 2025-07-15 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: memery
|