mongoid 7.3.1 → 7.3.2

Sign up to get free protection for your applications and to get access to all the features.
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