From bf8b2647bf078be3252a087a940edd7fc7609dbd Mon Sep 17 00:00:00 2001 From: ut001695 Date: Thu, 2 Nov 2023 17:35:33 +0800 Subject: [PATCH] Upgrade version to 0.17 --- contracts-0.16.0.gem | Bin 55296 -> 0 bytes contracts-0.17.gem | Bin 0 -> 58368 bytes ...on-t-use-exceptions-for-control-flow.patch | 102 ----- ...pecify-error-class-to-suppress-RSpec.patch | 73 ---- ....0-0003-Fix-misspellings-in-comments.patch | 40 -- ...only-when-there-is-a-Func-check.-bug.patch | 30 -- ...ementation-spec-to-be-3.0-compatible.patch | 387 ------------------ ...-0006-Remove-deprecated-const-fixnum.patch | 193 --------- rubygem-contracts.spec | 49 +-- 9 files changed, 25 insertions(+), 849 deletions(-) delete mode 100644 contracts-0.16.0.gem create mode 100644 contracts-0.17.gem delete mode 100644 rubygem-contracts-0.16.0-0001-Don-t-use-exceptions-for-control-flow.patch delete mode 100644 rubygem-contracts-0.16.0-0002-Update-spec-to-specify-error-class-to-suppress-RSpec.patch delete mode 100644 rubygem-contracts-0.16.0-0003-Fix-misspellings-in-comments.patch delete mode 100644 rubygem-contracts-0.16.0-0004-Wrapping-blocks-only-when-there-is-a-Func-check.-bug.patch delete mode 100644 rubygem-contracts-0.16.0-0005-Update-implementation-spec-to-be-3.0-compatible.patch delete mode 100644 rubygem-contracts-0.16.0-0006-Remove-deprecated-const-fixnum.patch diff --git a/contracts-0.16.0.gem b/contracts-0.16.0.gem deleted file mode 100644 index 8a633f113bd120223d91c3ff447e0800fe9977f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55296 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 LkmLA8n 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 T`l5a`_k)2S4E$i=Z)V_kT_oe6 diff --git a/contracts-0.17.gem b/contracts-0.17.gem new file mode 100644 index 0000000000000000000000000000000000000000..d7ed5a42f24a32a23111399a822163d1e978cdcb GIT binary patch literal 58368 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ℜhsFHJb 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 literal 0 HcmV?d00001 diff --git a/rubygem-contracts-0.16.0-0001-Don-t-use-exceptions-for-control-flow.patch b/rubygem-contracts-0.16.0-0001-Don-t-use-exceptions-for-control-flow.patch deleted file mode 100644 index 5a06144..0000000 --- a/rubygem-contracts-0.16.0-0001-Don-t-use-exceptions-for-control-flow.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 726e28c473b8d4453b4485922a2c52e9511bfc42 Mon Sep 17 00:00:00 2001 -From: Chris Seaton -Date: Fri, 10 Nov 2017 17:20:38 +0000 -Subject: [PATCH 1/5] Don't use exceptions for control flow - ---- - lib/contracts/call_with.rb | 22 +++++++++++++-------- - lib/contracts/method_handler.rb | 34 +++++++++++++-------------------- - 2 files changed, 27 insertions(+), 29 deletions(-) - -diff --git a/lib/contracts/call_with.rb b/lib/contracts/call_with.rb -index c8a8b62..2735d1e 100644 ---- a/lib/contracts/call_with.rb -+++ b/lib/contracts/call_with.rb -@@ -1,6 +1,10 @@ - module Contracts - module CallWith - def call_with(this, *args, &blk) -+ call_with_inner(false, this, *args, &blk) -+ end -+ -+ def call_with_inner(returns, this, *args, &blk) - args << blk if blk - - # Explicitly append blk=nil if nil != Proc contract violation anticipated -@@ -16,14 +20,16 @@ module Contracts - validator = @args_validators[i] - - unless validator && validator[arg] -- return unless Contract.failure_callback(:arg => arg, -- :contract => contract, -- :class => klass, -- :method => method, -- :contracts => self, -- :arg_pos => i+1, -- :total_args => args.size, -- :return_value => false) -+ data = {:arg => arg, -+ :contract => contract, -+ :class => klass, -+ :method => method, -+ :contracts => self, -+ :arg_pos => i+1, -+ :total_args => args.size, -+ :return_value => false} -+ return ParamContractError.new("as return value", data) if returns -+ return unless Contract.failure_callback(data) - end - - if contract.is_a?(Contracts::Func) && blk && !nil_block_appended -diff --git a/lib/contracts/method_handler.rb b/lib/contracts/method_handler.rb -index ee16b6b..fe301cd 100644 ---- a/lib/contracts/method_handler.rb -+++ b/lib/contracts/method_handler.rb -@@ -125,31 +125,23 @@ module Contracts - # function. Otherwise we return the result. - # If we run out of functions, we raise the last error, but - # convert it to_contract_error. -- success = false -- i = 0 -- result = nil -+ - expected_error = decorated_methods[0].failure_exception -+ last_error = nil - -- until success -- decorated_method = decorated_methods[i] -- i += 1 -- begin -- success = true -- result = decorated_method.call_with(self, *args, &blk) -- rescue expected_error => error -- success = false -- unless decorated_methods[i] -- begin -- ::Contract.failure_callback(error.data, false) -- rescue expected_error => final_error -- raise final_error.to_contract_error -- end -- end -- end -+ decorated_methods.each do |decorated_method| -+ result = decorated_method.call_with_inner(true, self, *args, &blk) -+ return result unless result.is_a?(ParamContractError) -+ last_error = result - end - -- # Return the result of successfully called method -- result -+ begin -+ if ::Contract.failure_callback(last_error.data, false) -+ decorated_methods.last.call_with_inner(false, self, *args, &blk) -+ end -+ rescue expected_error => final_error -+ raise final_error.to_contract_error -+ end - end - end - --- -2.29.2 - diff --git a/rubygem-contracts-0.16.0-0002-Update-spec-to-specify-error-class-to-suppress-RSpec.patch b/rubygem-contracts-0.16.0-0002-Update-spec-to-specify-error-class-to-suppress-RSpec.patch deleted file mode 100644 index c336695..0000000 --- a/rubygem-contracts-0.16.0-0002-Update-spec-to-specify-error-class-to-suppress-RSpec.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 85c6a4e471f2013079dc5a63c1a6bb84bee9351b Mon Sep 17 00:00:00 2001 -From: PikachuEXE -Date: Mon, 25 Jan 2021 17:26:45 +0800 -Subject: [PATCH 2/5] * Update spec to specify error class to suppress RSpec - warning - ---- - spec/contracts_spec.rb | 6 +++--- - spec/methods_spec.rb | 8 ++++---- - 2 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/spec/contracts_spec.rb b/spec/contracts_spec.rb -index d37c40e..72c8603 100644 ---- a/spec/contracts_spec.rb -+++ b/spec/contracts_spec.rb -@@ -7,7 +7,7 @@ RSpec.describe "Contracts:" do - it "should fail for insufficient arguments" do - expect do - @o.hello -- end.to raise_error -+ end.to raise_error ArgumentError - end - - it "should fail for insufficient contracts" do -@@ -32,7 +32,7 @@ RSpec.describe "Contracts:" do - 1 - end - end -- end.to raise_error -+ end.to raise_error NameError - end - end - -@@ -696,7 +696,7 @@ RSpec.describe "Contracts:" do - it "should apply the contract to an inherited method" do - c = Child.new - expect { c.double(2) }.to_not raise_error -- expect { c.double("asd") }.to raise_error -+ expect { c.double("asd") }.to raise_error ParamContractError - end - end - -diff --git a/spec/methods_spec.rb b/spec/methods_spec.rb -index 334fb4e..d1b5d47 100644 ---- a/spec/methods_spec.rb -+++ b/spec/methods_spec.rb -@@ -36,19 +36,19 @@ RSpec.describe "Contracts:" do - end - - it "should enforce return value inside block with no other parameter" do -- expect { obj.foo(&:to_s) }.to raise_error -+ expect { obj.foo(&:to_s) }.to raise_error ReturnContractError - end - - it "should enforce return value inside block with other parameter" do -- expect { obj.foo2(2) { |x| x.to_s } }.to raise_error -+ expect { obj.foo2(2) { |x| x.to_s } }.to raise_error ReturnContractError - end - - it "should enforce return value inside lambda with no other parameter" do -- expect { obj.bar lambda { |x| x.to_s } }.to raise_error -+ expect { obj.bar lambda { |x| x.to_s } }.to raise_error ReturnContractError - end - - it "should enforce return value inside lambda with other parameter" do -- expect { obj.bar2(2, lambda { |x| x.to_s }) }.to raise_error -+ expect { obj.bar2(2, lambda { |x| x.to_s }) }.to raise_error ReturnContractError - end - end - end --- -2.29.2 - diff --git a/rubygem-contracts-0.16.0-0003-Fix-misspellings-in-comments.patch b/rubygem-contracts-0.16.0-0003-Fix-misspellings-in-comments.patch deleted file mode 100644 index 8ac5b36..0000000 --- a/rubygem-contracts-0.16.0-0003-Fix-misspellings-in-comments.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 989ee11906bb2061b2618bd1d8f128162e143a79 Mon Sep 17 00:00:00 2001 -From: Olle Jonsson -Date: Sun, 24 Sep 2017 19:08:58 +0200 -Subject: [PATCH 3/5] Fix misspellings in comments - - - found using find . | misspellings -f - ---- - lib/contracts/call_with.rb | 2 +- - spec/ruby_version_specific/contracts_spec_2.1.rb | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/lib/contracts/call_with.rb b/lib/contracts/call_with.rb -index 2735d1e..c9336a1 100644 ---- a/lib/contracts/call_with.rb -+++ b/lib/contracts/call_with.rb -@@ -80,7 +80,7 @@ module Contracts - # proc, block, lambda, etc - method.call(*args, &blk) - else -- # original method name referrence -+ # original method name reference - added_block = blk ? lambda { |*params| blk.call(*params) } : nil - method.send_to(this, *args, &added_block) - end -diff --git a/spec/ruby_version_specific/contracts_spec_2.1.rb b/spec/ruby_version_specific/contracts_spec_2.1.rb -index 168cfd0..36b6ede 100644 ---- a/spec/ruby_version_specific/contracts_spec_2.1.rb -+++ b/spec/ruby_version_specific/contracts_spec_2.1.rb -@@ -51,7 +51,7 @@ RSpec.describe "Contracts:" do - end.to raise_error(ContractError) - end - -- it "should fail when passed nil to an optional argument which contract shouldnt accept nil" do -+ it "should fail when passed nil to an optional argument which contract shouldn't accept nil" do - expect do - @o.complicated("a", true, :b, :c, 2.0, e: (1..5), f: nil, g: :d) do |x| - x --- -2.29.2 - diff --git a/rubygem-contracts-0.16.0-0004-Wrapping-blocks-only-when-there-is-a-Func-check.-bug.patch b/rubygem-contracts-0.16.0-0004-Wrapping-blocks-only-when-there-is-a-Func-check.-bug.patch deleted file mode 100644 index 04b1d62..0000000 --- a/rubygem-contracts-0.16.0-0004-Wrapping-blocks-only-when-there-is-a-Func-check.-bug.patch +++ /dev/null @@ -1,30 +0,0 @@ -From ab30dab081c4e004812eab00a36c70e5b8e4e29b Mon Sep 17 00:00:00 2001 -From: md-work <> -Date: Thu, 14 Dec 2017 11:37:18 +0100 -Subject: [PATCH 4/5] Wrapping &blocks only when there is a Func check. (bug - 278) - ---- - lib/contracts/call_with.rb | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/lib/contracts/call_with.rb b/lib/contracts/call_with.rb -index c9336a1..9252c79 100644 ---- a/lib/contracts/call_with.rb -+++ b/lib/contracts/call_with.rb -@@ -81,8 +81,10 @@ module Contracts - method.call(*args, &blk) - else - # original method name reference -- added_block = blk ? lambda { |*params| blk.call(*params) } : nil -- method.send_to(this, *args, &added_block) -+ # Don't reassign blk, else Travis CI shows "stack level too deep". -+ target_blk = blk -+ target_blk = lambda { |*params| blk.call(*params) } if blk && blk.is_a?(Contract) -+ method.send_to(this, *args, &target_blk) - end - - unless @ret_validator[result] --- -2.29.2 - diff --git a/rubygem-contracts-0.16.0-0005-Update-implementation-spec-to-be-3.0-compatible.patch b/rubygem-contracts-0.16.0-0005-Update-implementation-spec-to-be-3.0-compatible.patch deleted file mode 100644 index 7d79dac..0000000 --- a/rubygem-contracts-0.16.0-0005-Update-implementation-spec-to-be-3.0-compatible.patch +++ /dev/null @@ -1,387 +0,0 @@ -From 62ad3fb999287f1495273d4ef41ff6abc28fd278 Mon Sep 17 00:00:00 2001 -From: PikachuEXE -Date: Tue, 26 Jan 2021 17:37:59 +0800 -Subject: [PATCH 5/5] * Update implementation & spec to be 3.0 compatible - -Mainly around the breaking behaviour change about keyword arguments ---- - lib/contracts.rb | 14 ++++----- - lib/contracts/call_with.rb | 31 ++++++++++--------- - lib/contracts/invariants.rb | 10 +++--- - lib/contracts/method_handler.rb | 6 ++-- - lib/contracts/method_reference.rb | 4 +-- - spec/builtin_contracts_spec.rb | 20 +++++------- - spec/contracts_spec.rb | 21 +++++++------ - spec/fixtures/fixtures.rb | 9 ++---- - spec/override_validators_spec.rb | 6 ++-- - .../contracts_spec_2.0.rb | 4 +-- - spec/validators_spec.rb | 2 +- - 11 files changed, 63 insertions(+), 64 deletions(-) - -diff --git a/lib/contracts.rb b/lib/contracts.rb -index baf2acf..f5ae75d 100644 ---- a/lib/contracts.rb -+++ b/lib/contracts.rb -@@ -93,9 +93,9 @@ class Contract < Contracts::Decorator - last_contract = args_contracts.last - penultimate_contract = args_contracts[-2] - @has_options_contract = if @has_proc_contract -- penultimate_contract.is_a?(Hash) || penultimate_contract.is_a?(Contracts::Builtin::KeywordArgs) -+ penultimate_contract.is_a?(Contracts::Builtin::KeywordArgs) - else -- last_contract.is_a?(Hash) || last_contract.is_a?(Contracts::Builtin::KeywordArgs) -+ last_contract.is_a?(Contracts::Builtin::KeywordArgs) - end - # === - -@@ -214,12 +214,12 @@ class Contract < Contracts::Decorator - - # Same thing for when we have named params but didn't pass any in. - # returns true if it appended nil -- def maybe_append_options! args, blk -+ def maybe_append_options! args, kargs, blk - return false unless @has_options_contract -- if @has_proc_contract && (args_contracts[-2].is_a?(Hash) || args_contracts[-2].is_a?(Contracts::Builtin::KeywordArgs)) && !args[-2].is_a?(Hash) -- args.insert(-2, {}) -- elsif (args_contracts[-1].is_a?(Hash) || args_contracts[-1].is_a?(Contracts::Builtin::KeywordArgs)) && !args[-1].is_a?(Hash) -- args << {} -+ if @has_proc_contract && args_contracts[-2].is_a?(Contracts::Builtin::KeywordArgs) -+ args.insert(-2, kargs) -+ elsif args_contracts[-1].is_a?(Contracts::Builtin::KeywordArgs) -+ args << kargs - end - true - end -diff --git a/lib/contracts/call_with.rb b/lib/contracts/call_with.rb -index 9252c79..224b357 100644 ---- a/lib/contracts/call_with.rb -+++ b/lib/contracts/call_with.rb -@@ -1,17 +1,17 @@ - module Contracts - module CallWith -- def call_with(this, *args, &blk) -- call_with_inner(false, this, *args, &blk) -+ def call_with(this, *args, **kargs, &blk) -+ call_with_inner(false, this, *args, **kargs, &blk) - end - -- def call_with_inner(returns, this, *args, &blk) -+ def call_with_inner(returns, this, *args, **kargs, &blk) - args << blk if blk - - # Explicitly append blk=nil if nil != Proc contract violation anticipated - nil_block_appended = maybe_append_block!(args, blk) - - # Explicitly append options={} if Hash contract is present -- maybe_append_options!(args, blk) -+ kargs_appended = maybe_append_options!(args, kargs, blk) - - # Loop forward validating the arguments up to the splat (if there is one) - (@args_contract_index || args.size).times do |i| -@@ -57,14 +57,16 @@ module Contracts - validator = @args_validators[args_contracts.size - 1 - j] - - unless validator && validator[arg] -- return unless Contract.failure_callback(:arg => arg, -- :contract => contract, -- :class => klass, -- :method => method, -- :contracts => self, -- :arg_pos => i-1, -- :total_args => args.size, -- :return_value => false) -+ return unless Contract.failure_callback({ -+ :arg => arg, -+ :contract => contract, -+ :class => klass, -+ :method => method, -+ :contracts => self, -+ :arg_pos => i - 1, -+ :total_args => args.size, -+ :return_value => false, -+ }) - end - - if contract.is_a?(Contracts::Func) -@@ -76,15 +78,16 @@ module Contracts - # If we put the block into args for validating, restore the args - # OR if we added a fake nil at the end because a block wasn't passed in. - args.slice!(-1) if blk || nil_block_appended -+ args.slice!(-1) if kargs_appended - result = if method.respond_to?(:call) - # proc, block, lambda, etc -- method.call(*args, &blk) -+ method.call(*args, **kargs, &blk) - else - # original method name reference - # Don't reassign blk, else Travis CI shows "stack level too deep". - target_blk = blk - target_blk = lambda { |*params| blk.call(*params) } if blk && blk.is_a?(Contract) -- method.send_to(this, *args, &target_blk) -+ method.send_to(this, *args, **kargs, &target_blk) - end - - unless @ret_validator[result] -diff --git a/lib/contracts/invariants.rb b/lib/contracts/invariants.rb -index 56d2d82..215cb89 100644 ---- a/lib/contracts/invariants.rb -+++ b/lib/contracts/invariants.rb -@@ -46,10 +46,12 @@ module Contracts - def check_on(target, method) - return if target.instance_eval(&@condition) - -- self.class.failure_callback(:expected => expected, -- :actual => false, -- :target => target, -- :method => method) -+ self.class.failure_callback({ -+ :expected => expected, -+ :actual => false, -+ :target => target, -+ :method => method, -+ }) - end - - def self.failure_callback(data) -diff --git a/lib/contracts/method_handler.rb b/lib/contracts/method_handler.rb -index fe301cd..714e4e1 100644 ---- a/lib/contracts/method_handler.rb -+++ b/lib/contracts/method_handler.rb -@@ -107,7 +107,7 @@ module Contracts - current_engine = engine - - # We are gonna redefine original method here -- method_reference.make_definition(target) do |*args, &blk| -+ method_reference.make_definition(target) do |*args, **kargs, &blk| - engine = current_engine.nearest_decorated_ancestor - - # If we weren't able to find any ancestor that has decorated methods -@@ -130,14 +130,14 @@ module Contracts - last_error = nil - - decorated_methods.each do |decorated_method| -- result = decorated_method.call_with_inner(true, self, *args, &blk) -+ result = decorated_method.call_with_inner(true, self, *args, **kargs, &blk) - return result unless result.is_a?(ParamContractError) - last_error = result - end - - begin - if ::Contract.failure_callback(last_error.data, false) -- decorated_methods.last.call_with_inner(false, self, *args, &blk) -+ decorated_methods.last.call_with_inner(false, self, *args, **kargs, &blk) - end - rescue expected_error => final_error - raise final_error.to_contract_error -diff --git a/lib/contracts/method_reference.rb b/lib/contracts/method_reference.rb -index 0bc68f8..0c0c03f 100644 ---- a/lib/contracts/method_reference.rb -+++ b/lib/contracts/method_reference.rb -@@ -39,8 +39,8 @@ module Contracts - - # Calls original method on specified `this` argument with - # specified arguments `args` and block `&blk`. -- def send_to(this, *args, &blk) -- this.send(aliased_name, *args, &blk) -+ def send_to(this, *args, **kargs, &blk) -+ this.send(aliased_name, *args, **kargs, &blk) - end - - private -diff --git a/spec/builtin_contracts_spec.rb b/spec/builtin_contracts_spec.rb -index 00cf495..a9f7257 100644 ---- a/spec/builtin_contracts_spec.rb -+++ b/spec/builtin_contracts_spec.rb -@@ -376,10 +376,6 @@ RSpec.describe "Contracts:" do - fails { @o.hash_keywordargs(:hash => nil) } - fails { @o.hash_keywordargs(:hash => 1) } - end -- -- it "should pass if a method is overloaded with non-KeywordArgs" do -- passes { @o.person_keywordargs("name", 10) } -- end - end - - describe "Optional:" do -@@ -405,15 +401,15 @@ RSpec.describe "Contracts:" do - end - - context "given a fulfilled contract" do -- it { expect(@o.gives_max_value(:panda => 1, :bamboo => 2)).to eq(2) } -- it { expect(@o.pretty_gives_max_value(:panda => 1, :bamboo => 2)).to eq(2) } -+ it { expect(@o.gives_max_value({ :panda => 1, :bamboo => 2 })).to eq(2) } -+ it { expect(@o.pretty_gives_max_value({ :panda => 1, :bamboo => 2 })).to eq(2) } - end - - context "given an unfulfilled contract" do -- it { fails { @o.gives_max_value(:panda => "1", :bamboo => "2") } } -+ it { fails { @o.gives_max_value({ :panda => "1", :bamboo => "2" }) } } - it { fails { @o.gives_max_value(nil) } } - it { fails { @o.gives_max_value(1) } } -- it { fails { @o.pretty_gives_max_value(:panda => "1", :bamboo => "2") } } -+ it { fails { @o.pretty_gives_max_value({ :panda => "1", :bamboo => "2" }) } } - end - - describe "#to_s" do -@@ -430,25 +426,25 @@ RSpec.describe "Contracts:" do - describe "StrictHash:" do - context "when given an exact correct input" do - it "does not raise an error" do -- passes { @o.strict_person(:name => "calvin", :age => 10) } -+ passes { @o.strict_person({ :name => "calvin", :age => 10 }) } - end - end - - context "when given an input with correct keys but wrong types" do - it "raises an error" do -- fails { @o.strict_person(:name => "calvin", :age => "10") } -+ fails { @o.strict_person({ :name => "calvin", :age => "10" }) } - end - end - - context "when given an input with missing keys" do - it "raises an error" do -- fails { @o.strict_person(:name => "calvin") } -+ fails { @o.strict_person({ :name => "calvin" }) } - end - end - - context "when given an input with extra keys" do - it "raises an error" do -- fails { @o.strict_person(:name => "calvin", :age => 10, :soft => true) } -+ fails { @o.strict_person({ :name => "calvin", :age => 10, :soft => true }) } - end - end - -diff --git a/spec/contracts_spec.rb b/spec/contracts_spec.rb -index 72c8603..5586415 100644 ---- a/spec/contracts_spec.rb -+++ b/spec/contracts_spec.rb -@@ -349,19 +349,19 @@ RSpec.describe "Contracts:" do - - describe "Hashes" do - it "should pass for exact correct input" do -- expect { @o.person(:name => "calvin", :age => 10) }.to_not raise_error -+ expect { @o.person({ :name => "calvin", :age => 10 }) }.to_not raise_error - end - - it "should pass even if some keys don't have contracts" do -- expect { @o.person(:name => "calvin", :age => 10, :foo => "bar") }.to_not raise_error -+ expect { @o.person({ :name => "calvin", :age => 10, :foo => "bar" }) }.to_not raise_error - end - - it "should fail if a key with a contract on it isn't provided" do -- expect { @o.person(:name => "calvin") }.to raise_error(ContractError) -+ expect { @o.person({ :name => "calvin" }) }.to raise_error(ContractError) - end - - it "should fail for incorrect input" do -- expect { @o.person(:name => 50, :age => 10) }.to raise_error(ContractError) -+ expect { @o.person({ :name => 50, :age => 10 }) }.to raise_error(ContractError) - end - end - -@@ -612,16 +612,19 @@ RSpec.describe "Contracts:" do - - it "should contain to_s representation within a Hash contract" do - expect do -- @o.hash_complex_contracts(:rigged => "bad") -+ @o.hash_complex_contracts({ :rigged => "bad" }) - end.to raise_error(ContractError, not_s(delim "TrueClass or FalseClass")) - end - - it "should contain to_s representation within a nested Hash contract" do - expect do -- @o.nested_hash_complex_contracts(:rigged => true, -- :contents => { -- :kind => 0, -- :total => 42 }) -+ @o.nested_hash_complex_contracts({ -+ :rigged => true, -+ :contents => { -+ :kind => 0, -+ :total => 42, -+ }, -+ }) - end.to raise_error(ContractError, not_s(delim "String or Symbol")) - end - -diff --git a/spec/fixtures/fixtures.rb b/spec/fixtures/fixtures.rb -index b6d2bea..c42722e 100644 ---- a/spec/fixtures/fixtures.rb -+++ b/spec/fixtures/fixtures.rb -@@ -120,16 +120,11 @@ class GenericExample - end - - Contract C::KeywordArgs[:name => String, :age => Fixnum] => nil -- def person_keywordargs(data) -- end -- -- # Testing overloaded method -- Contract String, Fixnum => nil -- def person_keywordargs(name, age) -+ def person_keywordargs(name: "name", age: 10) - end - - Contract C::KeywordArgs[:hash => C::HashOf[Symbol, C::Num]] => nil -- def hash_keywordargs(data) -+ def hash_keywordargs(hash:) - end - - Contract (/foo/) => nil -diff --git a/spec/override_validators_spec.rb b/spec/override_validators_spec.rb -index 293c84c..25af373 100644 ---- a/spec/override_validators_spec.rb -+++ b/spec/override_validators_spec.rb -@@ -30,15 +30,15 @@ RSpec.describe Contract do - obj = klass.new - - expect do -- obj.something(:a => 35, :b => "hello") -+ obj.something({ :a => 35, :b => "hello" }) - end.to raise_error(ContractError) - - expect do -- obj.something( -+ obj.something({ - :a => 35, - :b => "hello", - :it_is_a_hash => true -- ) -+ }) - end.not_to raise_error - end - -diff --git a/spec/ruby_version_specific/contracts_spec_2.0.rb b/spec/ruby_version_specific/contracts_spec_2.0.rb -index 78c5e69..c2b3d69 100644 ---- a/spec/ruby_version_specific/contracts_spec_2.0.rb -+++ b/spec/ruby_version_specific/contracts_spec_2.0.rb -@@ -1,10 +1,10 @@ - class GenericExample -- Contract C::Args[String], { repeat: C::Maybe[C::Num] } => C::ArrayOf[String] -+ Contract C::Args[String], C::KeywordArgs[ repeat: C::Maybe[C::Num] ] => C::ArrayOf[String] - def splat_then_optional_named(*vals, repeat: 2) - vals.map { |v| v * repeat } - end - -- Contract ({foo: C::Nat}) => nil -+ Contract C::KeywordArgs[ foo: C::Nat ] => nil - def nat_test_with_kwarg(foo: 10) - end - -diff --git a/spec/validators_spec.rb b/spec/validators_spec.rb -index 588580e..22dc2a9 100644 ---- a/spec/validators_spec.rb -+++ b/spec/validators_spec.rb -@@ -34,7 +34,7 @@ RSpec.describe "Contract validators" do - - describe "within a hash" do - it "should pass for a matching string" do -- expect { o.hash_containing_foo(:host => "foo.example.org") }.to_not raise_error -+ expect { o.hash_containing_foo({ :host => "foo.example.org" }) }.to_not raise_error - end - end - --- -2.29.2 - diff --git a/rubygem-contracts-0.16.0-0006-Remove-deprecated-const-fixnum.patch b/rubygem-contracts-0.16.0-0006-Remove-deprecated-const-fixnum.patch deleted file mode 100644 index f0c8498..0000000 --- a/rubygem-contracts-0.16.0-0006-Remove-deprecated-const-fixnum.patch +++ /dev/null @@ -1,193 +0,0 @@ -From cbbebf804919e5ce675588adf854f6d7cdcf327a Mon Sep 17 00:00:00 2001 -From: wang--ge -Date: Wed, 2 Aug 2023 10:41:57 +0800 -Subject: [PATCH] remove deprecated const fixnum - ---- - TUTORIAL.md | 28 ++++++++++++++-------------- - spec/fixtures/fixtures.rb | 18 +++++++++--------- - 2 files changed, 23 insertions(+), 23 deletions(-) - -diff --git a/TUTORIAL.md b/TUTORIAL.md -index c74ce06..3dc68af 100644 ---- a/TUTORIAL.md -+++ b/TUTORIAL.md -@@ -80,8 +80,8 @@ contracts.ruby comes with a lot of built-in contracts, including the following: - - * Logical combinations - * [`Maybe`](http://www.rubydoc.info/gems/contracts/Contracts/Builtin/Maybe) – specifies that a value _may be_ nil, e.g. `Maybe[String]` (equivalent to `Or[String,nil]`) -- * [`Or`](http://www.rubydoc.info/gems/contracts/Contracts/Builtin/Or) – passes if any of the given contracts pass, e.g. `Or[Fixnum, Float]` -- * [`Xor`](http://www.rubydoc.info/gems/contracts/Contracts/Builtin/Xor) – passes if exactly one of the given contracts pass, e.g. `Xor[Fixnum, Float]` -+ * [`Or`](http://www.rubydoc.info/gems/contracts/Contracts/Builtin/Or) – passes if any of the given contracts pass, e.g. `Or[Integer, Float]` -+ * [`Xor`](http://www.rubydoc.info/gems/contracts/Contracts/Builtin/Xor) – passes if exactly one of the given contracts pass, e.g. `Xor[Integer, Float]` - * [`And`](http://www.rubydoc.info/gems/contracts/Contracts/Builtin/And) – passes if all contracts pass, e.g. `And[Nat, -> (n) { n.even? }]` - * [`Not`](http://www.rubydoc.info/gems/contracts/Contracts/Builtin/Not) – passes if all contracts fail for the given argument, e.g. `Not[nil]` - -@@ -89,7 +89,7 @@ contracts.ruby comes with a lot of built-in contracts, including the following: - * [`ArrayOf`](http://www.rubydoc.info/gems/contracts/Contracts/Builtin/ArrayOf) – checks that the argument is an array, and all elements pass the given contract, e.g. `ArrayOf[Num]` - * [`SetOf`](http://www.rubydoc.info/gems/contracts/Contracts/Builtin/SetOf) – checks that the argument is a set, and all elements pass the given contract, e.g. `SetOf[Num]` - * [`HashOf`](http://www.rubydoc.info/gems/contracts/Contracts/Builtin/HashOf) – checks that the argument is a hash, and all keys and values pass the given contract, e.g. `HashOf[Symbol => String]` or `HashOf[Symbol,String]` -- * [`StrictHash`](http://www.rubydoc.info/gems/contracts/Contracts/Builtin/StrictHash) – checks that the argument is a hash, and every key passed is present in the given contract, e.g. `StrictHash[{ :description => String, :number => Fixnum }]` -+ * [`StrictHash`](http://www.rubydoc.info/gems/contracts/Contracts/Builtin/StrictHash) – checks that the argument is a hash, and every key passed is present in the given contract, e.g. `StrictHash[{ :description => String, :number => Integer }]` - * [`RangeOf`](http://www.rubydoc.info/gems/contracts/Contracts/Builtin/RangeOf) – checks that the argument is a range whose elements (#first and #last) pass the given contract, e.g. `RangeOf[Date]` - * [`Enum`](http://www.rubydoc.info/gems/contracts/Contracts/Builtin/Enum) – checks that the argument is part of a given collection of objects, e.g. `Enum[:a, :b, :c]` - -@@ -152,7 +152,7 @@ end - - You always need to specify a contract for the return value. In this example, `hello` doesn't return anything, so the contract is `nil`. Now you know that you can use a constant like `nil` as the end of a contract. Valid values for a contract are: - --- the name of a class (like `String` or `Fixnum`) -+- the name of a class (like `String` or `Integer`) - - a constant (like `nil` or `1`) - - a `Proc` that takes a value and returns true or false to indicate whether the contract passed or not - - a class that responds to the `valid?` class method (more on this later) -@@ -161,32 +161,32 @@ You always need to specify a contract for the return value. In this example, `he - ### A Double Function - - ```ruby --Contract C::Or[Fixnum, Float] => C::Or[Fixnum, Float] -+Contract C::Or[Integer, Float] => C::Or[Integer, Float] - def double(x) - 2 * x - end - ``` - - Sometimes you want to be able to choose between a few contracts. `Or` takes a variable number of contracts and checks the argument against all of them. If it passes for any of the contracts, then the `Or` contract passes. --This introduces some new syntax. One of the valid values for a contract is an instance of a class that responds to the `valid?` method. This is what `Or[Fixnum, Float]` is. The longer way to write it would have been: -+This introduces some new syntax. One of the valid values for a contract is an instance of a class that responds to the `valid?` method. This is what `Or[Integer, Float]` is. The longer way to write it would have been: - - ```ruby --Contract C::Or.new(Fixnum, Float) => C::Or.new(Fixnum, Float) -+Contract C::Or.new(Integer, Float) => C::Or.new(Integer, Float) - ``` - - All the built-in contracts have overridden the square brackets (`[]`) to give the same functionality. So you could write - - ```ruby --Contract C::Or[Fixnum, Float] => C::Or[Fixnum, Float] -+Contract C::Or[Integer, Float] => C::Or[Integer, Float] - ``` - - or - - ```ruby --Contract C::Or.new(Fixnum, Float) => C::Or.new(Fixnum, Float) -+Contract C::Or.new(Integer, Float) => C::Or.new(Integer, Float) - ``` - --whichever you prefer. They both mean the same thing here: make a new instance of `Or` with `Fixnum` and `Float`. Use that instance to validate the argument. -+whichever you prefer. They both mean the same thing here: make a new instance of `Or` with `Integer` and `Float`. Use that instance to validate the argument. - - ### A Product Function - -@@ -455,7 +455,7 @@ Now you can use `Person` wherever you would have used `Or[Hash, nil]`. Your code - - Contracts are very easy to define. To re-iterate, there are 5 kinds of contracts: - --- the name of a class (like `String` or `Fixnum`) -+- the name of a class (like `String` or `Integer`) - - a constant (like `nil` or `1`) - - a `Proc` that takes a value and returns true or false to indicate whether the contract passed or not - - a class that responds to the `valid?` class method (more on this later) -@@ -511,7 +511,7 @@ The `Or` contract takes a sequence of contracts, and passes if any of them pass. - This class inherits from `CallableClass`, which allows us to use `[]` when using the class: - - ```ruby --Contract C::Or[Fixnum, Float] => C::Num -+Contract C::Or[Integer, Float] => C::Num - def double(x) - 2 * x - end -@@ -520,7 +520,7 @@ end - Without `CallableClass`, we would have to use `.new` instead: - - ```ruby --Contract C::Or.new(Fixnum, Float) => C::Num -+Contract C::Or.new(Integer, Float) => C::Num - def double(x) - # etc - ``` -@@ -723,7 +723,7 @@ class MyBirthday < Struct.new(:day, :month) - invariant(:day) { 1 <= day && day <= 31 } - invariant(:month) { 1 <= month && month <= 12 } - -- Contract C::None => Fixnum -+ Contract C::None => Integer - def silly_next_day! - self.day += 1 - end -diff --git a/spec/fixtures/fixtures.rb b/spec/fixtures/fixtures.rb -index 55638c2..bf2042a 100644 ---- a/spec/fixtures/fixtures.rb -+++ b/spec/fixtures/fixtures.rb -@@ -100,11 +100,11 @@ class GenericExample - end - end - -- Contract ({ :name => String, :age => Fixnum }) => nil -+ Contract ({ :name => String, :age => Integer }) => nil - def person(data) - end - -- Contract C::StrictHash[{ :name => String, :age => Fixnum }] => nil -+ Contract C::StrictHash[{ :name => String, :age => Integer }] => nil - def strict_person(data) - end - -@@ -119,7 +119,7 @@ class GenericExample - def nested_hash_complex_contracts(data) - end - -- Contract C::KeywordArgs[:name => String, :age => Fixnum] => nil -+ Contract C::KeywordArgs[:name => String, :age => Integer] => nil - def person_keywordargs(name: "name", age: 10) - end - -@@ -529,30 +529,30 @@ class MyBirthday - @month = month - end - -- Contract C::None => Fixnum -+ Contract C::None => Integer - def silly_next_day! - self.day += 1 - end - -- Contract C::None => Fixnum -+ Contract C::None => Integer - def silly_next_month! - self.month += 1 - end - -- Contract C::None => Fixnum -+ Contract C::None => Integer - def clever_next_day! - return clever_next_month! if day == 31 - self.day += 1 - end - -- Contract C::None => Fixnum -+ Contract C::None => Integer - def clever_next_month! - return next_year! if month == 12 - self.month += 1 - self.day = 1 - end - -- Contract C::None => Fixnum -+ Contract C::None => Integer - def next_year! - self.month = 1 - self.day = 1 -@@ -610,7 +610,7 @@ with_enabled_no_contracts do - body + "!" - end - -- Contract Fixnum, String => String -+ Contract Integer, String => String - def on_response(status, body) - "error #{status}: #{body}" - end --- -2.33.0 - diff --git a/rubygem-contracts.spec b/rubygem-contracts.spec index a03616b..225742f 100644 --- a/rubygem-contracts.spec +++ b/rubygem-contracts.spec @@ -1,19 +1,20 @@ %global gem_name contracts + Name: rubygem-%{gem_name} -Version: 0.16.0 -Release: 4 +Version: 0.17 +Release: 7 + Summary: Contracts for Ruby -License: BSD-2-Clause +License: BSD URL: http://egonschiele.github.io/contracts.ruby/ Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem -Patch1: rubygem-contracts-0.16.0-0001-Don-t-use-exceptions-for-control-flow.patch -Patch2: rubygem-contracts-0.16.0-0002-Update-spec-to-specify-error-class-to-suppress-RSpec.patch -Patch3: rubygem-contracts-0.16.0-0003-Fix-misspellings-in-comments.patch -Patch4: rubygem-contracts-0.16.0-0004-Wrapping-blocks-only-when-there-is-a-Func-check.-bug.patch -Patch5: rubygem-contracts-0.16.0-0005-Update-implementation-spec-to-be-3.0-compatible.patch -Patch6: rubygem-contracts-0.16.0-0006-Remove-deprecated-const-fixnum.patch -BuildRequires: ruby(release) rubygems-devel ruby rubygem(rspec) >= 3 -BuildArch: noarch + +BuildRequires: ruby(release) +BuildRequires: rubygems-devel +BuildRequires: ruby +BuildRequires: rubygem(rspec) >= 3 +BuildArch: noarch + %description This library provides contracts for Ruby. Contracts let you clearly express how your code behaves, and free you from writing tons of boilerplate, @@ -21,32 +22,27 @@ defensive code. %package doc Summary: Documentation for %{name} -Requires: %{name} = %{version}-%{release} +Requires: %{name} = %{version}-%{release} BuildArch: noarch -%description doc + +%description doc Documentation for %{name}. %prep -gem unpack %{SOURCE0} -%setup -q -D -T -n %{gem_name}-%{version} +%setup -q -n %{gem_name}-%{version} +mv ../%{gem_name}-%{version}.gemspec . -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 - -gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec +sed -i spec/fixtures/fixtures.rb -e 's|Fixnum|Integer|' %build -gem build %{gem_name}.gemspec +gem build %{gem_name}-%{version}.gemspec %gem_install %install mkdir -p %{buildroot}%{gem_dir} cp -a .%{gem_dir}/* \ %{buildroot}%{gem_dir}/ + rm -f %{buildroot}%{gem_cache} pushd %{buildroot}%{gem_instdir} rm -rf \ @@ -72,14 +68,19 @@ popd %doc %{gem_instdir}/README.md %doc %{gem_instdir}/TODO.markdown %doc %{gem_instdir}/TUTORIAL.md + %{gem_libdir} %{gem_spec} %files doc %doc %{gem_docdir} +# Keep this %{gem_instdir}/benchmarks/ %changelog +* Thu Nov 02 2023 zhangkea - 0.17-7 +- upgrade version to 0.17 + * Wed Aug 02 2023 Ge Wang - 0.16.0-4 - Remove deprecated const fixnum due to ruby updated -- Gitee