From 84ba6b2df9cfa0ded31ec1e68ea3e0354cbc2d88 Mon Sep 17 00:00:00 2001 From: Steve Traylen Date: Thu, 19 Jun 2014 09:25:28 +0000 Subject: [PATCH] Ensure rubygem(minitest) is > 5 version on fc21. --- .gitignore | 1 + LICENSE | 21 +++++++ deep_merge-minitest5.patch | 48 +++++++++++++++ rubygem-deep_merge.spec | 116 +++++++++++++++++++++++++++++++++++++ sources | 1 + 5 files changed, 187 insertions(+) create mode 100644 LICENSE create mode 100644 deep_merge-minitest5.patch create mode 100644 rubygem-deep_merge.spec diff --git a/.gitignore b/.gitignore index e69de29..42e181b 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/deep_merge-1.0.1.gem diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..657494c --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2008-2104 Steve Midgley, Daniel DeLeo + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/deep_merge-minitest5.patch b/deep_merge-minitest5.patch new file mode 100644 index 0000000..cc906ed --- /dev/null +++ b/deep_merge-minitest5.patch @@ -0,0 +1,48 @@ +diff -uNr deep_merge-1.0.1.ORIG/deep_merge.gemspec deep_merge-1.0.1/deep_merge.gemspec +--- deep_merge-1.0.1.ORIG/deep_merge.gemspec 2014-05-30 13:15:45.024000000 +0000 ++++ deep_merge-1.0.1/deep_merge.gemspec 2014-05-30 13:18:42.221000000 +0000 +@@ -30,5 +30,6 @@ + else + s.add_dependency(%q, ["~> 10.1"]) + end ++ s.add_development_dependency "minitest" + end + +diff -uNr deep_merge-1.0.1.ORIG/test/test_deep_merge.rb deep_merge-1.0.1/test/test_deep_merge.rb +--- deep_merge-1.0.1.ORIG/test/test_deep_merge.rb 2014-05-30 13:15:45.024000000 +0000 ++++ deep_merge-1.0.1/test/test_deep_merge.rb 2014-05-30 13:21:27.440000000 +0000 +@@ -1,4 +1,4 @@ +-require 'test/unit' ++require 'minitest/autorun' + + $:.unshift(File.dirname(__FILE__) + '/../lib/') + require 'deep_merge' +@@ -11,7 +11,7 @@ + end + end + +-class TestDeepMerge < Test::Unit::TestCase ++class TestDeepMerge < Minitest::Test + + def setup + end +@@ -214,12 +214,13 @@ + assert_equal({"property" => {"bedroom_count" => {"king_bed" => [nil, 3], "queen_bed" => [4, nil, 1]}, "bathroom_count" => [nil, "2", "1"]}}, hash_dst) + + # test parameter management for knockout_prefix and overwrite unmergable +- assert_raise(DeepMerge::InvalidParameter) {DeepMerge::deep_merge!(hash_src, hash_dst, {:knockout_prefix => ""})} +- assert_raise(DeepMerge::InvalidParameter) {DeepMerge::deep_merge!(hash_src, hash_dst, {:preserve_unmergeables => true, :knockout_prefix => ""})} +- assert_raise(DeepMerge::InvalidParameter) {DeepMerge::deep_merge!(hash_src, hash_dst, {:preserve_unmergeables => true, :knockout_prefix => "--"})} +- assert_nothing_raised(DeepMerge::InvalidParameter) {DeepMerge::deep_merge!(hash_src, hash_dst, {:knockout_prefix => "--"})} +- assert_nothing_raised(DeepMerge::InvalidParameter) {DeepMerge::deep_merge!(hash_src, hash_dst)} +- assert_nothing_raised(DeepMerge::InvalidParameter) {DeepMerge::deep_merge!(hash_src, hash_dst, {:preserve_unmergeables => true})} ++ assert_raises(DeepMerge::InvalidParameter) {DeepMerge::deep_merge!(hash_src, hash_dst, {:knockout_prefix => ""})} ++ assert_raises(DeepMerge::InvalidParameter) {DeepMerge::deep_merge!(hash_src, hash_dst, {:preserve_unmergeables => true, :knockout_prefix => ""})} ++ assert_raises(DeepMerge::InvalidParameter) {DeepMerge::deep_merge!(hash_src, hash_dst, {:preserve_unmergeables => true, :knockout_prefix => "--"})} ++ # test valid parameters ++ DeepMerge::deep_merge!(hash_src, hash_dst, {:knockout_prefix => "--"}) ++ DeepMerge::deep_merge!(hash_src, hash_dst) ++ DeepMerge::deep_merge!(hash_src, hash_dst, {:preserve_unmergeables => true}) + + # hash holding arrays of arrays + hash_src = {["1", "2", "3"] => ["1", "2"]} diff --git a/rubygem-deep_merge.spec b/rubygem-deep_merge.spec new file mode 100644 index 0000000..d0582fa --- /dev/null +++ b/rubygem-deep_merge.spec @@ -0,0 +1,116 @@ + +%global enable_checks 1 + +# Generated from deep_merge-1.0.1.gem by gem2rpm -*- rpm-spec -*- +%global gem_name deep_merge + +Name: rubygem-%{gem_name} +Version: 1.0.1 +Release: 5%{?dist} +Summary: Merge Deeply Nested Hashes +Group: Development/Languages +License: MIT +URL: https://github.com/danielsdeleo/deep_merge +Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem +# https://github.com/danielsdeleo/deep_merge/pull/13 +Patch0: deep_merge-minitest5.patch +# LICENSE file is in git repository but not in package. +# https://github.com/danielsdeleo/deep_merge/pull/14 +Source1: https://raw.githubusercontent.com/danielsdeleo/deep_merge/master/LICENSE +%if 0%{?el6} +Requires: ruby(abi) = 1.8 +%endif +%if 0%{?fc19} || 0%{?fc20} || 0%{?el7} +Requires: ruby(release) +%endif +Requires: ruby(rubygems) +BuildRequires: rubygems-devel +BuildRequires: ruby +%if 0%{?enable_checks} +%if 0%{?fc19} || 0%{?fc20} || 0%{?el6} || 0%{?el7} +BuildRequires: rubygem(minitest) < 5 +%else +BuildRequires: rubygem(minitest) >= 5 +%endif +%endif + +BuildArch: noarch +%if 0%{?fc19} || 0%{?fc20} || 0%{?el6} || 0%{?el7} +Provides: rubygem(%{gem_name}) = %{version} +%endif + +%description +Recursively merge hashes. + +%package doc +Summary: Documentation for %{name} +Group: Documentation +Requires: %{name} = %{version}-%{release} +BuildArch: noarch + +%description doc +Documentation for %{name} + +%prep +gem unpack %{SOURCE0} + +%setup -q -D -T -n %{gem_name}-%{version} + +gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec + +%if 0%{?fc19} || 0%{?fc20} || 0%{?el6} || 0%{?el7} +%else +%patch0 -p1 +%endif +cp -p %{SOURCE1} LICENSE + + +%build +# Create the gem as gem install only works on a gem file +gem build %{gem_name}.gemspec + +# %%gem_install compiles any C extensions and installs the gem into ./%%gem_dir +# by default, so that we can move it into the buildroot in %%install +%gem_install + +%install +mkdir -p %{buildroot}%{gem_dir} +cp -pa .%{gem_dir}/* \ + %{buildroot}%{gem_dir}/ + +%check +%if 0%{?enable_checks} +ruby -Ilib test/test_deep_merge.rb +%endif + +%files +%dir %{gem_instdir} +%{gem_libdir} +%exclude %{gem_cache} +%exclude %{gem_instdir}/CHANGELOG +%exclude %{gem_instdir}/test +%exclude %{gem_instdir}/Rakefile +%{gem_spec} +%doc LICENSE +%doc + +%files doc +%doc %{gem_docdir} +%doc %{gem_instdir}/README.md + + +%changelog +* Thu Jun 19 2014 Steve Traylen - 1.0.1-5 +- Ensure rubygem(minitest) is > 5 version on fc21. + +* Tue Jun 3 2014 Steve Traylen - 1.0.1-4 +- Include LICENSE file in main package. + +* Mon Jun 2 2014 Steve Traylen - 1.0.1-3 +- Drop usage of testrb and use ruby instead for checks. + +* Fri May 30 2014 Steve Traylen - 1.0.1-2 +- latest ruby guidelines and minitest5 patch + +* Wed Feb 12 2014 Steve Traylen - 1.0.1-1 +- Initial package diff --git a/sources b/sources index e69de29..1d87d88 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +6f30bc4727f1833410f6a508304ab3c1 deep_merge-1.0.1.gem