mongoid 7.1.9 → 7.1.10

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: 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