mongoid 7.3.1 → 7.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 408fcc1f85dce0c9a16140dda363526896fe1fb37f627e33f15ef6d1a2628de0
4
- data.tar.gz: '084168385d0912909c5292100334c8eb7edf162d72bcd1cd51673fd8140013ca'
3
+ metadata.gz: 27ef7fb0ba8610ab6cd4cf814a5a47361fe909247a85535c807d90dbf70c1563
4
+ data.tar.gz: fe110c6f5439f985325f3df374bfc87fa5c9133eb97cac501dd9166b8d45cf60
5
5
  SHA512:
6
- metadata.gz: 193c335677afc72c56eebc7d64a0167cb4c9112e7b0a81baa39d6433a7c8b04d1a456e451777823c5678219bd73ad46198c8bd650e0cfb89b1ee87e77d4b62d4
7
- data.tar.gz: b994ad71c11e4c9f94074fc082c91ffc479146bb0a9af87b28a4c7fa1bc338f737cb902d4098d50241ffb62cf9e6ba1deb2cdd3ffb951e1afa09cf3c02450e2c
6
+ metadata.gz: 3f963e5e7fb3a7705d36ce9a6d24fb09106ca2ccca52d1a2cf24ddbf9a98773206d315374d4ecc40ad6a208be75ad0de5e44a6d43285faa3304ec641d91de3fa
7
+ data.tar.gz: 167e2188b8801cb0a4eb15ec98727e3f331eab9f0588923f80f5f3cf2e29eec8b9cf6a01ace242d6412ea578a9fa7e4de309278a309c0d84b5cc07091f74828f
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/mongoid.rb CHANGED
@@ -6,6 +6,7 @@ require "support/ruby_version"
6
6
  require "forwardable"
7
7
  require "time"
8
8
  require "set"
9
+ require "ruby2_keywords"
9
10
 
10
11
  require "active_support"
11
12
  require "active_support/core_ext"
@@ -422,7 +422,7 @@ module Mongoid
422
422
  # @param [ Proc ] block Optional block to pass.
423
423
  #
424
424
  # @return [ Criteria, Object ] A Criteria or return value from the target.
425
- def method_missing(name, *args, &block)
425
+ ruby2_keywords def method_missing(name, *args, &block)
426
426
  return super if _target.respond_to?(name)
427
427
  klass.send(:with_scope, criteria) do
428
428
  criteria.public_send(name, *args, &block)
@@ -133,12 +133,12 @@ module Mongoid
133
133
  # @param [ String, Symbol ] name The name of the method.
134
134
  # @param [ Array ] args The arguments passed to the method.
135
135
  #
136
- def method_missing(name, *args, &block)
136
+ ruby2_keywords def method_missing(name, *args, &block)
137
137
  _target.send(name, *args, &block)
138
138
  end
139
139
 
140
140
  # @api private
141
- def respond_to_missing?(name, *args)
141
+ ruby2_keywords def respond_to_missing?(name, *args)
142
142
  _target.respond_to?(name, *args)
143
143
  end
144
144
 
@@ -532,7 +532,7 @@ module Mongoid
532
532
  end
533
533
  end
534
534
 
535
- def method_missing(name, *args, &block)
535
+ ruby2_keywords def method_missing(name, *args, &block)
536
536
  entries.send(name, *args, &block)
537
537
  end
538
538
 
@@ -443,7 +443,7 @@ module Mongoid
443
443
  # @return [ Criteria, Object ] A Criteria or return value from the target.
444
444
  #
445
445
  # @since 2.0.0.beta.1
446
- def method_missing(name, *args, &block)
446
+ ruby2_keywords def method_missing(name, *args, &block)
447
447
  if _target.respond_to?(name)
448
448
  _target.send(name, *args, &block)
449
449
  else
@@ -567,7 +567,7 @@ module Mongoid
567
567
  # @return [ Object ] The result of the method call.
568
568
  #
569
569
  # @since 1.0.0
570
- def method_missing(name, *args, &block)
570
+ ruby2_keywords def method_missing(name, *args, &block)
571
571
  if klass.respond_to?(name)
572
572
  klass.send(:with_scope, self) do
573
573
  klass.send(name, *args, &block)
@@ -125,7 +125,7 @@ module Mongoid
125
125
  # @return [ Document ] The document
126
126
  #
127
127
  # @since 2.3.0
128
- def run_callbacks(kind, *args, &block)
128
+ ruby2_keywords def run_callbacks(kind, *args, &block)
129
129
  cascadable_children(kind).each do |child|
130
130
  if child.run_callbacks(child_callback_type(kind, child), *args) == false
131
131
  return false
@@ -2,5 +2,5 @@
2
2
  # encoding: utf-8
3
3
 
4
4
  module Mongoid
5
- VERSION = "7.3.1"
5
+ VERSION = "7.3.2"
6
6
  end
