sequel-batches 2.0.1 → 2.0.2
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/sequel/extensions/batches/yielder.rb +11 -7
- data/sequel-batches.gemspec +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: 3cd6e15b3473080a3ccc2db4959cddb601624fc0bde9bda3bfad153d9e60194b
|
4
|
+
data.tar.gz: 840ea07efcc58c518a2022f21e4423fc1e2887b2a552c05d5905077ae02daa8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1ae993708db8f425d9901047fb868498f0b1e0957e2fc56578ec23f388e095fd2ba509a3a09c7b9d485c9b7f7e1bf390144bc2e74c09bf585c7b4b708376b24
|
7
|
+
data.tar.gz: 5d19d482faf0959d6a873dd17dc62595c7d5c972d1d35d169ece1c53f880d5ba1e116b6db5d27e04e3731c2f74da989ac361df215fe9d2daa061a2c6b9e43f69
|
data/Gemfile.lock
CHANGED
@@ -6,7 +6,7 @@ module Sequel::Extensions::Batches
|
|
6
6
|
attr_writer :pk
|
7
7
|
|
8
8
|
def initialize(ds:, **options)
|
9
|
-
self.ds = ds
|
9
|
+
self.ds = ds.unordered
|
10
10
|
self.pk = options.delete(:pk)
|
11
11
|
self.of = options.delete(:of) || 1000
|
12
12
|
self.start = options.delete(:start)
|
@@ -31,8 +31,8 @@ module Sequel::Extensions::Batches
|
|
31
31
|
base_ds
|
32
32
|
end
|
33
33
|
|
34
|
-
working_ds_pk = working_ds.select(*qualified_pk).order(order_by(qualified: true)).limit(of)
|
35
|
-
current_instance = db.from(working_ds_pk).select(*pk).order(order_by).last or break
|
34
|
+
working_ds_pk = working_ds.select(*qualified_pk).order(*order_by(qualified: true)).limit(of)
|
35
|
+
current_instance = db.from(working_ds_pk).select(*pk).order(*order_by).last or break
|
36
36
|
working_ds = working_ds.where(generate_conditions(current_instance.to_h, sign: sign_to_inclusive))
|
37
37
|
|
38
38
|
yield working_ds
|
@@ -70,14 +70,18 @@ module Sequel::Extensions::Batches
|
|
70
70
|
end
|
71
71
|
|
72
72
|
def order_by(qualified: false)
|
73
|
-
columns = qualified ? qualified_pk :
|
74
|
-
asc_order? ?
|
73
|
+
columns = qualified ? qualified_pk : unqualified_pk
|
74
|
+
asc_order? ? columns.map(&:asc) : columns.map(&:desc)
|
75
75
|
end
|
76
76
|
|
77
77
|
def qualified_pk
|
78
78
|
@qualified_pk ||= pk.map { |x| Sequel[ds.first_source][x] }
|
79
79
|
end
|
80
80
|
|
81
|
+
def unqualified_pk
|
82
|
+
@unqualified_pk ||= pk.map { |x| x.is_a?(Symbol) ? Sequel[x] : x }
|
83
|
+
end
|
84
|
+
|
81
85
|
def check_pk(input_pk)
|
82
86
|
raise InvalidPKError if input_pk.keys != pk
|
83
87
|
input_pk
|
@@ -90,11 +94,11 @@ module Sequel::Extensions::Batches
|
|
90
94
|
end
|
91
95
|
|
92
96
|
def setup_base_ds
|
93
|
-
base_ds = ds.order(order_by(qualified: true))
|
97
|
+
base_ds = ds.order(*order_by(qualified: true))
|
94
98
|
base_ds = base_ds.where(generate_conditions(check_pk(start), sign: sign_from_inclusive)) if start
|
95
99
|
base_ds = base_ds.where(generate_conditions(check_pk(finish), sign: sign_to_inclusive)) if finish
|
96
100
|
|
97
|
-
pk_ds = db.from(base_ds.select(*qualified_pk)).select(*pk).order(order_by)
|
101
|
+
pk_ds = db.from(base_ds.select(*qualified_pk)).select(*pk).order(*order_by)
|
98
102
|
actual_start = pk_ds.first
|
99
103
|
actual_finish = pk_ds.last
|
100
104
|
|
data/sequel-batches.gemspec
CHANGED
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "sequel-batches"
|
8
|
-
spec.version = "2.0.
|
8
|
+
spec.version = "2.0.2"
|
9
9
|
spec.authors = %w[fiscal-cliff umbrellio]
|
10
10
|
spec.email = ["oss@umbrellio.biz"]
|
11
11
|
spec.required_ruby_version = ">= 2.7"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequel-batches
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- fiscal-cliff
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-08-
|
12
|
+
date: 2022-08-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sequel
|