Hello community,
here is the log from the commit of package rubygem-deep_merge for
openSUSE:Factory checked in at 2017-12-22 12:18:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-deep_merge (Old)
and /work/SRC/openSUSE:Factory/.rubygem-deep_merge.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-deep_merge"
Fri Dec 22 12:18:16 2017 rev:3 rq:554626 version:1.2.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-deep_merge/rubygem-deep_merge.changes
2016-08-05 18:17:06.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.rubygem-deep_merge.new/rubygem-deep_merge.changes
2017-12-22 12:18:21.575541557 +0100
@@ -1,0 +2,17 @@
+Sun Dec 3 19:14:38 UTC 2017 - [email protected]
+
+- updated to version 1.2.1
+ see installed CHANGELOG
+
+ 2017-11-16 Jason Frey <[email protected]>
+ * Ship version 1.2.1
+
+ * Fixed release date in the gemspec.
+
+ 2017-11-16 Jason Frey <[email protected]>
+ * Ship version 1.2.0
+
+ 2017-04-25 Joe Rafaniello <[email protected]>
+ * Merge nil values or keep the original via an option
+
+-------------------------------------------------------------------
Old:
----
deep_merge-1.1.1.gem
New:
----
deep_merge-1.2.1.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-deep_merge.spec ++++++
--- /var/tmp/diff_new_pack.7aGURw/_old 2017-12-22 12:18:22.051518349 +0100
+++ /var/tmp/diff_new_pack.7aGURw/_new 2017-12-22 12:18:22.051518349 +0100
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-deep_merge
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
#
Name: rubygem-deep_merge
-Version: 1.1.1
+Version: 1.2.1
Release: 0
%define mod_name deep_merge
%define mod_full_name %{mod_name}-%{version}
@@ -33,7 +33,7 @@
BuildRequires: %{ruby}
BuildRequires: ruby-macros >= 5
Url: https://github.com/danielsdeleo/deep_merge
-Source: http://rubygems.org/gems/%{mod_full_name}.gem
+Source: https://rubygems.org/gems/%{mod_full_name}.gem
Source1: gem2rpm.yml
Summary: Merge Deeply Nested Hashes
License: MIT
++++++ deep_merge-1.1.1.gem -> deep_merge-1.2.1.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/CHANGELOG new/CHANGELOG
--- old/CHANGELOG 2016-08-02 00:18:09.000000000 +0200
+++ new/CHANGELOG 2017-11-16 21:10:35.000000000 +0100
@@ -1,3 +1,14 @@
+2017-11-16 Jason Frey <[email protected]>
+ * Ship version 1.2.1
+
+ * Fixed release date in the gemspec.
+
+2017-11-16 Jason Frey <[email protected]>
+ * Ship version 1.2.0
+
+2017-04-25 Joe Rafaniello <[email protected]>
+ * Merge nil values or keep the original via an option
+
2016-08-01 Jason Frey <[email protected]>
* Ship version 1.1.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 2016-08-02 00:18:09.000000000 +0200
+++ new/README.md 2017-11-16 21:10:35.000000000 +0100
@@ -39,6 +39,8 @@
Set to true to merge hashes within arrays
:extend_existing_arrays DEFAULT: false
Set to true to extend existing arrays, instead of overwriting them
+ :merge_nil_values DEFAULT: false
+ Set to true to merge nil hash values, overwriting a possibly non-nil
value
:merge_debug DEFAULT: false
Set to true to get console output of merge process for debugging
@@ -99,6 +101,15 @@
dest.deep_merge!(source, {:extend_existing_arrays => true})
Results: {"property" => ["1", "2", "3", "4"]}
+**:merge_nil_values**
+
+The purpose of this option is to allow nil hash values to be merged. The
prior behavior was to discard nil hash values and remains the default if not
specified.
+
+ source = {"item" => nil}
+ dest = {"item" => "existing"}
+ dest.deep_merge!(source, {:merge_nil_values => true})
+ Results: {"item" => nil}
+
There are many tests for this library - and you can learn more about the
features and usages of deep_merge! by just browsing the test examples.
Using deep_merge in Rails
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/deep_merge/core.rb new/lib/deep_merge/core.rb
--- old/lib/deep_merge/core.rb 2016-08-02 00:18:09.000000000 +0200
+++ new/lib/deep_merge/core.rb 2017-11-16 21:10:35.000000000 +0100
@@ -34,6 +34,8 @@
# Set to string value to run "Array::join" then "String::split" against
all arrays
# :merge_hash_arrays DEFAULT: false
# Set to true to merge hashes within arrays
+ # :keep_array_duplicates DEFAULT: false
+ # Set to true to preserve duplicate array entries
# :merge_debug DEFAULT: false
# Set to true to get console output of merge process for debugging
#
@@ -64,7 +66,13 @@
# dest = {:x => [{:z => 2}]}
# dest.deep_merge!(source, {:merge_hash_arrays => true})
# Results: {:x => [{:y => 1, :z => 2}]}
- #
+ #
+ # :keep_array_duplicates => merges arrays within hashes but keeps duplicate
elements
+ # source = {:x => {:y => [1,2,2,2,3]}}
+ # dest = {:x => {:y => [4,5,6]}}
+ # dest.deep_merge!(source, {:keep_array_duplicates => true})
+ # Results: {:x => {:y => [1,2,2,2,3,4,5,6]}}
+ #
# There are many tests for this library - and you can learn more about the
features
# and usages of deep_merge! by just browsing the test examples
def self.deep_merge!(source, dest, options = {})
@@ -84,10 +92,14 @@
merge_hash_arrays = options[:merge_hash_arrays] || false
# request to extend existing arrays, instead of overwriting them
extend_existing_arrays = options[:extend_existing_arrays] || false
+ # request that arrays keep duplicate elements
+ keep_array_duplicates = options[:keep_array_duplicates] || false
+ # request that nil values are merged or skipped (Skipped/false by default)
+ merge_nil_values = options[:merge_nil_values] || false
di = options[:debug_indent] || ''
# do nothing if source is nil
- return dest if source.nil?
+ return dest if !merge_nil_values && source.nil?
# if dest doesn't exist, then simply copy source to it
if !(dest) && overwrite_unmergeable
dest = source; return dest
@@ -168,6 +180,8 @@
end
list += source[dest.count..-1] if source.count > dest.count
dest = list
+ elsif keep_array_duplicates
+ dest = dest.concat(source)
else
dest = dest | source
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2016-08-02 00:18:09.000000000 +0200
+++ new/metadata 2017-11-16 21:10:35.000000000 +0100
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: deep_merge
version: !ruby/object:Gem::Version
- version: 1.1.1
+ version: 1.2.1
platform: ruby
authors:
- Steve Midgley
autorequire:
bindir: bin
cert_chain: []
-date: 2016-08-01 00:00:00.000000000 Z
+date: 2016-11-16 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: rake
@@ -75,7 +75,7 @@
version: '0'
requirements: []
rubyforge_project:
-rubygems_version: 2.4.5.1
+rubygems_version: 2.6.11
signing_key:
specification_version: 4
summary: Merge Deeply Nested Hashes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/test/test_deep_merge.rb new/test/test_deep_merge.rb
--- old/test/test_deep_merge.rb 2016-08-02 00:18:09.000000000 +0200
+++ new/test/test_deep_merge.rb 2017-11-16 21:10:35.000000000 +0100
@@ -622,5 +622,24 @@
hash_src = {"item" => s2 }
DeepMerge::deep_merge!(hash_src, hash_dst)
assert_equal({"item" => ""}, hash_dst)
+
+ ######################################
+ # tests for "keep_array_duplicates" option
+ hash_src = {"item" => ["2", "3"]}
+ hash_dst = {"item" => ["1", "2"]}
+ DeepMerge::deep_merge!(hash_src, hash_dst, {:keep_array_duplicates =>
true})
+ assert_equal({"item" => ["1", "2", "2", "3"]}, hash_dst)
+
+ # Don't merge nil values by default
+ hash_src = {"item" => nil}
+ hash_dst = {"item" => "existing"}
+ DeepMerge::deep_merge!(hash_src, hash_dst)
+ assert_equal({"item" => "existing"}, hash_dst)
+
+ # Merge nil values via an explicit: :merge_nil_values => true
+ hash_src = {"item" => nil}
+ hash_dst = {"item" => "existing"}
+ DeepMerge::deep_merge!(hash_src, hash_dst, {:merge_nil_values => true})
+ assert_equal({"item" => nil}, hash_dst)
end # test_deep_merge
end