Skip to content

Commit 0ab88b9

Browse files
MONGOID-5717 Fix some cases of missing **kwargs pass-thru (#5758)
Co-authored-by: Dmitry Rybakov <dmitry.rybakov@mongodb.com>
1 parent 65b9f7e commit 0ab88b9

File tree

4 files changed

+9
-11
lines changed

4 files changed

+9
-11
lines changed

lib/mongoid/scopable.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,9 +290,9 @@ def check_scope_validity(value)
290290
def define_scope_method(name)
291291
singleton_class.class_eval do
292292
ruby2_keywords(
293-
define_method(name) do |*args|
293+
define_method(name) do |*args, **kwargs|
294294
scoping = _declared_scopes[name]
295-
scope = instance_exec(*args, &scoping[:scope])
295+
scope = instance_exec(*args, **kwargs, &scoping[:scope])
296296
extension = scoping[:extension]
297297
to_merge = scope || queryable
298298
criteria = to_merge.empty_and_chainable? ? to_merge : with_default_scope.merge(to_merge)

spec/mongoid/criteria/marshalable_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
let(:dump) { Marshal.dump(criteria) }
3232

3333
before do
34-
expect_any_instance_of(Mongoid::Criteria).to receive(:marshal_dump).and_wrap_original do |m, *args|
35-
data = m.call(*args)
34+
expect_any_instance_of(Mongoid::Criteria).to receive(:marshal_dump).and_wrap_original do |m, *args, **kwargs|
35+
data = m.call(*args, **kwargs)
3636
data[1] = :mongo1x
3737
data
3838
end

spec/mongoid/extensions/set_spec.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,7 @@
113113
end
114114

115115
before do
116-
expect(BigDecimal).to receive(:mongoize).exactly(4).times.and_wrap_original do |m, *args|
117-
1
118-
end
116+
expect(BigDecimal).to receive(:mongoize).exactly(4).times.and_return(1)
119117
end
120118

121119
context "when the input is a set" do

spec/mongoid/validatable/uniqueness_spec.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
end
2121

2222
it "reads from the primary" do
23-
expect_any_instance_of(Mongoid::Criteria).to receive(:read).once.and_wrap_original do |m, *args|
24-
crit = m.call(*args)
23+
expect_any_instance_of(Mongoid::Criteria).to receive(:read).once.and_wrap_original do |m, *args, **kwargs|
24+
crit = m.call(*args, **kwargs)
2525
expect(crit.view.options["read"]).to eq({ "mode" => :primary })
2626
crit
2727
end
@@ -1670,8 +1670,8 @@
16701670
let(:word) { Word.create! }
16711671

16721672
it "reads from the primary" do
1673-
expect_any_instance_of(Mongoid::Criteria).to receive(:read).once.and_wrap_original do |m, *args|
1674-
crit = m.call(*args)
1673+
expect_any_instance_of(Mongoid::Criteria).to receive(:read).once.and_wrap_original do |m, *args, **kwargs|
1674+
crit = m.call(*args, **kwargs)
16751675
expect(crit.options[:read]).to eq({ mode: :primary })
16761676
crit
16771677
end

0 commit comments

Comments
 (0)