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 - co...@suse.com + +- updated to version 1.2.1 + see installed CHANGELOG + + 2017-11-16 Jason Frey <fryg...@gmail.com> + * Ship version 1.2.1 + + * Fixed release date in the gemspec. + + 2017-11-16 Jason Frey <fryg...@gmail.com> + * Ship version 1.2.0 + + 2017-04-25 Joe Rafaniello <jrafa...@redhat.com> + * 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 <fryg...@gmail.com> + * Ship version 1.2.1 + + * Fixed release date in the gemspec. + +2017-11-16 Jason Frey <fryg...@gmail.com> + * Ship version 1.2.0 + +2017-04-25 Joe Rafaniello <jrafa...@redhat.com> + * Merge nil values or keep the original via an option + 2016-08-01 Jason Frey <fryg...@gmail.com> * 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