Hello community,
here is the log from the commit of package rubygem-activerecord-5_1 for
openSUSE:Factory checked in at 2019-04-01 12:36:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-activerecord-5_1 (Old)
and /work/SRC/openSUSE:Factory/.rubygem-activerecord-5_1.new.25356 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-activerecord-5_1"
Mon Apr 1 12:36:19 2019 rev:8 rq:689686 version:5.1.7
Changes:
--------
---
/work/SRC/openSUSE:Factory/rubygem-activerecord-5_1/rubygem-activerecord-5_1.changes
2019-03-27 16:21:53.487523662 +0100
+++
/work/SRC/openSUSE:Factory/.rubygem-activerecord-5_1.new.25356/rubygem-activerecord-5_1.changes
2019-04-01 12:36:20.789855801 +0200
@@ -1,0 +2,22 @@
+Fri Mar 29 05:53:46 UTC 2019 - Stephan Kulow <[email protected]>
+
+- updated to version 5.1.7
+ see installed CHANGELOG.md
+
+ ## Rails 5.1.7 (March 27, 2019) ##
+
+ * Fix `touch` option to behave consistently with `Persistence#touch`
method.
+
+ *Ryuta Kamizono*
+
+ * Back port Rails 5.2 `reverse_order` Arel SQL literal fix.
+
+ *Matt Jones*, *Brooke Kuhlmann*
+
+ * `becomes` should clear the mutation tracker which is created in
`after_initialize`.
+
+ Fixes #32867.
+
+ *Ryuta Kamizono*
+
+-------------------------------------------------------------------
Old:
----
activerecord-5.1.6.2.gem
New:
----
activerecord-5.1.7.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-activerecord-5_1.spec ++++++
--- /var/tmp/diff_new_pack.jVvgi0/_old 2019-04-01 12:36:21.577856187 +0200
+++ /var/tmp/diff_new_pack.jVvgi0/_new 2019-04-01 12:36:21.581856189 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-activerecord-5_1
-Version: 5.1.6.2
+Version: 5.1.7
Release: 0
%define mod_name activerecord
%define mod_full_name %{mod_name}-%{version}
++++++ activerecord-5.1.6.2.gem -> activerecord-5.1.7.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md
--- old/CHANGELOG.md 2019-03-13 17:45:26.000000000 +0100
+++ new/CHANGELOG.md 2019-03-28 03:46:04.000000000 +0100
@@ -1,3 +1,20 @@
+## Rails 5.1.7 (March 27, 2019) ##
+
+* Fix `touch` option to behave consistently with `Persistence#touch` method.
+
+ *Ryuta Kamizono*
+
+* Back port Rails 5.2 `reverse_order` Arel SQL literal fix.
+
+ *Matt Jones*, *Brooke Kuhlmann*
+
+* `becomes` should clear the mutation tracker which is created in
`after_initialize`.
+
+ Fixes #32867.
+
+ *Ryuta Kamizono*
+
+
## Rails 5.1.6.2 (March 11, 2019) ##
* No changes.
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/lib/active_record/associations/belongs_to_association.rb
new/lib/active_record/associations/belongs_to_association.rb
--- old/lib/active_record/associations/belongs_to_association.rb
2019-03-13 17:45:26.000000000 +0100
+++ new/lib/active_record/associations/belongs_to_association.rb
2019-03-28 03:46:04.000000000 +0100
@@ -65,7 +65,7 @@
def update_counters_on_replace(record)
if require_counter_update? && different_target?(record)
owner.instance_variable_set :@_after_replace_counter_called, true
- record.increment!(reflection.counter_cache_column)
+ record.increment!(reflection.counter_cache_column, touch:
reflection.options[:touch])
decrement_counters
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/active_record/associations/builder/belongs_to.rb
new/lib/active_record/associations/builder/belongs_to.rb
--- old/lib/active_record/associations/builder/belongs_to.rb 2019-03-13
17:45:26.000000000 +0100
+++ new/lib/active_record/associations/builder/belongs_to.rb 2019-03-28
03:46:04.000000000 +0100
@@ -84,7 +84,8 @@
else
klass = association.klass
end
- old_record = klass.find_by(klass.primary_key => old_foreign_id)
+ primary_key = reflection.association_primary_key(klass)
+ old_record = klass.find_by(primary_key => old_foreign_id)
if old_record
if touch != true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/active_record/attribute_methods/dirty.rb
new/lib/active_record/attribute_methods/dirty.rb
--- old/lib/active_record/attribute_methods/dirty.rb 2019-03-13
17:45:26.000000000 +0100
+++ new/lib/active_record/attribute_methods/dirty.rb 2019-03-28
03:46:04.000000000 +0100
@@ -204,12 +204,12 @@
# Alias for `changed`
def changed_attribute_names_to_save
- changes_to_save.keys
+ mutations_from_database.changed_attribute_names
end
# Alias for `changed_attributes`
def attributes_in_database
- changes_to_save.transform_values(&:first)
+ mutations_from_database.changed_values
end
def attribute_was(*)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/active_record/attribute_mutation_tracker.rb
new/lib/active_record/attribute_mutation_tracker.rb
--- old/lib/active_record/attribute_mutation_tracker.rb 2019-03-13
17:45:26.000000000 +0100
+++ new/lib/active_record/attribute_mutation_tracker.rb 2019-03-28
03:46:04.000000000 +0100
@@ -8,6 +8,10 @@
@deprecated_forced_changes = Set.new
end
+ def changed_attribute_names
+ attr_names.select { |attr_name| changed?(attr_name) }
+ end
+
def changed_values
attr_names.each_with_object({}.with_indifferent_access) do |attr_name,
result|
if changed?(attr_name)
@@ -20,7 +24,7 @@
attr_names.each_with_object({}.with_indifferent_access) do |attr_name,
result|
change = change_to_attribute(attr_name)
if change
- result[attr_name] = change
+ result.merge!(attr_name => change)
end
end
end
@@ -82,6 +86,10 @@
class NullMutationTracker # :nodoc:
include Singleton
+ def changed_attribute_names(*)
+ []
+ end
+
def changed_values(*)
{}
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/active_record/callbacks.rb
new/lib/active_record/callbacks.rb
--- old/lib/active_record/callbacks.rb 2019-03-13 17:45:26.000000000 +0100
+++ new/lib/active_record/callbacks.rb 2019-03-28 03:46:04.000000000 +0100
@@ -330,6 +330,10 @@
_run_touch_callbacks { super }
end
+ def increment!(attribute, by = 1, touch: nil) # :nodoc:
+ touch ? _run_touch_callbacks { super } : super
+ end
+
private
def create_or_update(*)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/lib/active_record/connection_adapters/abstract/connection_pool.rb
new/lib/active_record/connection_adapters/abstract/connection_pool.rb
--- old/lib/active_record/connection_adapters/abstract/connection_pool.rb
2019-03-13 17:45:27.000000000 +0100
+++ new/lib/active_record/connection_adapters/abstract/connection_pool.rb
2019-03-28 03:46:04.000000000 +0100
@@ -191,7 +191,9 @@
t0 = Time.now
elapsed = 0
loop do
- @cond.wait(timeout - elapsed)
+ ActiveSupport::Dependencies.interlock.permit_concurrent_loads do
+ @cond.wait(timeout - elapsed)
+ end
return remove if any?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/lib/active_record/connection_adapters/abstract/quoting.rb
new/lib/active_record/connection_adapters/abstract/quoting.rb
--- old/lib/active_record/connection_adapters/abstract/quoting.rb
2019-03-13 17:45:27.000000000 +0100
+++ new/lib/active_record/connection_adapters/abstract/quoting.rb
2019-03-28 03:46:04.000000000 +0100
@@ -152,6 +152,7 @@
end
def quoted_time(value) # :nodoc:
+ value = value.change(year: 2000, month: 1, day: 1)
quoted_date(value).sub(/\A\d\d\d\d-\d\d-\d\d /, "")
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
new/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
--- old/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
2019-03-13 17:45:27.000000000 +0100
+++ new/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
2019-03-28 03:46:04.000000000 +0100
@@ -873,15 +873,25 @@
end
def mismatched_foreign_key(message)
- parts = message.scan(/`(\w+)`[ $)]/).flatten
- MismatchedForeignKey.new(
- self,
+ match = %r/
+ (?:CREATE|ALTER)\s+TABLE\s*(?:`?\w+`?\.)?`?(?<table>\w+)`?.+?
+ FOREIGN\s+KEY\s*\(`?(?<foreign_key>\w+)`?\)\s*
+
REFERENCES\s*(`?(?<target_table>\w+)`?)\s*\(`?(?<primary_key>\w+)`?\)
+ /xmi.match(message)
+
+ options = {
message: message,
- table: parts[0],
- foreign_key: parts[1],
- target_table: parts[2],
- primary_key: parts[3],
- )
+ }
+
+ if match
+ options[:table] = match[:table]
+ options[:foreign_key] = match[:foreign_key]
+ options[:target_table] = match[:target_table]
+ options[:primary_key] = match[:primary_key]
+ options[:primary_key_column] = column_for(match[:target_table],
match[:primary_key])
+ end
+
+ MismatchedForeignKey.new(options)
end
def integer_to_sql(limit) # :nodoc:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/lib/active_record/connection_adapters/postgresql/oid/array.rb
new/lib/active_record/connection_adapters/postgresql/oid/array.rb
--- old/lib/active_record/connection_adapters/postgresql/oid/array.rb
2019-03-13 17:45:27.000000000 +0100
+++ new/lib/active_record/connection_adapters/postgresql/oid/array.rb
2019-03-28 03:46:04.000000000 +0100
@@ -31,7 +31,13 @@
def cast(value)
if value.is_a?(::String)
- value = @pg_decoder.decode(value)
+ value = begin
+ @pg_decoder.decode(value)
+ rescue TypeError
+ # malformed array string is treated as [], will raise in PG
2.0 gem
+ # this keeps a consistent implementation
+ []
+ end
end
type_cast_array(value, :cast)
end
@@ -64,6 +70,10 @@
deserialize(raw_old_value) != new_value
end
+ def force_equality?(value)
+ value.is_a?(::Array)
+ end
+
private
def type_cast_array(value, method)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/lib/active_record/connection_adapters/postgresql/oid/range.rb
new/lib/active_record/connection_adapters/postgresql/oid/range.rb
--- old/lib/active_record/connection_adapters/postgresql/oid/range.rb
2019-03-13 17:45:27.000000000 +0100
+++ new/lib/active_record/connection_adapters/postgresql/oid/range.rb
2019-03-28 03:46:04.000000000 +0100
@@ -51,6 +51,10 @@
::Range.new(new_begin, new_end, value.exclude_end?)
end
+ def force_equality?(value)
+ value.is_a?(::Range)
+ end
+
private
def type_cast_single(value)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/lib/active_record/connection_adapters/postgresql_adapter.rb
new/lib/active_record/connection_adapters/postgresql_adapter.rb
--- old/lib/active_record/connection_adapters/postgresql_adapter.rb
2019-03-13 17:45:27.000000000 +0100
+++ new/lib/active_record/connection_adapters/postgresql_adapter.rb
2019-03-28 03:46:04.000000000 +0100
@@ -2,6 +2,14 @@
gem "pg", ">= 0.18", "< 2.0"
require "pg"
+# Use async_exec instead of exec_params on pg versions before 1.1
+class ::PG::Connection
+ unless self.public_method_defined?(:async_exec_params)
+ remove_method :exec_params
+ alias exec_params async_exec
+ end
+end
+
require "active_record/connection_adapters/abstract_adapter"
require "active_record/connection_adapters/statement_pool"
require "active_record/connection_adapters/postgresql/column"
@@ -613,7 +621,7 @@
type_casted_binds = type_casted_binds(binds)
log(sql, name, binds, type_casted_binds) do
ActiveSupport::Dependencies.interlock.permit_concurrent_loads do
- @connection.async_exec(sql, type_casted_binds)
+ @connection.exec_params(sql, type_casted_binds)
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/lib/active_record/connection_adapters/sqlite3/quoting.rb
new/lib/active_record/connection_adapters/sqlite3/quoting.rb
--- old/lib/active_record/connection_adapters/sqlite3/quoting.rb
2019-03-13 17:45:27.000000000 +0100
+++ new/lib/active_record/connection_adapters/sqlite3/quoting.rb
2019-03-28 03:46:04.000000000 +0100
@@ -15,6 +15,7 @@
end
def quoted_time(value)
+ value = value.change(year: 2000, month: 1, day: 1)
quoted_date(value).sub(/\A\d\d\d\d-\d\d-\d\d /, "2000-01-01 ")
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/lib/active_record/connection_adapters/sqlite3_adapter.rb
new/lib/active_record/connection_adapters/sqlite3_adapter.rb
--- old/lib/active_record/connection_adapters/sqlite3_adapter.rb
2019-03-13 17:45:27.000000000 +0100
+++ new/lib/active_record/connection_adapters/sqlite3_adapter.rb
2019-03-28 03:46:04.000000000 +0100
@@ -7,7 +7,7 @@
require "active_record/connection_adapters/sqlite3/schema_dumper"
require "active_record/connection_adapters/sqlite3/schema_statements"
-gem "sqlite3", "~> 1.3.6"
+gem "sqlite3", "~> 1.3", ">= 1.3.6"
require "sqlite3"
module ActiveRecord
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/active_record/counter_cache.rb
new/lib/active_record/counter_cache.rb
--- old/lib/active_record/counter_cache.rb 2019-03-13 17:45:27.000000000
+0100
+++ new/lib/active_record/counter_cache.rb 2019-03-28 03:46:04.000000000
+0100
@@ -45,8 +45,12 @@
reflection = child_class._reflections.values.find { |e|
e.belongs_to? && e.foreign_key.to_s == foreign_key &&
e.options[:counter_cache].present? }
counter_name = reflection.counter_cache_column
- updates = { counter_name.to_sym =>
object.send(counter_association).count(:all) }
- updates.merge!(touch_updates(touch)) if touch
+ updates = { counter_name =>
object.send(counter_association).count(:all) }
+
+ if touch
+ names = touch if touch != true
+ updates.merge!(touch_attributes_with_time(*names))
+ end
unscoped.where(primary_key => object.id).update_all(updates)
end
@@ -66,8 +70,8 @@
# * +counters+ - A Hash containing the names of the fields
# to update as keys and the amount to update the field by as values.
# * <tt>:touch</tt> option - Touch timestamp columns when updating.
- # Pass +true+ to touch +updated_at+ and/or +updated_on+. Pass a symbol
to
- # touch that column or an array of symbols to touch just those ones.
+ # If attribute names are passed, they are updated along with
updated_at/on
+ # attributes.
#
# ==== Examples
#
@@ -105,7 +109,8 @@
end
if touch
- touch_updates = touch_updates(touch)
+ names = touch if touch != true
+ touch_updates = touch_attributes_with_time(*names)
updates << sanitize_sql_for_assignment(touch_updates) unless
touch_updates.empty?
end
@@ -163,13 +168,6 @@
def decrement_counter(counter_name, id, touch: nil)
update_counters(id, counter_name => -1, touch: touch)
end
-
- private
- def touch_updates(touch)
- touch = timestamp_attributes_for_update_in_model if touch == true
- touch_time = current_time_from_proper_timezone
- Array(touch).map { |column| [ column, touch_time ] }.to_h
- end
end
private
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/active_record/errors.rb
new/lib/active_record/errors.rb
--- old/lib/active_record/errors.rb 2019-03-13 17:45:27.000000000 +0100
+++ new/lib/active_record/errors.rb 2019-03-28 03:46:04.000000000 +0100
@@ -115,16 +115,27 @@
# Raised when a foreign key constraint cannot be added because the column
type does not match the referenced column type.
class MismatchedForeignKey < StatementInvalid
- def initialize(adapter = nil, message: nil, table: nil, foreign_key: nil,
target_table: nil, primary_key: nil)
- @adapter = adapter
+ def initialize(
+ adapter = nil,
+ message: nil,
+ sql: nil,
+ binds: nil,
+ table: nil,
+ foreign_key: nil,
+ target_table: nil,
+ primary_key: nil,
+ primary_key_column: nil
+ )
if table
- msg = <<-EOM.strip_heredoc
- Column `#{foreign_key}` on table `#{table}` has a type of
`#{column_type(table, foreign_key)}`.
- This does not match column `#{primary_key}` on `#{target_table}`,
which has type `#{column_type(target_table, primary_key)}`.
- To resolve this issue, change the type of the `#{foreign_key}`
column on `#{table}` to be :integer. (For example `t.integer #{foreign_key}`).
+ type = primary_key_column.bigint? ? :bigint : primary_key_column.type
+ msg = <<-EOM.squish
+ Column `#{foreign_key}` on table `#{table}` does not match column
`#{primary_key}` on `#{target_table}`,
+ which has type `#{primary_key_column.sql_type}`.
+ To resolve this issue, change the type of the `#{foreign_key}`
column on `#{table}` to be :#{type}.
+ (For example `t.#{type} :#{foreign_key}`).
EOM
else
- msg = <<-EOM
+ msg = <<-EOM.squish
There is a mismatch between the foreign key and primary key column
types.
Verify that the foreign key column type and the primary key of the
associated table match types.
EOM
@@ -134,11 +145,6 @@
end
super(msg)
end
-
- private
- def column_type(table, column)
- @adapter.columns(table).detect { |c| c.name == column }.sql_type
- end
end
# Raised when a record cannot be inserted or updated because it would
violate a not null constraint.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/active_record/gem_version.rb
new/lib/active_record/gem_version.rb
--- old/lib/active_record/gem_version.rb 2019-03-13 17:45:27.000000000
+0100
+++ new/lib/active_record/gem_version.rb 2019-03-28 03:46:04.000000000
+0100
@@ -7,8 +7,8 @@
module VERSION
MAJOR = 5
MINOR = 1
- TINY = 6
- PRE = "2"
+ TINY = 7
+ PRE = nil
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/active_record/model_schema.rb
new/lib/active_record/model_schema.rb
--- old/lib/active_record/model_schema.rb 2019-03-13 17:45:27.000000000
+0100
+++ new/lib/active_record/model_schema.rb 2019-03-28 03:46:04.000000000
+0100
@@ -381,7 +381,7 @@
# default values when instantiating the Active Record object for this
table.
def column_defaults
load_schema
- _default_attributes.to_hash
+ _default_attributes.deep_dup.to_hash
end
def _default_attributes # :nodoc:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/active_record/persistence.rb
new/lib/active_record/persistence.rb
--- old/lib/active_record/persistence.rb 2019-03-13 17:45:27.000000000
+0100
+++ new/lib/active_record/persistence.rb 2019-03-28 03:46:04.000000000
+0100
@@ -226,7 +226,8 @@
def becomes(klass)
became = klass.new
became.instance_variable_set("@attributes", @attributes)
- became.instance_variable_set("@mutation_tracker", @mutation_tracker) if
defined?(@mutation_tracker)
+ became.instance_variable_set("@mutation_tracker", @mutation_tracker ||=
nil)
+ became.instance_variable_set("@mutations_from_database",
@mutations_from_database ||= nil)
became.instance_variable_set("@changed_attributes",
attributes_changed_by_setter)
became.instance_variable_set("@new_record", new_record?)
became.instance_variable_set("@destroyed", destroyed?)
@@ -506,7 +507,7 @@
end
attribute_names = timestamp_attributes_for_update_in_model
- attribute_names.concat(names)
+ attribute_names |= names.map(&:to_s)
unless attribute_names.empty?
affected_rows = _touch_row(attribute_names, time)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/active_record/relation/finder_methods.rb
new/lib/active_record/relation/finder_methods.rb
--- old/lib/active_record/relation/finder_methods.rb 2019-03-13
17:45:27.000000000 +0100
+++ new/lib/active_record/relation/finder_methods.rb 2019-03-28
03:46:04.000000000 +0100
@@ -379,7 +379,7 @@
case conditions
when Array, Hash
- relation.where!(conditions)
+ relation.where!(conditions) unless conditions.empty?
else
relation.where!(primary_key => conditions) unless conditions == :none
end
@@ -429,7 +429,7 @@
raise UnknownPrimaryKey.new(@klass) if primary_key.nil?
expects_array = ids.first.kind_of?(Array)
- return ids.first if expects_array && ids.first.empty?
+ return [] if expects_array && ids.first.empty?
ids = ids.flatten.compact.uniq
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/active_record/relation/predicate_builder.rb
new/lib/active_record/relation/predicate_builder.rb
--- old/lib/active_record/relation/predicate_builder.rb 2019-03-13
17:45:27.000000000 +0100
+++ new/lib/active_record/relation/predicate_builder.rb 2019-03-28
03:46:04.000000000 +0100
@@ -95,7 +95,7 @@
next
when value.is_a?(Relation)
binds += value.bound_attributes
- when value.is_a?(Range) &&
!table.type(column_name).respond_to?(:subtype)
+ when value.is_a?(Range) &&
!table.type(column_name).force_equality?(value)
first = value.begin
last = value.end
unless first.respond_to?(:infinite?) && first.infinite?
@@ -158,7 +158,7 @@
return if table.associated_with?(column_name)
case value
when Array, Range
- table.type(column_name).respond_to?(:subtype)
+ table.type(column_name).force_equality?(value)
else
!value.nil? && handler_for(value).is_a?(BasicObjectHandler)
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/active_record/relation/query_methods.rb
new/lib/active_record/relation/query_methods.rb
--- old/lib/active_record/relation/query_methods.rb 2019-03-13
17:45:27.000000000 +0100
+++ new/lib/active_record/relation/query_methods.rb 2019-03-28
03:46:04.000000000 +0100
@@ -1079,7 +1079,7 @@
end
o.split(",").map! do |s|
s.strip!
- s.gsub!(/\sasc\Z/i, " DESC") || s.gsub!(/\sdesc\Z/i, " ASC") ||
s.concat(" DESC")
+ s.gsub!(/\sasc\Z/i, " DESC") || s.gsub!(/\sdesc\Z/i, " ASC") ||
(s << " DESC")
end
else
o
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/active_record/tasks/database_tasks.rb
new/lib/active_record/tasks/database_tasks.rb
--- old/lib/active_record/tasks/database_tasks.rb 2019-03-13
17:45:27.000000000 +0100
+++ new/lib/active_record/tasks/database_tasks.rb 2019-03-28
03:46:04.000000000 +0100
@@ -120,7 +120,7 @@
$stderr.puts "Database '#{configuration['database']}' already exists"
rescue Exception => error
$stderr.puts error
- $stderr.puts "Couldn't create database for #{configuration.inspect}"
+ $stderr.puts "Couldn't create '#{configuration['database']}' database.
Please check your configuration."
raise
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/active_record/timestamp.rb
new/lib/active_record/timestamp.rb
--- old/lib/active_record/timestamp.rb 2019-03-13 17:45:27.000000000 +0100
+++ new/lib/active_record/timestamp.rb 2019-03-28 03:46:04.000000000 +0100
@@ -53,6 +53,13 @@
end
class_methods do
+ def touch_attributes_with_time(*names, time: nil)
+ attribute_names = timestamp_attributes_for_update_in_model
+ attribute_names |= names.map(&:to_s)
+ time ||= current_time_from_proper_timezone
+ attribute_names.each_with_object({}) { |attr_name, result|
result[attr_name] = time }
+ end
+
private
def timestamp_attributes_for_create_in_model
timestamp_attributes_for_create.select { |c|
column_names.include?(c) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/active_record/type/serialized.rb
new/lib/active_record/type/serialized.rb
--- old/lib/active_record/type/serialized.rb 2019-03-13 17:45:27.000000000
+0100
+++ new/lib/active_record/type/serialized.rb 2019-03-28 03:46:04.000000000
+0100
@@ -49,6 +49,10 @@
end
end
+ def force_equality?(value)
+ coder.respond_to?(:object_class) && value.is_a?(coder.object_class)
+ end
+
private
def default_value?(value)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2019-03-13 17:45:26.000000000 +0100
+++ new/metadata 2019-03-28 03:46:04.000000000 +0100
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: activerecord
version: !ruby/object:Gem::Version
- version: 5.1.6.2
+ version: 5.1.7
platform: ruby
authors:
- David Heinemeier Hansson
autorequire:
bindir: bin
cert_chain: []
-date: 2019-03-13 00:00:00.000000000 Z
+date: 2019-03-28 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: activesupport
@@ -16,28 +16,28 @@
requirements:
- - '='
- !ruby/object:Gem::Version
- version: 5.1.6.2
+ version: 5.1.7
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - '='
- !ruby/object:Gem::Version
- version: 5.1.6.2
+ version: 5.1.7
- !ruby/object:Gem::Dependency
name: activemodel
requirement: !ruby/object:Gem::Requirement
requirements:
- - '='
- !ruby/object:Gem::Version
- version: 5.1.6.2
+ version: 5.1.7
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - '='
- !ruby/object:Gem::Version
- version: 5.1.6.2
+ version: 5.1.7
- !ruby/object:Gem::Dependency
name: arel
requirement: !ruby/object:Gem::Requirement
@@ -320,8 +320,8 @@
licenses:
- MIT
metadata:
- source_code_uri: https://github.com/rails/rails/tree/v5.1.6.2/activerecord
- changelog_uri:
https://github.com/rails/rails/blob/v5.1.6.2/activerecord/CHANGELOG.md
+ source_code_uri: https://github.com/rails/rails/tree/v5.1.7/activerecord
+ changelog_uri:
https://github.com/rails/rails/blob/v5.1.7/activerecord/CHANGELOG.md
post_install_message:
rdoc_options:
- "--main"