mongoid 6.4.1 → 6.4.8
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 +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +1 -3
- data/Rakefile +26 -0
- data/lib/mongoid.rb +1 -1
- data/lib/mongoid/contextual/map_reduce.rb +1 -1
- data/lib/mongoid/criteria/modifiable.rb +12 -2
- data/lib/mongoid/criteria/queryable/selectable.rb +34 -7
- data/lib/mongoid/document.rb +4 -4
- data/lib/mongoid/extensions/big_decimal.rb +1 -1
- data/lib/mongoid/extensions/regexp.rb +1 -0
- data/lib/mongoid/extensions/string.rb +3 -1
- data/lib/mongoid/matchable.rb +3 -0
- data/lib/mongoid/matchable/nor.rb +37 -0
- data/lib/mongoid/persistable/settable.rb +5 -5
- data/lib/mongoid/persistence_context.rb +4 -0
- data/lib/mongoid/query_cache.rb +64 -19
- data/lib/mongoid/railtie.rb +17 -0
- data/lib/mongoid/railties/controller_runtime.rb +86 -0
- data/lib/mongoid/scopable.rb +3 -3
- data/lib/mongoid/threaded.rb +36 -0
- data/lib/mongoid/version.rb +1 -1
- data/spec/app/models/array_field.rb +7 -0
- data/spec/app/models/delegating_patient.rb +16 -0
- data/spec/integration/document_spec.rb +22 -0
- data/spec/mongoid/clients/factory_spec.rb +52 -28
- data/spec/mongoid/clients/options_spec.rb +30 -15
- data/spec/mongoid/clients/sessions_spec.rb +12 -3
- data/spec/mongoid/contextual/geo_near_spec.rb +1 -0
- data/spec/mongoid/contextual/mongo_spec.rb +2 -2
- data/spec/mongoid/criteria/modifiable_spec.rb +59 -10
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +3 -3
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +42 -3
- data/spec/mongoid/criteria/queryable/selector_spec.rb +2 -2
- data/spec/mongoid/criteria/scopable_spec.rb +81 -0
- data/spec/mongoid/criteria_spec.rb +4 -1
- data/spec/mongoid/document_spec.rb +54 -0
- data/spec/mongoid/extensions/big_decimal_spec.rb +9 -9
- data/spec/mongoid/extensions/regexp_spec.rb +23 -0
- data/spec/mongoid/extensions/string_spec.rb +35 -7
- data/spec/mongoid/fields_spec.rb +1 -1
- data/spec/mongoid/findable_spec.rb +1 -1
- data/spec/mongoid/matchable/nor_spec.rb +209 -0
- data/spec/mongoid/matchable_spec.rb +26 -1
- data/spec/mongoid/persistable/incrementable_spec.rb +6 -6
- data/spec/mongoid/persistable/settable_spec.rb +19 -0
- data/spec/mongoid/query_cache_spec.rb +87 -18
- data/spec/mongoid/scopable_spec.rb +13 -0
- data/spec/mongoid/threaded_spec.rb +68 -0
- data/spec/rails/controller_extension/controller_runtime_spec.rb +110 -0
- data/spec/spec_helper.rb +10 -0
- data/spec/support/cluster_config.rb +158 -0
- data/spec/support/constraints.rb +101 -0
- data/spec/support/macros.rb +20 -0
- data/spec/support/session_registry.rb +50 -0
- data/spec/support/spec_config.rb +42 -0
- metadata +43 -23
- metadata.gz.sig +0 -0
data/spec/spec_helper.rb
CHANGED
@@ -34,6 +34,11 @@ end
|
|
34
34
|
|
35
35
|
require 'support/authorization'
|
36
36
|
require 'support/expectations'
|
37
|
+
require 'support/macros'
|
38
|
+
require 'support/spec_config'
|
39
|
+
require 'support/cluster_config'
|
40
|
+
require 'support/constraints'
|
41
|
+
require 'support/session_registry'
|
37
42
|
|
38
43
|
# Give MongoDB time to start up on the travis ci environment.
|
39
44
|
if (ENV['CI'] == 'travis' || ENV['CI'] == 'evergreen')
|
@@ -127,8 +132,13 @@ end
|
|
127
132
|
I18n.config.enforce_available_locales = false
|
128
133
|
|
129
134
|
RSpec.configure do |config|
|
135
|
+
config.expect_with(:rspec) do |c|
|
136
|
+
c.syntax = [:should, :expect]
|
137
|
+
end
|
138
|
+
|
130
139
|
config.raise_errors_for_deprecations!
|
131
140
|
config.include(Mongoid::Expectations)
|
141
|
+
config.extend(Constraints)
|
132
142
|
|
133
143
|
config.before(:suite) do
|
134
144
|
client = Mongo::Client.new(["#{HOST}:#{PORT}"])
|
@@ -0,0 +1,158 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require 'singleton'
|
5
|
+
|
6
|
+
class ClusterConfig
|
7
|
+
include Singleton
|
8
|
+
|
9
|
+
def single_server?
|
10
|
+
determine_cluster_config
|
11
|
+
@single_server
|
12
|
+
end
|
13
|
+
|
14
|
+
def replica_set_name
|
15
|
+
determine_cluster_config
|
16
|
+
@replica_set_name
|
17
|
+
end
|
18
|
+
|
19
|
+
def server_version
|
20
|
+
determine_cluster_config
|
21
|
+
@server_version
|
22
|
+
end
|
23
|
+
|
24
|
+
def short_server_version
|
25
|
+
server_version.split('.')[0..1].join('.')
|
26
|
+
end
|
27
|
+
|
28
|
+
def fcv
|
29
|
+
determine_cluster_config
|
30
|
+
@fcv
|
31
|
+
end
|
32
|
+
|
33
|
+
# Per https://jira.mongodb.org/browse/SERVER-39052, working with FCV
|
34
|
+
# in sharded topologies is annoying. Also, FCV doesn't exist in servers
|
35
|
+
# less than 3.4. This method returns FCV on 3.4+ servers when in single
|
36
|
+
# or RS topologies, and otherwise returns the major.minor server version.
|
37
|
+
def fcv_ish
|
38
|
+
if server_version >= '3.4' && topology != :sharded
|
39
|
+
fcv
|
40
|
+
else
|
41
|
+
if short_server_version == '4.1'
|
42
|
+
'4.2'
|
43
|
+
else
|
44
|
+
short_server_version
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def primary_address
|
50
|
+
determine_cluster_config
|
51
|
+
@primary_address
|
52
|
+
end
|
53
|
+
|
54
|
+
def primary_address_str
|
55
|
+
determine_cluster_config
|
56
|
+
@primary_address.seed
|
57
|
+
end
|
58
|
+
|
59
|
+
def primary_address_host
|
60
|
+
both = primary_address_str
|
61
|
+
both.split(':').first
|
62
|
+
end
|
63
|
+
|
64
|
+
def primary_address_port
|
65
|
+
both = primary_address_str
|
66
|
+
both.split(':')[1] || 27017
|
67
|
+
end
|
68
|
+
|
69
|
+
def primary_description
|
70
|
+
determine_cluster_config
|
71
|
+
@primary_description
|
72
|
+
end
|
73
|
+
|
74
|
+
# Try running a command on the admin database to see if the mongod was
|
75
|
+
# started with auth.
|
76
|
+
def auth_enabled?
|
77
|
+
if @auth_enabled.nil?
|
78
|
+
@auth_enabled = begin
|
79
|
+
basic_client.use(:admin).command(getCmdLineOpts: 1).first["argv"].include?("--auth")
|
80
|
+
rescue => e
|
81
|
+
e.message =~ /(not authorized)|(unauthorized)|(no users authenticated)|(requires authentication)/
|
82
|
+
end
|
83
|
+
end
|
84
|
+
@auth_enabled
|
85
|
+
end
|
86
|
+
|
87
|
+
def topology
|
88
|
+
determine_cluster_config
|
89
|
+
@topology
|
90
|
+
end
|
91
|
+
|
92
|
+
def storage_engine
|
93
|
+
@storage_engine ||= begin
|
94
|
+
# 2.6 does not have wired tiger
|
95
|
+
if short_server_version == '2.6'
|
96
|
+
:mmapv1
|
97
|
+
else
|
98
|
+
client = ClientRegistry.instance.global_client('root_authorized')
|
99
|
+
if topology == :sharded
|
100
|
+
shards = client.use(:admin).command(listShards: 1).first
|
101
|
+
shard = shards['shards'].first
|
102
|
+
address_str = shard['host'].sub(/^.*\//, '').sub(/,.*/, '')
|
103
|
+
client = ClusterTools.instance.direct_client(address_str,
|
104
|
+
SpecConfig.instance.test_options.merge(SpecConfig.instance.auth_options).merge(connect: :direct))
|
105
|
+
end
|
106
|
+
rv = client.use(:admin).command(serverStatus: 1).first
|
107
|
+
rv = rv['storageEngine']['name']
|
108
|
+
rv_map = {
|
109
|
+
'wiredTiger' => :wired_tiger,
|
110
|
+
'mmapv1' => :mmapv1,
|
111
|
+
}
|
112
|
+
rv_map[rv] || rv
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
private
|
118
|
+
|
119
|
+
def determine_cluster_config
|
120
|
+
return if @primary_address
|
121
|
+
|
122
|
+
# Run all commands to figure out the cluster configuration from the same
|
123
|
+
# client. This is somewhat wasteful when running a single test, but reduces
|
124
|
+
# test runtime for the suite overall because all commands are sent on the
|
125
|
+
# same connection rather than each command connecting to the cluster by
|
126
|
+
# itself.
|
127
|
+
client = Mongoid::Clients.default
|
128
|
+
|
129
|
+
primary = client.cluster.next_primary
|
130
|
+
@primary_address = primary.address
|
131
|
+
@primary_description = primary.description
|
132
|
+
@replica_set_name = client.cluster.topology.replica_set_name
|
133
|
+
|
134
|
+
@topology ||= begin
|
135
|
+
topology = client.cluster.topology.class.name.sub(/.*::/, '')
|
136
|
+
topology = topology.gsub(/([A-Z])/) { |match| '_' + match.downcase }.sub(/^_/, '')
|
137
|
+
if topology =~ /^replica_set/
|
138
|
+
topology = 'replica_set'
|
139
|
+
end
|
140
|
+
topology.to_sym
|
141
|
+
end
|
142
|
+
|
143
|
+
@single_server = client.cluster.send(:servers_list).length == 1
|
144
|
+
|
145
|
+
@server_version = client.database.command(buildInfo: 1).first['version']
|
146
|
+
|
147
|
+
if @topology != :sharded && short_server_version >= '3.4'
|
148
|
+
rv = client.use(:admin).command(getParameter: 1, featureCompatibilityVersion: 1).first['featureCompatibilityVersion']
|
149
|
+
@fcv = rv['version'] || rv
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
def basic_client
|
154
|
+
# Do not cache the result here so that if the client gets closed,
|
155
|
+
# client registry reconnects it in subsequent tests
|
156
|
+
ClientRegistry.instance.global_client('basic')
|
157
|
+
end
|
158
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
module Constraints
|
2
|
+
RAILS_VERSION = ActiveSupport.version.to_s.split('.')[0..1].join('.').freeze
|
3
|
+
|
4
|
+
def min_rails_version(version)
|
5
|
+
unless version =~ /^\d+\.\d+$/
|
6
|
+
raise ArgumentError, "Version can only be major.minor: #{version}"
|
7
|
+
end
|
8
|
+
|
9
|
+
before do
|
10
|
+
if version > RAILS_VERSION
|
11
|
+
skip "Rails version #{version} or higher required, we have #{RAILS_VERSION}"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def max_rails_version(version)
|
17
|
+
unless version =~ /^\d+\.\d+$/
|
18
|
+
raise ArgumentError, "Version can only be major.minor: #{version}"
|
19
|
+
end
|
20
|
+
|
21
|
+
before do
|
22
|
+
if version < RAILS_VERSION
|
23
|
+
skip "Rails version #{version} or lower required, we have #{RAILS_VERSION}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def min_server_version(version)
|
29
|
+
unless version =~ /^\d+\.\d+$/
|
30
|
+
raise ArgumentError, "Version can only be major.minor: #{version}"
|
31
|
+
end
|
32
|
+
|
33
|
+
before do
|
34
|
+
if version > ClusterConfig.instance.server_version
|
35
|
+
skip "Server version #{version} or higher required, we have #{ClusterConfig.instance.server_version}"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def max_server_version(version)
|
41
|
+
unless version =~ /^\d+\.\d+$/
|
42
|
+
raise ArgumentError, "Version can only be major.minor: #{version}"
|
43
|
+
end
|
44
|
+
|
45
|
+
before do
|
46
|
+
if version < ClusterConfig.instance.short_server_version
|
47
|
+
skip "Server version #{version} or lower required, we have #{ClusterConfig.instance.server_version}"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def require_topology(*topologies)
|
53
|
+
topologies = topologies.map { |t| t.to_s }
|
54
|
+
invalid_topologies = topologies - %w(single replica_set sharded)
|
55
|
+
unless invalid_topologies.empty?
|
56
|
+
raise ArgumentError, "Invalid topologies requested: #{invalid_topologies.join(', ')}"
|
57
|
+
end
|
58
|
+
before do
|
59
|
+
topology = Mongoid.default_client.cluster.topology.class.name.sub(/.*::/, '')
|
60
|
+
topology = topology.gsub(/([A-Z])/) { |match| '_' + match.downcase }.sub(/^_/, '')
|
61
|
+
if topology =~ /^replica_set/
|
62
|
+
topology = 'replica_set'
|
63
|
+
end
|
64
|
+
unless topologies.include?(topology)
|
65
|
+
skip "Topology #{topologies.join(' or ')} required, we have #{topology}"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def max_example_run_time(timeout)
|
71
|
+
around do |example|
|
72
|
+
TimeoutInterrupt.timeout(timeout) do
|
73
|
+
example.run
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def require_transaction_support
|
79
|
+
min_server_version '4.0'
|
80
|
+
require_topology :replica_set
|
81
|
+
end
|
82
|
+
|
83
|
+
def require_scram_sha_256_support
|
84
|
+
before do
|
85
|
+
$mongo_server_features ||= begin
|
86
|
+
scanned_client_server!.features
|
87
|
+
end
|
88
|
+
unless $mongo_server_features.scram_sha_256_enabled?
|
89
|
+
skip "SCRAM SHA 256 is not enabled on the server"
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
def require_ssl
|
95
|
+
before do
|
96
|
+
unless SpecConfig.instance.ssl?
|
97
|
+
skip "SSL not enabled"
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Mongoid
|
4
|
+
module Macros
|
5
|
+
def use_spec_mongoid_config
|
6
|
+
around do |example|
|
7
|
+
config_path = File.join(File.dirname(__FILE__), "..", "config", "mongoid.yml")
|
8
|
+
|
9
|
+
Mongoid::Clients.clear
|
10
|
+
Mongoid.load!(config_path, :test)
|
11
|
+
|
12
|
+
begin
|
13
|
+
example.run
|
14
|
+
ensure
|
15
|
+
Mongoid::Config.reset
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'singleton'
|
2
|
+
|
3
|
+
module Mongo
|
4
|
+
class Client
|
5
|
+
alias :get_session_without_tracking :get_session
|
6
|
+
|
7
|
+
def get_session(options = {})
|
8
|
+
get_session_without_tracking(options).tap do |session|
|
9
|
+
SessionRegistry.instance.register(session)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class Session
|
15
|
+
alias :end_session_without_tracking :end_session
|
16
|
+
|
17
|
+
def end_session
|
18
|
+
SessionRegistry.instance.unregister(self)
|
19
|
+
end_session_without_tracking
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
class SessionRegistry
|
26
|
+
include Singleton
|
27
|
+
|
28
|
+
def initialize
|
29
|
+
@registry = {}
|
30
|
+
end
|
31
|
+
|
32
|
+
def register(session)
|
33
|
+
@registry[session.session_id] = session if session
|
34
|
+
end
|
35
|
+
|
36
|
+
def unregister(session)
|
37
|
+
@registry.delete(session.session_id)
|
38
|
+
end
|
39
|
+
|
40
|
+
def verify_sessions_ended!
|
41
|
+
unless @registry.empty?
|
42
|
+
sessions = @registry.map { |_, session| session }
|
43
|
+
raise "Session registry contains live sessions: #{sessions.join(', ')}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def clear_registry
|
48
|
+
@registry = {}
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require 'singleton'
|
5
|
+
|
6
|
+
class SpecConfig
|
7
|
+
include Singleton
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
if ENV['MONGODB_URI']
|
11
|
+
@mongodb_uri = Mongo::URI.new(ENV['MONGODB_URI'])
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def addresses
|
16
|
+
if @mongodb_uri
|
17
|
+
@mongodb_uri.servers
|
18
|
+
else
|
19
|
+
['127.0.0.1']
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def mri?
|
24
|
+
!jruby?
|
25
|
+
end
|
26
|
+
|
27
|
+
def jruby?
|
28
|
+
RUBY_PLATFORM =~ /\bjava\b/
|
29
|
+
end
|
30
|
+
|
31
|
+
def platform
|
32
|
+
RUBY_PLATFORM
|
33
|
+
end
|
34
|
+
|
35
|
+
def client_debug?
|
36
|
+
%w(1 true yes).include?((ENV['CLIENT_DEBUG'] || '').downcase)
|
37
|
+
end
|
38
|
+
|
39
|
+
def ci?
|
40
|
+
!!ENV['CI']
|
41
|
+
end
|
42
|
+
end
|
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: 6.4.
|
4
|
+
version: 6.4.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Durran Jordan
|
@@ -10,27 +10,26 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
fqd6ctFDOqcJmOYdlSRgb9g8zm4BiNgFWPBSk8NsP7c=
|
13
|
+
MIIDRDCCAiygAwIBAgIBATANBgkqhkiG9w0BAQsFADAmMSQwIgYDVQQDDBtkcml2
|
14
|
+
ZXItcnVieS9EQz0xMGdlbi9EQz1jb20wHhcNMjAwMTIzMTkzNjAxWhcNMjEwMTIy
|
15
|
+
MTkzNjAxWjAmMSQwIgYDVQQDDBtkcml2ZXItcnVieS9EQz0xMGdlbi9EQz1jb20w
|
16
|
+
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRXUgGvH0ZtWwDPc2umdHw
|
17
|
+
B+INNm6jNTRp8PMyUKxPzxaxX2OiBQk9gLC3zsK9ZmlZu4lNfpHVSCEPoiP/fhPg
|
18
|
+
Kyfq2xld3Qz0Pki5d5i0/r14343MTKiNiFulLlbbdlN0cXeEFNJHUycZnD2LOXwz
|
19
|
+
egYGHOl14FI8t5visIWtqRnLXXIlDsBHzmeEZjUZRGSgjC0R3RT/I+Fk5yUhn1w4
|
20
|
+
rqFyAiW+cjjzmT7mmqT0jV6fd0JFHbKnSgt9iPijKSimBgUOsorHwOTMlTzwsy0d
|
21
|
+
ZT+al1RiT5zqlAJLxFHwmoYOxD/bSNtKsYl60ek0hK2mISBVy9BBmLvCgHDx5uSp
|
22
|
+
AgMBAAGjfTB7MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRbd1mx
|
23
|
+
fvSaVIwKI+tnEAYDW/B81zAgBgNVHREEGTAXgRVkcml2ZXItcnVieUAxMGdlbi5j
|
24
|
+
b20wIAYDVR0SBBkwF4EVZHJpdmVyLXJ1YnlAMTBnZW4uY29tMA0GCSqGSIb3DQEB
|
25
|
+
CwUAA4IBAQBfX4dwxG5PhtxES/LDEOaZIZXyaX6CKe367zhW+HxWbSOXMQJFkIQj
|
26
|
+
m7tzT+sDFJXyiOv5cPtfpUam5pTiryzRw5HD6oxlPIt5vO15EJ69v++3m7shMLbw
|
27
|
+
amZOajKXmu2ZGZfhOtj7bOTwmOj1AnWLKeOQIR3STvvfZCD+6dt1XenW7CdjCsxE
|
28
|
+
ifervPjLFqFPsMOgaxikhgPK6bRtszrQhJSYlifKKzxbX1hYAsmGL7IxjubFSV5r
|
29
|
+
gpvfPNWMwyBDlHaNS3GfO6cRRxBOvEG05GUCsvtTY4Bpe8yjE64wg1ymb47LMOnv
|
30
|
+
Qb1lGORmf/opg45mluKUYl7pQNZHD0d3
|
32
31
|
-----END CERTIFICATE-----
|
33
|
-
date:
|
32
|
+
date: 2020-11-06 00:00:00.000000000 Z
|
34
33
|
dependencies:
|
35
34
|
- !ruby/object:Gem::Dependency
|
36
35
|
name: activemodel
|
@@ -265,6 +264,7 @@ files:
|
|
265
264
|
- lib/mongoid/matchable/lte.rb
|
266
265
|
- lib/mongoid/matchable/ne.rb
|
267
266
|
- lib/mongoid/matchable/nin.rb
|
267
|
+
- lib/mongoid/matchable/nor.rb
|
268
268
|
- lib/mongoid/matchable/or.rb
|
269
269
|
- lib/mongoid/matchable/regexp.rb
|
270
270
|
- lib/mongoid/matchable/size.rb
|
@@ -287,6 +287,7 @@ files:
|
|
287
287
|
- lib/mongoid/positional.rb
|
288
288
|
- lib/mongoid/query_cache.rb
|
289
289
|
- lib/mongoid/railtie.rb
|
290
|
+
- lib/mongoid/railties/controller_runtime.rb
|
290
291
|
- lib/mongoid/railties/database.rake
|
291
292
|
- lib/mongoid/relations.rb
|
292
293
|
- lib/mongoid/relations/accessors.rb
|
@@ -397,6 +398,7 @@ files:
|
|
397
398
|
- spec/app/models/animal.rb
|
398
399
|
- spec/app/models/answer.rb
|
399
400
|
- spec/app/models/appointment.rb
|
401
|
+
- spec/app/models/array_field.rb
|
400
402
|
- spec/app/models/article.rb
|
401
403
|
- spec/app/models/artist.rb
|
402
404
|
- spec/app/models/artwork.rb
|
@@ -439,6 +441,7 @@ files:
|
|
439
441
|
- spec/app/models/country_code.rb
|
440
442
|
- spec/app/models/courier_job.rb
|
441
443
|
- spec/app/models/definition.rb
|
444
|
+
- spec/app/models/delegating_patient.rb
|
442
445
|
- spec/app/models/description.rb
|
443
446
|
- spec/app/models/dictionary.rb
|
444
447
|
- spec/app/models/division.rb
|
@@ -593,6 +596,7 @@ files:
|
|
593
596
|
- spec/app/models/word_origin.rb
|
594
597
|
- spec/app/models/writer.rb
|
595
598
|
- spec/config/mongoid.yml
|
599
|
+
- spec/integration/document_spec.rb
|
596
600
|
- spec/mongoid/atomic/modifiers_spec.rb
|
597
601
|
- spec/mongoid/atomic/paths/embedded/many_spec.rb
|
598
602
|
- spec/mongoid/atomic/paths/embedded/one_spec.rb
|
@@ -751,6 +755,7 @@ files:
|
|
751
755
|
- spec/mongoid/matchable/lte_spec.rb
|
752
756
|
- spec/mongoid/matchable/ne_spec.rb
|
753
757
|
- spec/mongoid/matchable/nin_spec.rb
|
758
|
+
- spec/mongoid/matchable/nor_spec.rb
|
754
759
|
- spec/mongoid/matchable/or_spec.rb
|
755
760
|
- spec/mongoid/matchable/regexp_spec.rb
|
756
761
|
- spec/mongoid/matchable/size_spec.rb
|
@@ -848,10 +853,16 @@ files:
|
|
848
853
|
- spec/mongoid/validatable/uniqueness_spec.rb
|
849
854
|
- spec/mongoid/validatable_spec.rb
|
850
855
|
- spec/mongoid_spec.rb
|
856
|
+
- spec/rails/controller_extension/controller_runtime_spec.rb
|
851
857
|
- spec/rails/mongoid_spec.rb
|
852
858
|
- spec/spec_helper.rb
|
853
859
|
- spec/support/authorization.rb
|
860
|
+
- spec/support/cluster_config.rb
|
861
|
+
- spec/support/constraints.rb
|
854
862
|
- spec/support/expectations.rb
|
863
|
+
- spec/support/macros.rb
|
864
|
+
- spec/support/session_registry.rb
|
865
|
+
- spec/support/spec_config.rb
|
855
866
|
homepage: http://mongoid.org
|
856
867
|
licenses:
|
857
868
|
- MIT
|
@@ -871,8 +882,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
871
882
|
- !ruby/object:Gem::Version
|
872
883
|
version: 1.3.6
|
873
884
|
requirements: []
|
874
|
-
|
875
|
-
rubygems_version: 2.6.14
|
885
|
+
rubygems_version: 3.0.3
|
876
886
|
signing_key:
|
877
887
|
specification_version: 4
|
878
888
|
summary: Elegant Persistence in Ruby for MongoDB.
|
@@ -1116,6 +1126,7 @@ test_files:
|
|
1116
1126
|
- spec/mongoid/validatable/length_spec.rb
|
1117
1127
|
- spec/mongoid/document_spec.rb
|
1118
1128
|
- spec/mongoid/matchable/regexp_spec.rb
|
1129
|
+
- spec/mongoid/matchable/nor_spec.rb
|
1119
1130
|
- spec/mongoid/matchable/lte_spec.rb
|
1120
1131
|
- spec/mongoid/matchable/ne_spec.rb
|
1121
1132
|
- spec/mongoid/matchable/in_spec.rb
|
@@ -1193,6 +1204,7 @@ test_files:
|
|
1193
1204
|
- spec/app/models/store_as_dup_test2.rb
|
1194
1205
|
- spec/app/models/agent.rb
|
1195
1206
|
- spec/app/models/shipment_address.rb
|
1207
|
+
- spec/app/models/array_field.rb
|
1196
1208
|
- spec/app/models/kangaroo.rb
|
1197
1209
|
- spec/app/models/my_hash.rb
|
1198
1210
|
- spec/app/models/favorite.rb
|
@@ -1253,6 +1265,7 @@ test_files:
|
|
1253
1265
|
- spec/app/models/question.rb
|
1254
1266
|
- spec/app/models/implant.rb
|
1255
1267
|
- spec/app/models/id_key.rb
|
1268
|
+
- spec/app/models/delegating_patient.rb
|
1256
1269
|
- spec/app/models/palette.rb
|
1257
1270
|
- spec/app/models/owner.rb
|
1258
1271
|
- spec/app/models/address_component.rb
|
@@ -1342,7 +1355,14 @@ test_files:
|
|
1342
1355
|
- spec/app/models/kaleidoscope.rb
|
1343
1356
|
- spec/app/models/artwork.rb
|
1344
1357
|
- spec/config/mongoid.yml
|
1358
|
+
- spec/integration/document_spec.rb
|
1345
1359
|
- spec/mongoid_spec.rb
|
1360
|
+
- spec/support/session_registry.rb
|
1361
|
+
- spec/support/constraints.rb
|
1362
|
+
- spec/support/macros.rb
|
1346
1363
|
- spec/support/expectations.rb
|
1347
1364
|
- spec/support/authorization.rb
|
1365
|
+
- spec/support/spec_config.rb
|
1366
|
+
- spec/support/cluster_config.rb
|
1367
|
+
- spec/rails/controller_extension/controller_runtime_spec.rb
|
1348
1368
|
- spec/rails/mongoid_spec.rb
|