mongoid 8.0.4 → 8.0.5

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: 9ab3c68fb6c373b704eb2d459a98d7a4cb99d73b87e720eabb553fcd44928d17
4
- data.tar.gz: d0cd7fe683015dd257c48a7d0c301dd9c6972ea51be4b8199ae88b81dc45c8d6
3
+ metadata.gz: 53bba3a9611a89eaf77478beacbf4a8a3c6751503ecf1919407c7af05e134af0
4
+ data.tar.gz: ebe8a6705c4c035e99720d1a37e8103948aa1cb61a66ab42b0d426dd7e10c135
5
5
  SHA512:
6
- metadata.gz: 247213c01b169b66f1441ccf892590c068b116e4a4998e15cb50c0cdf3b11648bc543a0c935165a7674a88e783734df36dfeed481079d759fcbf473c068686de
7
- data.tar.gz: fdf737044c01f8089e8bae7dbc14cce78e48e998ea810cd8e9a334f1bdc8c2b8e1ba6c885c8032c3b5da8b70d24b35b99dd90c260c87abea31a93edef15429cc
6
+ metadata.gz: 15c3ecad78d34f2bdc3967042c0175b639d813aa44bcb2e6a5aa4ee5ec6d3adcb13e428accefb0edfa6b7dab59710829194e00cc17cb0f38ff5673957c97e6ce
7
+ data.tar.gz: ba5f2a0a8cd2ddc48650d9e7b67c162d4071f254ea9de03070308a411aeda8db2ac40c3a548d9543bed2bad637aa001e2a4ed0fe039cb380a30a69d6b79164fd
checksums.yaml.gz.sig CHANGED
Binary file
data/Rakefile CHANGED
@@ -11,6 +11,15 @@ $: << File.join(ROOT, 'spec/shared/lib')
11
11
  require "rake"
12
12
  require "rspec/core/rake_task"
13
13
  require 'mrss/spec_organizer'
14
+ require 'rubygems/package'
15
+ require 'rubygems/security/policies'
16
+
17
+ def signed_gem?(path_to_gem)
18
+ Gem::Package.new(path_to_gem, Gem::Security::HighSecurity).verify
19
+ true
20
+ rescue Gem::Security::Exception => e
21
+ false
22
+ end
14
23
 
15
24
  $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
16
25
  require "mongoid/version"
@@ -103,3 +112,19 @@ namespace :release do
103
112
  end
104
113
  end
105
114
  end
115
+
116
+ desc 'Verifies that all built gems in pkg/ are valid'
117
+ task :verify do
118
+ gems = Dir['pkg/*.gem']
119
+ if gems.empty?
120
+ puts 'There are no gems in pkg/ to verify'
121
+ else
122
+ gems.each do |gem|
123
+ if signed_gem?(gem)
124
+ puts "#{gem} is signed"
125
+ else
126
+ abort "#{gem} is not signed"
127
+ end
128
+ end
129
+ end
130
+ end
@@ -311,6 +311,13 @@ module Mongoid
311
311
 
312
312
  private
313
313
 
314
+ # Clears all pending atomic updates.
315
+ def reset_atomic_updates!
316
+ Atomic::UPDATES.each do |update|
317
+ send(update).clear
318
+ end
319
+ end
320
+
314
321
  # Generates the atomic updates in the correct order.
315
322
  #
316
323
  # @example Generate the updates.
@@ -70,9 +70,7 @@ module Mongoid
70
70
  def move_changes
71
71
  @previous_changes = changes
72
72
  @previous_attributes = attributes.dup
73
- Atomic::UPDATES.each do |update|
74
- send(update).clear
75
- end
73
+ reset_atomic_updates!
76
74
  changed_attributes.clear
77
75
  end
78
76
 
@@ -16,16 +16,14 @@ module Mongoid
16
16
  #
17
17
  # @return [ Document ] The document, reloaded.
18
18
  def reload
19
- if @atomic_selector
20
- # Clear atomic_selector cache for sharded clusters. MONGOID-5076
21
- remove_instance_variable('@atomic_selector')
22
- end
23
-
24
19
  reloaded = _reload
25
20
  if Mongoid.raise_not_found_error && (reloaded.nil? || reloaded.empty?)
26
21
  shard_keys = atomic_selector.with_indifferent_access.slice(*shard_key_fields, :_id)
27
22
  raise Errors::DocumentNotFound.new(self.class, _id, shard_keys)
28
23
  end
24
+
25
+ reset_atomic_updates!
26
+
29
27
  @attributes = reloaded
30
28
  @attributes_before_type_cast = @attributes.dup
31
29
  @changed_attributes = {}
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mongoid
4
- VERSION = "8.0.4"
4
+ VERSION = "8.0.5"
5
5
  end
@@ -390,6 +390,30 @@ describe Mongoid::Reloadable do
390
390
  end
391
391
  end
392
392
 
393
+ context 'when embeds_many is modified' do
394
+ let(:contractor1) { Contractor.new(name: 'b') }
395
+ let(:contractor2) { Contractor.new(name: 'c') }
396
+
397
+ let(:building) do
398
+ Building.create!(contractors: [ contractor1 ])
399
+ end
400
+
401
+ let(:more_contractors) { building.contractors + [ contractor2 ] }
402
+
403
+ let(:modified_building) do
404
+ building.tap do
405
+ building.assign_attributes contractors: more_contractors
406
+ end
407
+ end
408
+
409
+ let(:reloaded_building) { modified_building.reload }
410
+
411
+ it 'resets delayed_atomic_sets' do
412
+ expect(modified_building.delayed_atomic_sets).not_to be_empty
413
+ expect(reloaded_building.delayed_atomic_sets).to be_empty
414
+ end
415
+ end
416
+
393
417
  context "when embedded document is nil" do
394
418
 
395
419
  let(:palette) do
data/spec/mongoid_spec.rb CHANGED
@@ -52,7 +52,7 @@ describe Mongoid do
52
52
 
53
53
  it "disconnects from all active clients" do
54
54
  clients.each do |client|
55
- expect(client.cluster).to receive(:disconnect!).and_call_original
55
+ expect(client).to receive(:close).and_call_original
56
56
  end
57
57
  Mongoid.disconnect_clients
58
58
  end
data.tar.gz.sig CHANGED
Binary file