From 94c1d7683507eb9973a799f3a481831e0838b19a Mon Sep 17 00:00:00 2001 From: Jon Rowe Date: Sun, 5 Apr 2020 12:25:31 +0100 Subject: [PATCH] Wrap keyword args definitions in eval blocks for 1.8.7 support --- spec/rspec/matchers/dsl_spec.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spec/rspec/matchers/dsl_spec.rb b/spec/rspec/matchers/dsl_spec.rb index 26780324b..e0f98c5cc 100644 --- a/spec/rspec/matchers/dsl_spec.rb +++ b/spec/rspec/matchers/dsl_spec.rb @@ -30,6 +30,7 @@ def ok end if RSpec::Support::RubyFeatures.required_kw_args_supported? + binding.eval(<<-CODE, __FILE__, __LINE__) it 'supports the use of required keyword arguments in definition block' do RSpec::Matchers.define(:match_required_kw) do |bar:| match { expect(actual).to eq bar } @@ -45,9 +46,11 @@ def kw(a:) RSpec::Matchers.define(:matcher_required_kw_on_method) {} expect(matcher_required_kw_on_method.kw(a: 1)).to eq(1) end + CODE end if RSpec::Support::RubyFeatures.kw_args_supported? + binding.eval(<<-CODE, __FILE__, __LINE__) it 'supports the use of optional keyword arguments in definition block' do RSpec::Matchers.define(:match_optional_kw) do |bar: nil| match { expect(actual).to eq bar } @@ -63,6 +66,7 @@ def optional_kw(a: nil) RSpec::Matchers.define(:matcher_optional_kw_on_method) {} expect(matcher_optional_kw_on_method.optional_kw(a: 1)).to eq(1) end + CODE end it "clears user instance variables between invocations" do