@@ -2449,13 +2449,26 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
2449
2449
  end
2450
2450
 
2451
2451
  context "when providing a criteria class method" do
2452
+ context "without keyword arguments" do
2452
2453
 
2453
- let(:addresses) do
2454
- person.addresses.california
2454
+ let(:addresses) do
2455
+ person.addresses.california
2456
+ end
2457
+
2458
+ it "applies the criteria to the documents" do
2459
+ expect(addresses).to eq([ address_one ])
2460
+ end
2455
2461
  end
2456
2462
 
2457
- it "applies the criteria to the documents" do
2458
- expect(addresses).to eq([ address_one ])
2463
+ context "with keyword arguments" do
2464
+
2465
+ let(:addresses) do
2466
+ person.addresses.city_and_state(city: "Sacramento", state: "CA")
2467
+ end
2468
+
2469
+ it "applies the criteria to the documents" do
2470
+ expect(addresses).to eq([])
2471
+ end
2459
2472
  end
2460
2473
  end
2461
2474
 
@@ -1349,4 +1349,21 @@ describe Mongoid::Association::Referenced::BelongsTo::Proxy do
1349
1349
  end
1350
1350
  end
1351
1351
  end
1352
+
1353
+ describe "#method_missing" do
1354
+ let!(:person) do
1355
+ Person.create
1356
+ end
1357
+
1358
+ let!(:game) do
1359
+ Game.create(person: person)
1360
+ end
1361
+
1362
+ it 'handles keyword args' do
1363
+ expect do
1364
+ game.person.set_personal_data(ssn: '123', age: 25)
1365
+ end.not_to raise_error
1366
+ end
1367
+
1368
+ end
1352
1369
  end
@@ -141,6 +141,8 @@ describe Mongoid::Clients::Options, retry: 3 do
141
141
  end
142
142
 
143
143
  it 'does not disconnect the original cluster' do
144
+ skip 'https://jira.mongodb.org/browse/MONGOID-5130'
145
+
144
146
  expect(connections_after).to eq(connections_before)
145
147
  expect(cluster_before).to be(cluster_after)
146
148
  end
@@ -3532,10 +3532,14 @@ describe Mongoid::Criteria do
3532
3532
 
3533
3533
  before do
3534
3534
  expect(Person).to receive(:minor).and_call_original
3535
+ expect(Person).to receive(:older_than).and_call_original
3535
3536
  end
3536
3537
 
3537
3538
  it "calls the method on the class" do
3538
3539
  expect(criteria.minor).to be_empty
3540
+ expect do
3541
+ criteria.older_than(age: 25)
3542
+ end.not_to raise_error
3539
3543
  end
3540
3544
  end
3541
3545
 
@@ -78,5 +78,9 @@ class Address
78
78
  def streets
79
79
  all.map(&:street)
80
80
  end
81
+
82
+ def city_and_state(city:, state:)
83
+ where(city: city, state: state)
84
+ end
81
85
  end
82
86
  end
@@ -136,6 +136,10 @@ class Person
136
136
  scope :without_ssn, ->{ without(:ssn) }
137
137
  scope :search, ->(query){ any_of({ title: query }) }
138
138
 
139
+ def self.older_than(age:)
140
+ where(:age.gt => age)
141
+ end
142
+
139
143
  def score_with_rescoring=(score)
140
144
  @rescored = score.to_i + 20
141
145
  self.score_without_rescoring = score
@@ -206,6 +210,11 @@ class Person
206
210
  self.map_with_default["key"] = value
207
211
  end
208
212
 
213
+ def set_personal_data(ssn:, age:)
214
+ self.ssn = ssn
215
+ self.age = age
216
+ end
217
+
209
218
  reset_callbacks(:validate)
210
219
  reset_callbacks(:create)
211
220
  reset_callbacks(:save)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.3.1
4
+ version: 7.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Durran Jordan
@@ -29,7 +29,7 @@ cert_chain:
29
29
  YoFhlyUEi7VLlqNH0H/JFttVZK6+qmLelkVNcIYVLeWOB4Lf4VxEiYGEK1ORxsrY
30
30
  iyYKJJALWY1FAInGRIlvkN+B8o3yIhq1
31
31
  -----END CERTIFICATE-----
32
- date: 2021-07-15 00:00:00.000000000 Z
32
+ date: 2021-08-03 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: activemodel
@@ -71,6 +71,20 @@ dependencies:
71
71
  - - "<"
72
72
  - !ruby/object:Gem::Version
73
73
  version: 3.0.0
74
+ - !ruby/object:Gem::Dependency
75
+ name: ruby2_keywords
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: 0.0.5
81
+ type: :runtime
82
+ prerelease: false
83
+ version_requirements: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: 0.0.5
74
88
  - !ruby/object:Gem::Dependency
75
89
  name: bson
76
90
  requirement: !ruby/object:Gem::Requirement
metadata.gz.sig CHANGED
Binary file