sequel 5.35.0 → 5.40.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 +68 -0
- data/README.rdoc +2 -2
- data/doc/cheat_sheet.rdoc +5 -5
- data/doc/code_order.rdoc +0 -12
- data/doc/fork_safety.rdoc +84 -0
- data/doc/model_plugins.rdoc +1 -1
- data/doc/opening_databases.rdoc +5 -1
- data/doc/postgresql.rdoc +1 -1
- data/doc/querying.rdoc +3 -3
- data/doc/release_notes/5.36.0.txt +60 -0
- data/doc/release_notes/5.37.0.txt +30 -0
- data/doc/release_notes/5.38.0.txt +28 -0
- data/doc/release_notes/5.39.0.txt +19 -0
- data/doc/release_notes/5.40.0.txt +40 -0
- data/doc/transactions.rdoc +0 -8
- data/doc/validations.rdoc +1 -1
- data/lib/sequel/adapters/jdbc.rb +15 -3
- data/lib/sequel/adapters/jdbc/mysql.rb +4 -4
- data/lib/sequel/adapters/odbc.rb +4 -6
- data/lib/sequel/adapters/shared/mssql.rb +35 -5
- data/lib/sequel/adapters/shared/oracle.rb +13 -7
- data/lib/sequel/adapters/shared/postgres.rb +40 -2
- data/lib/sequel/adapters/shared/sqlite.rb +35 -1
- data/lib/sequel/adapters/utils/mysql_mysql2.rb +1 -0
- data/lib/sequel/core.rb +5 -6
- data/lib/sequel/database/connecting.rb +0 -1
- data/lib/sequel/database/misc.rb +14 -0
- data/lib/sequel/database/schema_generator.rb +6 -0
- data/lib/sequel/database/schema_methods.rb +16 -6
- data/lib/sequel/database/transactions.rb +2 -2
- data/lib/sequel/dataset/actions.rb +10 -6
- 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/blank.rb +6 -0
- data/lib/sequel/extensions/date_arithmetic.rb +6 -3
- data/lib/sequel/extensions/eval_inspect.rb +2 -0
- data/lib/sequel/extensions/inflector.rb +6 -0
- data/lib/sequel/extensions/migration.rb +10 -1
- data/lib/sequel/extensions/pg_array.rb +1 -0
- data/lib/sequel/extensions/pg_interval.rb +22 -6
- data/lib/sequel/extensions/pg_json_ops.rb +44 -2
- data/lib/sequel/extensions/pg_row.rb +1 -0
- data/lib/sequel/extensions/pg_row_ops.rb +24 -0
- data/lib/sequel/extensions/query.rb +3 -0
- data/lib/sequel/extensions/schema_dumper.rb +3 -3
- data/lib/sequel/model.rb +1 -1
- data/lib/sequel/model/associations.rb +1 -0
- data/lib/sequel/model/base.rb +23 -4
- data/lib/sequel/model/plugins.rb +6 -0
- data/lib/sequel/plugins/association_proxies.rb +3 -0
- data/lib/sequel/plugins/class_table_inheritance.rb +0 -5
- data/lib/sequel/plugins/composition.rb +5 -1
- data/lib/sequel/plugins/constraint_validations.rb +2 -1
- data/lib/sequel/plugins/dataset_associations.rb +4 -1
- data/lib/sequel/plugins/dirty.rb +44 -0
- data/lib/sequel/plugins/nested_attributes.rb +3 -1
- data/lib/sequel/plugins/pg_array_associations.rb +4 -0
- data/lib/sequel/plugins/pg_auto_constraint_validations.rb +2 -0
- data/lib/sequel/plugins/single_table_inheritance.rb +7 -0
- data/lib/sequel/plugins/tree.rb +9 -4
- data/lib/sequel/timezones.rb +8 -3
- data/lib/sequel/version.rb +1 -1
- metadata +33 -21
|
@@ -158,6 +158,30 @@ module Sequel
|
|
|
158
158
|
end
|
|
159
159
|
end
|
|
160
160
|
end
|
|
161
|
+
|
|
162
|
+
# :nocov:
|
|
163
|
+
if defined?(PGRow::ArrayRow)
|
|
164
|
+
# :nocov:
|
|
165
|
+
class PGRow::ArrayRow
|
|
166
|
+
# Wrap the PGRow::ArrayRow instance in an PGRowOp, allowing you to easily use
|
|
167
|
+
# the PostgreSQL row functions and operators with literal rows.
|
|
168
|
+
def op
|
|
169
|
+
Sequel.pg_row_op(self)
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# :nocov:
|
|
175
|
+
if defined?(PGRow::HashRow)
|
|
176
|
+
# :nocov:
|
|
177
|
+
class PGRow::HashRow
|
|
178
|
+
# Wrap the PGRow::ArrayRow instance in an PGRowOp, allowing you to easily use
|
|
179
|
+
# the PostgreSQL row functions and operators with literal rows.
|
|
180
|
+
def op
|
|
181
|
+
Sequel.pg_row_op(self)
|
|
182
|
+
end
|
|
183
|
+
end
|
|
184
|
+
end
|
|
161
185
|
end
|
|
162
186
|
|
|
163
187
|
module SQL::Builders
|
|
@@ -37,7 +37,7 @@ module Sequel
|
|
|
37
37
|
{:type =>schema[:type] == :boolean ? TrueClass : Integer}
|
|
38
38
|
when /\Abigint(?:\((?:\d+)\))?(?: unsigned)?\z/
|
|
39
39
|
{:type=>:Bignum}
|
|
40
|
-
when /\A(?:real|float
|
|
40
|
+
when /\A(?:real|float|double(?: precision)?|double\(\d+,\d+\))(?: unsigned)?\z/
|
|
41
41
|
{:type=>Float}
|
|
42
42
|
when 'boolean', 'bit', 'bool'
|
|
43
43
|
{:type=>TrueClass}
|
|
@@ -57,7 +57,7 @@ module Sequel
|
|
|
57
57
|
{:type=>String, :size=>($1.to_i if $1)}
|
|
58
58
|
when /\A(?:small)?money\z/
|
|
59
59
|
{:type=>BigDecimal, :size=>[19,2]}
|
|
60
|
-
when /\A(?:decimal|numeric|number)(?:\((\d+)(?:,\s*(\d+))?\))?\z/
|
|
60
|
+
when /\A(?:decimal|numeric|number)(?:\((\d+)(?:,\s*(\d+))?\))?(?: unsigned)?\z/
|
|
61
61
|
s = [($1.to_i if $1), ($2.to_i if $2)].compact
|
|
62
62
|
{:type=>BigDecimal, :size=>(s.empty? ? nil : s)}
|
|
63
63
|
when /\A(?:bytea|(?:tiny|medium|long)?blob|(?:var)?binary)(?:\((\d+)\))?\z/
|
|
@@ -218,7 +218,7 @@ END_MIG
|
|
|
218
218
|
gen.foreign_key(name, table, col_opts)
|
|
219
219
|
else
|
|
220
220
|
gen.column(name, type, col_opts)
|
|
221
|
-
if [Integer, :Bignum, Float].include?(type) && schema[:db_type] =~ / unsigned\z/io
|
|
221
|
+
if [Integer, :Bignum, Float, BigDecimal].include?(type) && schema[:db_type] =~ / unsigned\z/io
|
|
222
222
|
gen.check(Sequel::SQL::Identifier.new(name) >= 0)
|
|
223
223
|
end
|
|
224
224
|
end
|
data/lib/sequel/model.rb
CHANGED
|
@@ -79,7 +79,7 @@ module Sequel
|
|
|
79
79
|
def_Model(::Sequel)
|
|
80
80
|
|
|
81
81
|
# The setter methods (methods ending with =) that are never allowed
|
|
82
|
-
# to be called automatically via +set+/+update+/+new+/etc
|
|
82
|
+
# to be called automatically via +set+/+update+/+new+/etc.
|
|
83
83
|
RESTRICTED_SETTER_METHODS = instance_methods.map(&:to_s).select{|l| l.end_with?('=')}.freeze
|
|
84
84
|
end
|
|
85
85
|
end
|
|
@@ -1930,6 +1930,7 @@ module Sequel
|
|
|
1930
1930
|
# super to be called.
|
|
1931
1931
|
def association_module_def(name, opts=OPTS, &block)
|
|
1932
1932
|
association_module(opts).send(:define_method, name, &block)
|
|
1933
|
+
association_module(opts).send(:alias_method, name, name)
|
|
1933
1934
|
end
|
|
1934
1935
|
|
|
1935
1936
|
# Add a private method to the module included in the class.
|
data/lib/sequel/model/base.rb
CHANGED
|
@@ -508,6 +508,9 @@ module Sequel
|
|
|
508
508
|
|
|
509
509
|
m.configure(self, *args, &block) if m.respond_to?(:configure)
|
|
510
510
|
end
|
|
511
|
+
# :nocov:
|
|
512
|
+
ruby2_keywords(:plugin) if respond_to?(:ruby2_keywords, true)
|
|
513
|
+
# :nocov:
|
|
511
514
|
|
|
512
515
|
# Returns primary key attribute hash. If using a composite primary key
|
|
513
516
|
# value such be an array with values for each primary key in the correct
|
|
@@ -726,8 +729,14 @@ module Sequel
|
|
|
726
729
|
im = instance_methods
|
|
727
730
|
overridable_methods_module.module_eval do
|
|
728
731
|
meth = :"#{column}="
|
|
729
|
-
|
|
730
|
-
|
|
732
|
+
unless im.include?(column)
|
|
733
|
+
define_method(column){self[column]}
|
|
734
|
+
alias_method(column, column)
|
|
735
|
+
end
|
|
736
|
+
unless im.include?(meth)
|
|
737
|
+
define_method(meth){|v| self[column] = v}
|
|
738
|
+
alias_method(meth, meth)
|
|
739
|
+
end
|
|
731
740
|
end
|
|
732
741
|
end
|
|
733
742
|
|
|
@@ -740,8 +749,14 @@ module Sequel
|
|
|
740
749
|
im = instance_methods
|
|
741
750
|
columns.each do |column|
|
|
742
751
|
meth = :"#{column}="
|
|
743
|
-
|
|
744
|
-
|
|
752
|
+
unless im.include?(column)
|
|
753
|
+
overridable_methods_module.module_eval("def #{column}; self[:#{column}] end", __FILE__, __LINE__)
|
|
754
|
+
overridable_methods_module.send(:alias_method, column, column)
|
|
755
|
+
end
|
|
756
|
+
unless im.include?(meth)
|
|
757
|
+
overridable_methods_module.module_eval("def #{meth}(v); self[:#{column}] = v end", __FILE__, __LINE__)
|
|
758
|
+
overridable_methods_module.send(:alias_method, meth, meth)
|
|
759
|
+
end
|
|
745
760
|
end
|
|
746
761
|
end
|
|
747
762
|
|
|
@@ -756,6 +771,10 @@ module Sequel
|
|
|
756
771
|
else
|
|
757
772
|
define_singleton_method(meth){|*args, &block| dataset.public_send(meth, *args, &block)}
|
|
758
773
|
end
|
|
774
|
+
singleton_class.send(:alias_method, meth, meth)
|
|
775
|
+
# :nocov:
|
|
776
|
+
singleton_class.send(:ruby2_keywords, meth) if respond_to?(:ruby2_keywords, true)
|
|
777
|
+
# :nocov:
|
|
759
778
|
end
|
|
760
779
|
|
|
761
780
|
# Get the schema from the database, fall back on checking the columns
|
data/lib/sequel/model/plugins.rb
CHANGED
|
@@ -31,6 +31,9 @@ module Sequel
|
|
|
31
31
|
def self.def_dataset_methods(mod, meths)
|
|
32
32
|
Array(meths).each do |meth|
|
|
33
33
|
mod.class_eval("def #{meth}(*args, &block); dataset.#{meth}(*args, &block) end", __FILE__, __LINE__)
|
|
34
|
+
# :nocov:
|
|
35
|
+
mod.send(:ruby2_keywords, meth) if respond_to?(:ruby2_keywords, true)
|
|
36
|
+
# :nocov:
|
|
34
37
|
end
|
|
35
38
|
end
|
|
36
39
|
|
|
@@ -119,6 +122,7 @@ module Sequel
|
|
|
119
122
|
|
|
120
123
|
model.send(:define_method, meth, &block)
|
|
121
124
|
model.send(:private, meth)
|
|
125
|
+
model.send(:alias_method, meth, meth)
|
|
122
126
|
call_meth
|
|
123
127
|
end
|
|
124
128
|
|
|
@@ -140,6 +144,8 @@ module Sequel
|
|
|
140
144
|
keyword = :required
|
|
141
145
|
when :key, :keyrest
|
|
142
146
|
keyword ||= true
|
|
147
|
+
else
|
|
148
|
+
raise Error, "invalid arg_type passed to _define_sequel_method_arg_numbers: #{arg_type}"
|
|
143
149
|
end
|
|
144
150
|
end
|
|
145
151
|
arity = callable.arity
|
|
@@ -143,10 +143,14 @@ module Sequel
|
|
|
143
143
|
compositions[name] = send(composer_meth)
|
|
144
144
|
end
|
|
145
145
|
end
|
|
146
|
-
|
|
146
|
+
alias_method(name, name)
|
|
147
|
+
|
|
148
|
+
meth = :"#{name}="
|
|
149
|
+
define_method(meth) do |v|
|
|
147
150
|
modified!
|
|
148
151
|
compositions[name] = v
|
|
149
152
|
end
|
|
153
|
+
alias_method(meth, meth)
|
|
150
154
|
end
|
|
151
155
|
end
|
|
152
156
|
|
|
@@ -62,7 +62,10 @@ module Sequel
|
|
|
62
62
|
ret = super
|
|
63
63
|
r = association_reflection(name)
|
|
64
64
|
meth = r.returns_array? ? name : pluralize(name).to_sym
|
|
65
|
-
dataset_module
|
|
65
|
+
dataset_module do
|
|
66
|
+
define_method(meth){associated(name)}
|
|
67
|
+
alias_method(meth, meth)
|
|
68
|
+
end
|
|
66
69
|
ret
|
|
67
70
|
end
|
|
68
71
|
|
data/lib/sequel/plugins/dirty.rb
CHANGED
|
@@ -41,6 +41,15 @@ module Sequel
|
|
|
41
41
|
# artist.column_changes # => {}
|
|
42
42
|
# artist.previous_changes # => {:name=>['Foo', 'Bar']}
|
|
43
43
|
#
|
|
44
|
+
# artist.column_previously_was(:name)
|
|
45
|
+
# # => 'Foo'
|
|
46
|
+
# artist.column_previously_changed?(:name)
|
|
47
|
+
# # => true
|
|
48
|
+
# artist.column_previously_changed?(:name, from: 'Foo', to: 'Bar')
|
|
49
|
+
# # => true
|
|
50
|
+
# artist.column_previously_changed?(:name, from: 'Foo', to: 'Baz')
|
|
51
|
+
# # => false
|
|
52
|
+
#
|
|
44
53
|
# There is one caveat; when used with a column that also uses the
|
|
45
54
|
# serialization plugin, setting the column back to its original value
|
|
46
55
|
# after changing it is not correctly detected and will leave an entry
|
|
@@ -105,6 +114,41 @@ module Sequel
|
|
|
105
114
|
initial_values.has_key?(column)
|
|
106
115
|
end
|
|
107
116
|
|
|
117
|
+
# Whether the column was previously changed.
|
|
118
|
+
# Options:
|
|
119
|
+
# :from :: If given, the previous initial value of the column must match this
|
|
120
|
+
# :to :: If given, the previous changed value of the column must match this
|
|
121
|
+
#
|
|
122
|
+
# update(name: 'Current')
|
|
123
|
+
# previous_changes # => {:name=>['Initial', 'Current']}
|
|
124
|
+
# column_previously_changed?(:name) # => true
|
|
125
|
+
# column_previously_changed?(:id) # => false
|
|
126
|
+
# column_previously_changed?(:name, from: 'Initial', to: 'Current') # => true
|
|
127
|
+
# column_previously_changed?(:name, from: 'Foo', to: 'Current') # => false
|
|
128
|
+
def column_previously_changed?(column, opts=OPTS)
|
|
129
|
+
return false unless (pc = @previous_changes) && (val = pc[column])
|
|
130
|
+
|
|
131
|
+
if opts.has_key?(:from)
|
|
132
|
+
return false unless val[0] == opts[:from]
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
if opts.has_key?(:to)
|
|
136
|
+
return false unless val[1] == opts[:to]
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
true
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# The previous value of the column, which is the initial value of
|
|
143
|
+
# the column before the object was previously saved.
|
|
144
|
+
#
|
|
145
|
+
# initial_value(:name) # => 'Initial'
|
|
146
|
+
# update(name: 'Current')
|
|
147
|
+
# column_previously_was(:name) # => 'Initial'
|
|
148
|
+
def column_previously_was(column)
|
|
149
|
+
(pc = @previous_changes) && (val = pc[column]) && val[0]
|
|
150
|
+
end
|
|
151
|
+
|
|
108
152
|
# Freeze internal data structures
|
|
109
153
|
def freeze
|
|
110
154
|
initial_values.freeze
|
|
@@ -145,9 +145,11 @@ module Sequel
|
|
|
145
145
|
# class.
|
|
146
146
|
def def_nested_attribute_method(reflection)
|
|
147
147
|
@nested_attributes_module.class_eval do
|
|
148
|
-
|
|
148
|
+
meth = :"#{reflection[:name]}_attributes="
|
|
149
|
+
define_method(meth) do |v|
|
|
149
150
|
set_nested_attributes(reflection[:name], v)
|
|
150
151
|
end
|
|
152
|
+
alias_method meth, meth
|
|
151
153
|
end
|
|
152
154
|
end
|
|
153
155
|
end
|
|
@@ -520,7 +520,9 @@ module Sequel
|
|
|
520
520
|
def many_to_pg_array_association_filter_expression(op, ref, obj)
|
|
521
521
|
pk = ref.qualify(model.table_name, ref.primary_key)
|
|
522
522
|
key = ref[:key]
|
|
523
|
+
# :nocov:
|
|
523
524
|
expr = case obj
|
|
525
|
+
# :nocov:
|
|
524
526
|
when Sequel::Model
|
|
525
527
|
if (assoc_pks = obj.get_column_value(key)) && !assoc_pks.empty?
|
|
526
528
|
Sequel[pk=>assoc_pks.to_a]
|
|
@@ -540,7 +542,9 @@ module Sequel
|
|
|
540
542
|
# Support filtering by pg_array_to_many associations using a subquery.
|
|
541
543
|
def pg_array_to_many_association_filter_expression(op, ref, obj)
|
|
542
544
|
key = ref.qualify(model.table_name, ref[:key_column])
|
|
545
|
+
# :nocov:
|
|
543
546
|
expr = case obj
|
|
547
|
+
# :nocov:
|
|
544
548
|
when Sequel::Model
|
|
545
549
|
if pkv = obj.get_column_value(ref.primary_key_method)
|
|
546
550
|
Sequel.pg_array_op(key).contains(Sequel.pg_array([pkv], ref.array_type))
|
|
@@ -250,7 +250,9 @@ module Sequel
|
|
|
250
250
|
messages = model.pg_auto_constraint_validations_messages
|
|
251
251
|
|
|
252
252
|
unless override
|
|
253
|
+
# :nocov:
|
|
253
254
|
case e
|
|
255
|
+
# :nocov:
|
|
254
256
|
when Sequel::NotNullConstraintViolation
|
|
255
257
|
if column = info[:column]
|
|
256
258
|
add_pg_constraint_validation_error([m.call(column)], messages[:not_null])
|
data/lib/sequel/plugins/tree.rb
CHANGED
|
@@ -45,6 +45,7 @@ module Sequel
|
|
|
45
45
|
|
|
46
46
|
model.instance_exec do
|
|
47
47
|
@parent_column = opts[:key]
|
|
48
|
+
@qualified_parent_column = Sequel.deep_qualify(table_name, opts[:key])
|
|
48
49
|
@tree_order = opts[:order]
|
|
49
50
|
@parent_association_name = parent
|
|
50
51
|
@children_association_name = children
|
|
@@ -59,17 +60,21 @@ module Sequel
|
|
|
59
60
|
# The column symbol or array of column symbols on which to order the tree.
|
|
60
61
|
attr_accessor :tree_order
|
|
61
62
|
|
|
62
|
-
# The symbol for the column containing the value pointing to the
|
|
63
|
-
# parent of the
|
|
63
|
+
# The symbol or array of symbols for the column containing the value pointing to the
|
|
64
|
+
# parent of the node.
|
|
64
65
|
attr_accessor :parent_column
|
|
65
66
|
|
|
67
|
+
# The qualified identifier or array of qualified identifiers for the column
|
|
68
|
+
# containing the value pointing to the parent of the node.
|
|
69
|
+
attr_accessor :qualified_parent_column
|
|
70
|
+
|
|
66
71
|
# The association name for the parent association
|
|
67
72
|
attr_reader :parent_association_name
|
|
68
73
|
|
|
69
74
|
# The association name for the children association
|
|
70
75
|
attr_reader :children_association_name
|
|
71
76
|
|
|
72
|
-
Plugins.inherited_instance_variables(self, :@parent_column=>nil, :@tree_order=>nil, :@parent_association_name=>nil, :@children_association_name=>nil)
|
|
77
|
+
Plugins.inherited_instance_variables(self, :@parent_column=>nil, :@qualified_parent_column=>nil, :@tree_order=>nil, :@parent_association_name=>nil, :@children_association_name=>nil)
|
|
73
78
|
Plugins.def_dataset_methods(self, [:roots, :roots_dataset])
|
|
74
79
|
|
|
75
80
|
# Should freeze tree order if it is an array when freezing the model class.
|
|
@@ -151,7 +156,7 @@ module Sequel
|
|
|
151
156
|
#
|
|
152
157
|
# TreeClass.roots_dataset # => Sequel::Dataset instance
|
|
153
158
|
def roots_dataset
|
|
154
|
-
ds = where(Sequel.or(Array(model.
|
|
159
|
+
ds = where(Sequel.or(Array(model.qualified_parent_column).zip([])))
|
|
155
160
|
ds = ds.order(*model.tree_order) if model.tree_order
|
|
156
161
|
ds
|
|
157
162
|
end
|
data/lib/sequel/timezones.rb
CHANGED
|
@@ -10,9 +10,14 @@ module Sequel
|
|
|
10
10
|
Timezones = SequelMethods
|
|
11
11
|
Deprecation.deprecate_constant(self, :Timezones)
|
|
12
12
|
|
|
13
|
-
# Sequel doesn't pay much attention to timezones by default, but you can set it
|
|
14
|
-
# handle timezones if you want. There are three separate timezone settings
|
|
15
|
-
#
|
|
13
|
+
# Sequel doesn't pay much attention to timezones by default, but you can set it to
|
|
14
|
+
# handle timezones if you want. There are three separate timezone settings:
|
|
15
|
+
#
|
|
16
|
+
# * application_timezone
|
|
17
|
+
# * database_timezone
|
|
18
|
+
# * typecast_timezone
|
|
19
|
+
#
|
|
20
|
+
# All three timezones have getter and setter methods.
|
|
16
21
|
# You can set all three timezones to the same value at once via <tt>Sequel.default_timezone=</tt>.
|
|
17
22
|
#
|
|
18
23
|
# The only timezone values that are supported by default are <tt>:utc</tt> (convert to UTC),
|
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 = 40
|
|
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.40.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-01-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,36 +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/
|
|
149
|
+
- doc/validations.rdoc
|
|
150
|
+
- doc/virtual_rows.rdoc
|
|
152
151
|
- doc/release_notes/5.0.0.txt
|
|
153
152
|
- doc/release_notes/5.1.0.txt
|
|
154
|
-
- doc/release_notes/5.2.0.txt
|
|
155
|
-
- doc/release_notes/5.3.0.txt
|
|
156
|
-
- doc/release_notes/5.4.0.txt
|
|
157
|
-
- doc/release_notes/5.8.0.txt
|
|
158
|
-
- doc/release_notes/5.7.0.txt
|
|
159
|
-
- doc/release_notes/5.9.0.txt
|
|
160
153
|
- doc/release_notes/5.10.0.txt
|
|
161
154
|
- doc/release_notes/5.11.0.txt
|
|
162
155
|
- doc/release_notes/5.12.0.txt
|
|
@@ -167,6 +160,7 @@ extra_rdoc_files:
|
|
|
167
160
|
- doc/release_notes/5.17.0.txt
|
|
168
161
|
- doc/release_notes/5.18.0.txt
|
|
169
162
|
- doc/release_notes/5.19.0.txt
|
|
163
|
+
- doc/release_notes/5.2.0.txt
|
|
170
164
|
- doc/release_notes/5.20.0.txt
|
|
171
165
|
- doc/release_notes/5.21.0.txt
|
|
172
166
|
- doc/release_notes/5.22.0.txt
|
|
@@ -177,12 +171,24 @@ extra_rdoc_files:
|
|
|
177
171
|
- doc/release_notes/5.27.0.txt
|
|
178
172
|
- doc/release_notes/5.28.0.txt
|
|
179
173
|
- doc/release_notes/5.29.0.txt
|
|
174
|
+
- doc/release_notes/5.3.0.txt
|
|
180
175
|
- doc/release_notes/5.30.0.txt
|
|
181
176
|
- doc/release_notes/5.31.0.txt
|
|
182
177
|
- doc/release_notes/5.32.0.txt
|
|
183
178
|
- doc/release_notes/5.33.0.txt
|
|
184
179
|
- doc/release_notes/5.34.0.txt
|
|
185
180
|
- doc/release_notes/5.35.0.txt
|
|
181
|
+
- doc/release_notes/5.36.0.txt
|
|
182
|
+
- doc/release_notes/5.37.0.txt
|
|
183
|
+
- doc/release_notes/5.38.0.txt
|
|
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.5.0.txt
|
|
188
|
+
- doc/release_notes/5.6.0.txt
|
|
189
|
+
- doc/release_notes/5.7.0.txt
|
|
190
|
+
- doc/release_notes/5.8.0.txt
|
|
191
|
+
- doc/release_notes/5.9.0.txt
|
|
186
192
|
files:
|
|
187
193
|
- CHANGELOG
|
|
188
194
|
- MIT-LICENSE
|
|
@@ -197,6 +203,7 @@ files:
|
|
|
197
203
|
- doc/dataset_basics.rdoc
|
|
198
204
|
- doc/dataset_filtering.rdoc
|
|
199
205
|
- doc/extensions.rdoc
|
|
206
|
+
- doc/fork_safety.rdoc
|
|
200
207
|
- doc/mass_assignment.rdoc
|
|
201
208
|
- doc/migration.rdoc
|
|
202
209
|
- doc/model_dataset_method_design.rdoc
|
|
@@ -239,7 +246,12 @@ files:
|
|
|
239
246
|
- doc/release_notes/5.33.0.txt
|
|
240
247
|
- doc/release_notes/5.34.0.txt
|
|
241
248
|
- doc/release_notes/5.35.0.txt
|
|
249
|
+
- doc/release_notes/5.36.0.txt
|
|
250
|
+
- doc/release_notes/5.37.0.txt
|
|
251
|
+
- doc/release_notes/5.38.0.txt
|
|
252
|
+
- doc/release_notes/5.39.0.txt
|
|
242
253
|
- doc/release_notes/5.4.0.txt
|
|
254
|
+
- doc/release_notes/5.40.0.txt
|
|
243
255
|
- doc/release_notes/5.5.0.txt
|
|
244
256
|
- doc/release_notes/5.6.0.txt
|
|
245
257
|
- doc/release_notes/5.7.0.txt
|
|
@@ -545,7 +557,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
545
557
|
- !ruby/object:Gem::Version
|
|
546
558
|
version: '0'
|
|
547
559
|
requirements: []
|
|
548
|
-
rubygems_version: 3.
|
|
560
|
+
rubygems_version: 3.2.3
|
|
549
561
|
signing_key:
|
|
550
562
|
specification_version: 4
|
|
551
563
|
summary: The Database Toolkit for Ruby
|