sequel 5.39.0 → 5.44.0
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/CHANGELOG +52 -0
- data/MIT-LICENSE +1 -1
- data/doc/release_notes/5.40.0.txt +40 -0
- data/doc/release_notes/5.41.0.txt +25 -0
- data/doc/release_notes/5.42.0.txt +136 -0
- data/doc/release_notes/5.43.0.txt +98 -0
- data/doc/release_notes/5.44.0.txt +32 -0
- data/doc/sql.rdoc +1 -1
- data/doc/testing.rdoc +3 -0
- data/lib/sequel/adapters/ado.rb +16 -16
- data/lib/sequel/adapters/jdbc.rb +2 -2
- data/lib/sequel/adapters/shared/postgres.rb +4 -2
- data/lib/sequel/adapters/shared/sqlite.rb +37 -3
- data/lib/sequel/core.rb +11 -0
- data/lib/sequel/database/misc.rb +1 -2
- data/lib/sequel/database/schema_generator.rb +35 -47
- data/lib/sequel/database/schema_methods.rb +4 -0
- data/lib/sequel/dataset/features.rb +10 -0
- data/lib/sequel/dataset/prepared_statements.rb +2 -0
- data/lib/sequel/dataset/sql.rb +32 -10
- data/lib/sequel/extensions/async_thread_pool.rb +438 -0
- data/lib/sequel/extensions/blank.rb +8 -0
- data/lib/sequel/extensions/date_arithmetic.rb +36 -24
- data/lib/sequel/extensions/eval_inspect.rb +2 -0
- data/lib/sequel/extensions/inflector.rb +8 -0
- data/lib/sequel/extensions/migration.rb +2 -0
- data/lib/sequel/extensions/named_timezones.rb +5 -1
- data/lib/sequel/extensions/pg_array.rb +1 -0
- data/lib/sequel/extensions/pg_enum.rb +1 -1
- data/lib/sequel/extensions/pg_interval.rb +34 -8
- data/lib/sequel/extensions/pg_row.rb +1 -0
- data/lib/sequel/extensions/query.rb +2 -0
- data/lib/sequel/model/associations.rb +68 -13
- data/lib/sequel/model/base.rb +23 -6
- data/lib/sequel/model/plugins.rb +5 -0
- data/lib/sequel/plugins/association_proxies.rb +2 -0
- data/lib/sequel/plugins/async_thread_pool.rb +39 -0
- data/lib/sequel/plugins/auto_validations.rb +15 -1
- data/lib/sequel/plugins/column_encryption.rb +728 -0
- data/lib/sequel/plugins/composition.rb +7 -2
- data/lib/sequel/plugins/concurrent_eager_loading.rb +174 -0
- data/lib/sequel/plugins/constraint_validations.rb +2 -1
- data/lib/sequel/plugins/dataset_associations.rb +4 -1
- data/lib/sequel/plugins/json_serializer.rb +37 -22
- data/lib/sequel/plugins/nested_attributes.rb +8 -3
- data/lib/sequel/plugins/pg_array_associations.rb +10 -4
- data/lib/sequel/plugins/pg_auto_constraint_validations.rb +2 -0
- data/lib/sequel/plugins/rcte_tree.rb +27 -19
- data/lib/sequel/plugins/serialization.rb +8 -3
- data/lib/sequel/plugins/serialization_modification_detection.rb +1 -1
- data/lib/sequel/plugins/validation_helpers.rb +6 -2
- data/lib/sequel/version.rb +1 -1
- metadata +36 -22
@@ -127,7 +127,7 @@ module Sequel
|
|
127
127
|
def serialize_attributes(format, *columns)
|
128
128
|
if format.is_a?(Symbol)
|
129
129
|
unless format = Sequel.synchronize{REGISTERED_FORMATS[format]}
|
130
|
-
raise(Error, "Unsupported serialization format: #{format} (valid formats: #{Sequel.synchronize{REGISTERED_FORMATS.keys}.
|
130
|
+
raise(Error, "Unsupported serialization format: #{format} (valid formats: #{Sequel.synchronize{REGISTERED_FORMATS.keys}.inspect})")
|
131
131
|
end
|
132
132
|
end
|
133
133
|
serializer, deserializer = format
|
@@ -154,7 +154,10 @@ module Sequel
|
|
154
154
|
deserialized_values[column] = deserialize_value(column, super())
|
155
155
|
end
|
156
156
|
end
|
157
|
-
|
157
|
+
alias_method(column, column)
|
158
|
+
|
159
|
+
setter = :"#{column}="
|
160
|
+
define_method(setter) do |v|
|
158
161
|
cc = changed_columns
|
159
162
|
if !cc.include?(column) && (new? || get_column_value(column) != v)
|
160
163
|
cc << column
|
@@ -164,6 +167,7 @@ module Sequel
|
|
164
167
|
|
165
168
|
deserialized_values[column] = v
|
166
169
|
end
|
170
|
+
alias_method(setter, setter)
|
167
171
|
end
|
168
172
|
end
|
169
173
|
end
|
@@ -177,8 +181,9 @@ module Sequel
|
|
177
181
|
|
178
182
|
# Freeze the deserialized values
|
179
183
|
def freeze
|
180
|
-
deserialized_values
|
184
|
+
deserialized_values
|
181
185
|
super
|
186
|
+
deserialized_values.freeze
|
182
187
|
end
|
183
188
|
|
184
189
|
# Serialize deserialized values before saving
|
@@ -36,6 +36,7 @@ module Sequel
|
|
36
36
|
# :message :: The message to use. Can be a string which is used directly, or a
|
37
37
|
# proc which is called. If the validation method takes a argument before the array of attributes,
|
38
38
|
# that argument is passed as an argument to the proc.
|
39
|
+
# :skip_invalid :: Do not try to validate columns that are already invalid.
|
39
40
|
#
|
40
41
|
# The default validation options for all models can be modified by
|
41
42
|
# overridding the Model#default_validation_helpers_options private method.
|
@@ -281,14 +282,17 @@ module Sequel
|
|
281
282
|
DEFAULT_OPTIONS[type]
|
282
283
|
end
|
283
284
|
|
284
|
-
# Skip validating any attribute that matches one of the allow_* options
|
285
|
+
# Skip validating any attribute that matches one of the allow_* options,
|
286
|
+
# or already has an error if the skip_invalid option is given.
|
287
|
+
#
|
285
288
|
# Otherwise, yield the attribute, value, and passed option :message to
|
286
289
|
# the block. If the block returns anything except nil or false, add it as
|
287
290
|
# an error message for that attributes.
|
288
291
|
def validatable_attributes(atts, opts)
|
289
|
-
am, an, ab, m = opts.values_at(:allow_missing, :allow_nil, :allow_blank, :message)
|
292
|
+
am, an, ab, m, si = opts.values_at(:allow_missing, :allow_nil, :allow_blank, :message, :skip_invalid)
|
290
293
|
from_values = opts[:from] == :values
|
291
294
|
Array(atts).each do |a|
|
295
|
+
next if si && errors.on(a)
|
292
296
|
next if am && !values.has_key?(a)
|
293
297
|
v = from_values ? values[a] : get_column_value(a)
|
294
298
|
next if an && v.nil?
|
data/lib/sequel/version.rb
CHANGED
@@ -6,7 +6,7 @@ module Sequel
|
|
6
6
|
|
7
7
|
# The minor version of Sequel. Bumped for every non-patch level
|
8
8
|
# release, generally around once a month.
|
9
|
-
MINOR =
|
9
|
+
MINOR = 44
|
10
10
|
|
11
11
|
# The tiny version of Sequel. Usually 0, only bumped for bugfix
|
12
12
|
# releases that fix regressions from previous versions.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.44.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Evans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -117,9 +117,8 @@ extra_rdoc_files:
|
|
117
117
|
- README.rdoc
|
118
118
|
- CHANGELOG
|
119
119
|
- MIT-LICENSE
|
120
|
-
- doc/association_basics.rdoc
|
121
|
-
- doc/model_dataset_method_design.rdoc
|
122
120
|
- doc/advanced_associations.rdoc
|
121
|
+
- doc/association_basics.rdoc
|
123
122
|
- doc/bin_sequel.rdoc
|
124
123
|
- doc/cheat_sheet.rdoc
|
125
124
|
- doc/code_order.rdoc
|
@@ -127,37 +126,30 @@ extra_rdoc_files:
|
|
127
126
|
- doc/dataset_basics.rdoc
|
128
127
|
- doc/dataset_filtering.rdoc
|
129
128
|
- doc/extensions.rdoc
|
129
|
+
- doc/fork_safety.rdoc
|
130
130
|
- doc/mass_assignment.rdoc
|
131
131
|
- doc/migration.rdoc
|
132
|
-
- doc/
|
132
|
+
- doc/model_dataset_method_design.rdoc
|
133
133
|
- doc/model_hooks.rdoc
|
134
134
|
- doc/model_plugins.rdoc
|
135
|
-
- doc/object_model.rdoc
|
136
|
-
- doc/sql.rdoc
|
137
135
|
- doc/mssql_stored_procedures.rdoc
|
138
|
-
- doc/
|
136
|
+
- doc/object_model.rdoc
|
137
|
+
- doc/opening_databases.rdoc
|
139
138
|
- doc/postgresql.rdoc
|
140
|
-
- doc/querying.rdoc
|
141
139
|
- doc/prepared_statements.rdoc
|
140
|
+
- doc/querying.rdoc
|
142
141
|
- doc/reflection.rdoc
|
143
|
-
- doc/security.rdoc
|
144
|
-
- doc/virtual_rows.rdoc
|
145
142
|
- doc/schema_modification.rdoc
|
143
|
+
- doc/security.rdoc
|
146
144
|
- doc/sharding.rdoc
|
145
|
+
- doc/sql.rdoc
|
147
146
|
- doc/testing.rdoc
|
148
|
-
- doc/
|
147
|
+
- doc/thread_safety.rdoc
|
149
148
|
- doc/transactions.rdoc
|
150
|
-
- doc/
|
151
|
-
- doc/
|
152
|
-
- doc/release_notes/5.6.0.txt
|
149
|
+
- doc/validations.rdoc
|
150
|
+
- doc/virtual_rows.rdoc
|
153
151
|
- doc/release_notes/5.0.0.txt
|
154
152
|
- doc/release_notes/5.1.0.txt
|
155
|
-
- doc/release_notes/5.2.0.txt
|
156
|
-
- doc/release_notes/5.3.0.txt
|
157
|
-
- doc/release_notes/5.4.0.txt
|
158
|
-
- doc/release_notes/5.8.0.txt
|
159
|
-
- doc/release_notes/5.7.0.txt
|
160
|
-
- doc/release_notes/5.9.0.txt
|
161
153
|
- doc/release_notes/5.10.0.txt
|
162
154
|
- doc/release_notes/5.11.0.txt
|
163
155
|
- doc/release_notes/5.12.0.txt
|
@@ -168,6 +160,7 @@ extra_rdoc_files:
|
|
168
160
|
- doc/release_notes/5.17.0.txt
|
169
161
|
- doc/release_notes/5.18.0.txt
|
170
162
|
- doc/release_notes/5.19.0.txt
|
163
|
+
- doc/release_notes/5.2.0.txt
|
171
164
|
- doc/release_notes/5.20.0.txt
|
172
165
|
- doc/release_notes/5.21.0.txt
|
173
166
|
- doc/release_notes/5.22.0.txt
|
@@ -178,6 +171,7 @@ extra_rdoc_files:
|
|
178
171
|
- doc/release_notes/5.27.0.txt
|
179
172
|
- doc/release_notes/5.28.0.txt
|
180
173
|
- doc/release_notes/5.29.0.txt
|
174
|
+
- doc/release_notes/5.3.0.txt
|
181
175
|
- doc/release_notes/5.30.0.txt
|
182
176
|
- doc/release_notes/5.31.0.txt
|
183
177
|
- doc/release_notes/5.32.0.txt
|
@@ -188,6 +182,17 @@ extra_rdoc_files:
|
|
188
182
|
- doc/release_notes/5.37.0.txt
|
189
183
|
- doc/release_notes/5.38.0.txt
|
190
184
|
- doc/release_notes/5.39.0.txt
|
185
|
+
- doc/release_notes/5.4.0.txt
|
186
|
+
- doc/release_notes/5.40.0.txt
|
187
|
+
- doc/release_notes/5.41.0.txt
|
188
|
+
- doc/release_notes/5.42.0.txt
|
189
|
+
- doc/release_notes/5.43.0.txt
|
190
|
+
- doc/release_notes/5.44.0.txt
|
191
|
+
- doc/release_notes/5.5.0.txt
|
192
|
+
- doc/release_notes/5.6.0.txt
|
193
|
+
- doc/release_notes/5.7.0.txt
|
194
|
+
- doc/release_notes/5.8.0.txt
|
195
|
+
- doc/release_notes/5.9.0.txt
|
191
196
|
files:
|
192
197
|
- CHANGELOG
|
193
198
|
- MIT-LICENSE
|
@@ -250,6 +255,11 @@ files:
|
|
250
255
|
- doc/release_notes/5.38.0.txt
|
251
256
|
- doc/release_notes/5.39.0.txt
|
252
257
|
- doc/release_notes/5.4.0.txt
|
258
|
+
- doc/release_notes/5.40.0.txt
|
259
|
+
- doc/release_notes/5.41.0.txt
|
260
|
+
- doc/release_notes/5.42.0.txt
|
261
|
+
- doc/release_notes/5.43.0.txt
|
262
|
+
- doc/release_notes/5.44.0.txt
|
253
263
|
- doc/release_notes/5.5.0.txt
|
254
264
|
- doc/release_notes/5.6.0.txt
|
255
265
|
- doc/release_notes/5.7.0.txt
|
@@ -348,6 +358,7 @@ files:
|
|
348
358
|
- lib/sequel/extensions/_pretty_table.rb
|
349
359
|
- lib/sequel/extensions/any_not_empty.rb
|
350
360
|
- lib/sequel/extensions/arbitrary_servers.rb
|
361
|
+
- lib/sequel/extensions/async_thread_pool.rb
|
351
362
|
- lib/sequel/extensions/auto_literal_strings.rb
|
352
363
|
- lib/sequel/extensions/blank.rb
|
353
364
|
- lib/sequel/extensions/caller_logging.rb
|
@@ -443,6 +454,7 @@ files:
|
|
443
454
|
- lib/sequel/plugins/association_multi_add_remove.rb
|
444
455
|
- lib/sequel/plugins/association_pks.rb
|
445
456
|
- lib/sequel/plugins/association_proxies.rb
|
457
|
+
- lib/sequel/plugins/async_thread_pool.rb
|
446
458
|
- lib/sequel/plugins/auto_validations.rb
|
447
459
|
- lib/sequel/plugins/before_after_save.rb
|
448
460
|
- lib/sequel/plugins/blacklist_security.rb
|
@@ -451,9 +463,11 @@ files:
|
|
451
463
|
- lib/sequel/plugins/caching.rb
|
452
464
|
- lib/sequel/plugins/class_table_inheritance.rb
|
453
465
|
- lib/sequel/plugins/column_conflicts.rb
|
466
|
+
- lib/sequel/plugins/column_encryption.rb
|
454
467
|
- lib/sequel/plugins/column_select.rb
|
455
468
|
- lib/sequel/plugins/columns_updated.rb
|
456
469
|
- lib/sequel/plugins/composition.rb
|
470
|
+
- lib/sequel/plugins/concurrent_eager_loading.rb
|
457
471
|
- lib/sequel/plugins/constraint_validations.rb
|
458
472
|
- lib/sequel/plugins/csv_serializer.rb
|
459
473
|
- lib/sequel/plugins/dataset_associations.rb
|
@@ -555,7 +569,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
555
569
|
- !ruby/object:Gem::Version
|
556
570
|
version: '0'
|
557
571
|
requirements: []
|
558
|
-
rubygems_version: 3.
|
572
|
+
rubygems_version: 3.2.15
|
559
573
|
signing_key:
|
560
574
|
specification_version: 4
|
561
575
|
summary: The Database Toolkit for Ruby
|