mongoid 7.1.9 → 7.1.10

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: 1f135a295b5c2604e02f7f9b47ada8f3c2ad7a00e63d834f2a02a965dd181c5c
4
- data.tar.gz: 9ee16d88d4acd88f467c6e7152bb877cf21b64e94e2970094dc706399dd26c45
3
+ metadata.gz: 99b8d31638cfb3ff2cf789177ed38778cc7ed9281b2f90eb6790a53c4e817557
4
+ data.tar.gz: e4fccff34a4cc008ce1af7681cc6a5179960ab3dca7c8dada85ddbcef33d102d
5
5
  SHA512:
6
- metadata.gz: 7e237e1208ce73ccb6081e81a5470b989b0085752790cdefe6a0482c202aa61343774f1972580b0c5f161fe9de7deb3bbbf97b4fcf1af33d466b9115bef32c8f
7
- data.tar.gz: 58dc8d96b5ec060c3dbb9e953528e20d290ab54c0624661260730c25952b513df936abc6d6a4bb3a7090123938b6c819b723877c92431bb2e35265dcf1de0bff
6
+ metadata.gz: 1f9474eaa39877c8087d8f681a964a43943193ef43ec6e5fed05c349e9add56235e10b3959615213157514f7224e63157f90a96720bc993d15f0d2ea2112a7c3
7
+ data.tar.gz: 74db9f1912c3d4029c671f72f4856984f0a0520e3d1492f2ce8b1b9ce40cfd4efc2fe89923ac695c9644913533ca63e76842a993196cfb48b5c81c715e983d5c
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"
@@ -415,7 +415,7 @@ module Mongoid
415
415
  # @param [ Proc ] block Optional block to pass.
416
416
  #
417
417
  # @return [ Criteria, Object ] A Criteria or return value from the target.
418
- def method_missing(name, *args, &block)
418
+ ruby2_keywords def method_missing(name, *args, &block)
419
419
  return super if _target.respond_to?(name)
420
420
  klass.send(:with_scope, criteria) do
421
421
  criteria.public_send(name, *args, &block)
@@ -133,7 +133,7 @@ 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
 
@@ -498,7 +498,7 @@ module Mongoid
498
498
  end
499
499
  end
500
500
 
501
- def method_missing(name, *args, &block)
501
+ ruby2_keywords def method_missing(name, *args, &block)
502
502
  entries.send(name, *args, &block)
503
503
  end
504
504
 
@@ -436,7 +436,7 @@ module Mongoid
436
436
  # @return [ Criteria, Object ] A Criteria or return value from the target.
437
437
  #
438
438
  # @since 2.0.0.beta.1
439
- def method_missing(name, *args, &block)
439
+ ruby2_keywords def method_missing(name, *args, &block)
440
440
  if _target.respond_to?(name)
441
441
  _target.send(name, *args, &block)
442
442
  else
@@ -518,7 +518,7 @@ module Mongoid
518
518
  # @return [ Object ] The result of the method call.
519
519
  #
520
520
  # @since 1.0.0
521
- def method_missing(name, *args, &block)
521
+ ruby2_keywords def method_missing(name, *args, &block)
522
522
  if klass.respond_to?(name)
523
523
  klass.send(:with_scope, self) do
524
524
  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.1.9"
5
+ VERSION = "7.1.10"
6
6
  end
@@ -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)
@@ -2416,13 +2416,26 @@ describe Mongoid::Association::Embedded::EmbedsMany::Proxy do
2416
2416
  end
2417
2417
 
2418
2418
  context "when providing a criteria class method" do
2419
+ context "without keyword arguments" do
2419
2420
 
2420
- let(:addresses) do
2421
- person.addresses.california
2421
+ let(:addresses) do
2422
+ person.addresses.california
2423
+ end
2424
+
2425
+ it "applies the criteria to the documents" do
2426
+ expect(addresses).to eq([ address_one ])
2427
+ end
2422
2428
  end
2423
2429
 
2424
- it "applies the criteria to the documents" do
2425
- expect(addresses).to eq([ address_one ])
2430
+ context "with keyword arguments" do
2431
+
2432
+ let(:addresses) do
2433
+ person.addresses.city_and_state(city: "Sacramento", state: "CA")
2434
+ end
2435
+
2436
+ it "applies the criteria to the documents" do
2437
+ expect(addresses).to eq([])
2438
+ end
2426
2439
  end
2427
2440
  end
2428
2441
 
@@ -1332,4 +1332,21 @@ describe Mongoid::Association::Referenced::BelongsTo::Proxy do
1332
1332
  end
1333
1333
  end
1334
1334
  end
1335
+
1336
+ describe "#method_missing" do
1337
+ let!(:person) do
1338
+ Person.create
1339
+ end
1340
+
1341
+ let!(:game) do
1342
+ Game.create(person: person)
1343
+ end
1344
+
1345
+ it 'handles keyword args' do
1346
+ expect do
1347
+ game.person.set_personal_data(ssn: '123', age: 25)
1348
+ end.not_to raise_error
1349
+ end
1350
+
1351
+ end
1335
1352
  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
@@ -3645,10 +3645,14 @@ describe Mongoid::Criteria do
3645
3645
 
3646
3646
  before do
3647
3647
  expect(Person).to receive(:minor).and_call_original
3648
+ expect(Person).to receive(:older_than).and_call_original
3648
3649
  end
3649
3650
 
3650
3651
  it "calls the method on the class" do
3651
3652
  expect(criteria.minor).to be_empty
3653
+ expect do
3654
+ criteria.older_than(age: 25)
3655
+ end.not_to raise_error
3652
3656
  end
3653
3657
  end
3654
3658
 
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.1.9
4
+ version: 7.1.10
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,40 @@ 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
88
+ - !ruby/object:Gem::Dependency
89
+ name: bson
90
+ requirement: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: 4.9.4
95
+ - - "<"
96
+ - !ruby/object:Gem::Version
97
+ version: 5.0.0
98
+ type: :development
99
+ prerelease: false
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: 4.9.4
105
+ - - "<"
106
+ - !ruby/object:Gem::Version
107
+ version: 5.0.0
74
108
  description: Mongoid is an ODM (Object Document Mapper) Framework for MongoDB, written
75
109
  in Ruby.
76
110
  email:
metadata.gz.sig CHANGED
Binary file