mongoid_orderable 5.0.0 → 6.0.2
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
- data/CHANGELOG.md +83 -22
- data/LICENSE.txt +20 -0
- data/README.md +256 -149
- data/Rakefile +24 -6
- data/lib/config/locales/en.yml +12 -9
- data/lib/mongoid/orderable.rb +29 -22
- data/lib/mongoid/orderable/configs/field_config.rb +79 -0
- data/lib/mongoid/orderable/configs/global_config.rb +26 -0
- data/lib/mongoid/orderable/errors/invalid_target_position.rb +19 -18
- data/lib/mongoid/orderable/errors/transaction_failed.rb +20 -0
- data/lib/mongoid/orderable/generators/base.rb +21 -0
- data/lib/mongoid/orderable/generators/helpers.rb +29 -0
- data/lib/mongoid/orderable/generators/listable.rb +41 -0
- data/lib/mongoid/orderable/generators/lock_collection.rb +37 -0
- data/lib/mongoid/orderable/generators/movable.rb +62 -0
- data/lib/mongoid/orderable/generators/position.rb +26 -0
- data/lib/mongoid/orderable/generators/scope.rb +26 -0
- data/lib/mongoid/orderable/handlers/base.rb +167 -0
- data/lib/mongoid/orderable/handlers/document.rb +24 -0
- data/lib/mongoid/orderable/handlers/document_embedded.rb +14 -0
- data/lib/mongoid/orderable/handlers/document_transactional.rb +35 -0
- data/lib/mongoid/orderable/handlers/transaction.rb +71 -0
- data/lib/mongoid/orderable/installer.rb +63 -0
- data/lib/mongoid/orderable/mixins/callbacks.rb +43 -0
- data/lib/mongoid/orderable/mixins/helpers.rb +39 -0
- data/lib/mongoid/orderable/mixins/listable.rb +49 -0
- data/lib/mongoid/orderable/mixins/movable.rb +60 -0
- data/lib/mongoid/orderable/version.rb +7 -0
- data/lib/mongoid_orderable.rb +33 -54
- data/spec/integration/concurrency_spec.rb +232 -0
- data/spec/integration/customized_spec.rb +31 -0
- data/spec/integration/embedded_spec.rb +41 -0
- data/spec/integration/foreign_key_spec.rb +33 -0
- data/spec/integration/inherited_spec.rb +54 -0
- data/spec/integration/multiple_fields_spec.rb +554 -0
- data/spec/integration/multiple_scoped_spec.rb +63 -0
- data/spec/integration/no_indexed_spec.rb +23 -0
- data/spec/integration/scoped_spec.rb +151 -0
- data/spec/integration/simple_spec.rb +184 -0
- data/spec/integration/string_scoped_spec.rb +28 -0
- data/spec/integration/zero_based_spec.rb +161 -0
- data/spec/spec_helper.rb +42 -30
- data/spec/support/models.rb +122 -0
- metadata +75 -41
- data/.gitignore +0 -4
- data/.rspec +0 -2
- data/.rvmrc +0 -1
- data/.travis.yml +0 -14
- data/Gemfile +0 -18
- data/lib/mongoid/orderable/callbacks.rb +0 -75
- data/lib/mongoid/orderable/configuration.rb +0 -60
- data/lib/mongoid/orderable/errors.rb +0 -2
- data/lib/mongoid/orderable/errors/mongoid_orderable_error.rb +0 -14
- data/lib/mongoid/orderable/generator.rb +0 -34
- data/lib/mongoid/orderable/generator/helpers.rb +0 -29
- data/lib/mongoid/orderable/generator/listable.rb +0 -41
- data/lib/mongoid/orderable/generator/movable.rb +0 -62
- data/lib/mongoid/orderable/generator/position.rb +0 -26
- data/lib/mongoid/orderable/generator/scope.rb +0 -17
- data/lib/mongoid/orderable/helpers.rb +0 -50
- data/lib/mongoid/orderable/listable.rb +0 -49
- data/lib/mongoid/orderable/movable.rb +0 -58
- data/lib/mongoid/orderable/orderable_class.rb +0 -51
- data/lib/mongoid_orderable/mongoid/contexts/enumerable.rb +0 -15
- data/lib/mongoid_orderable/mongoid/contexts/mongo.rb +0 -18
- data/lib/mongoid_orderable/mongoid/contextual/memory.rb +0 -15
- data/lib/mongoid_orderable/mongoid/criteria.rb +0 -4
- data/lib/mongoid_orderable/version.rb +0 -3
- data/mongoid_orderable.gemspec +0 -26
- data/spec/mongoid/orderable_spec.rb +0 -1413
@@ -0,0 +1,161 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ZeroBasedOrderable do
|
4
|
+
|
5
|
+
shared_examples_for 'zero_based_orderable' do
|
6
|
+
|
7
|
+
before :each do
|
8
|
+
5.times { ZeroBasedOrderable.create! }
|
9
|
+
end
|
10
|
+
|
11
|
+
def positions
|
12
|
+
ZeroBasedOrderable.pluck(:position).sort
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should have a orderable base of 0' do
|
16
|
+
expect(ZeroBasedOrderable.create!.orderable_top).to eq(0)
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should set proper position while creation' do
|
20
|
+
expect(positions).to eq([0, 1, 2, 3, 4])
|
21
|
+
end
|
22
|
+
|
23
|
+
describe 'reset position' do
|
24
|
+
before { ZeroBasedOrderable.update_all(position: nil) }
|
25
|
+
it 'should properly reset position' do
|
26
|
+
ZeroBasedOrderable.all.map(&:save)
|
27
|
+
expect(positions).to eq([0, 1, 2, 3, 4])
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe 'removement' do
|
32
|
+
it 'top' do
|
33
|
+
ZeroBasedOrderable.where(position: 0).destroy
|
34
|
+
expect(positions).to eq([0, 1, 2, 3])
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'bottom' do
|
38
|
+
ZeroBasedOrderable.where(position: 4).destroy
|
39
|
+
expect(positions).to eq([0, 1, 2, 3])
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'middle' do
|
43
|
+
ZeroBasedOrderable.where(position: 2).destroy
|
44
|
+
expect(positions).to eq([0, 1, 2, 3])
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe 'inserting' do
|
49
|
+
it 'top' do
|
50
|
+
newbie = ZeroBasedOrderable.create! move_to: :top
|
51
|
+
expect(positions).to eq([0, 1, 2, 3, 4, 5])
|
52
|
+
expect(newbie.position).to eq(0)
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'bottom' do
|
56
|
+
newbie = ZeroBasedOrderable.create! move_to: :bottom
|
57
|
+
expect(positions).to eq([0, 1, 2, 3, 4, 5])
|
58
|
+
expect(newbie.position).to eq(5)
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'middle' do
|
62
|
+
newbie = ZeroBasedOrderable.create! move_to: 3
|
63
|
+
expect(positions).to eq([0, 1, 2, 3, 4, 5])
|
64
|
+
expect(newbie.position).to eq(3)
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'middle (with a numeric string)' do
|
68
|
+
newbie = ZeroBasedOrderable.create! move_to: '3'
|
69
|
+
expect(positions).to eq([0, 1, 2, 3, 4, 5])
|
70
|
+
expect(newbie.position).to eq(3)
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'middle (with a non-numeric string)' do
|
74
|
+
expect do
|
75
|
+
ZeroBasedOrderable.create! move_to: 'three'
|
76
|
+
end.to raise_error Mongoid::Orderable::Errors::InvalidTargetPosition
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
describe 'movement' do
|
81
|
+
it 'higher from top' do
|
82
|
+
record = ZeroBasedOrderable.where(position: 0).first
|
83
|
+
record.update_attributes move_to: :higher
|
84
|
+
expect(positions).to eq([0, 1, 2, 3, 4])
|
85
|
+
expect(record.reload.position).to eq(0)
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'higher from bottom' do
|
89
|
+
record = ZeroBasedOrderable.where(position: 4).first
|
90
|
+
record.update_attributes move_to: :higher
|
91
|
+
expect(positions).to eq([0, 1, 2, 3, 4])
|
92
|
+
expect(record.reload.position).to eq(3)
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'higher from middle' do
|
96
|
+
record = ZeroBasedOrderable.where(position: 3).first
|
97
|
+
record.update_attributes move_to: :higher
|
98
|
+
expect(positions).to eq([0, 1, 2, 3, 4])
|
99
|
+
expect(record.reload.position).to eq(2)
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'lower from top' do
|
103
|
+
record = ZeroBasedOrderable.where(position: 0).first
|
104
|
+
record.update_attributes move_to: :lower
|
105
|
+
expect(positions).to eq([0, 1, 2, 3, 4])
|
106
|
+
expect(record.reload.position).to eq(1)
|
107
|
+
end
|
108
|
+
|
109
|
+
it 'lower from bottom' do
|
110
|
+
record = ZeroBasedOrderable.where(position: 4).first
|
111
|
+
record.update_attributes move_to: :lower
|
112
|
+
expect(positions).to eq([0, 1, 2, 3, 4])
|
113
|
+
expect(record.reload.position).to eq(4)
|
114
|
+
end
|
115
|
+
|
116
|
+
it 'lower from middle' do
|
117
|
+
record = ZeroBasedOrderable.where(position: 2).first
|
118
|
+
record.update_attributes move_to: :lower
|
119
|
+
expect(positions).to eq([0, 1, 2, 3, 4])
|
120
|
+
expect(record.reload.position).to eq(3)
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'does nothing if position not change' do
|
124
|
+
record = ZeroBasedOrderable.where(position: 3).first
|
125
|
+
record.save
|
126
|
+
expect(positions).to eq([0, 1, 2, 3, 4])
|
127
|
+
expect(record.reload.position).to eq(3)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
describe 'utility methods' do
|
132
|
+
it 'should return a collection of items lower/higher on the list for next_items/previous_items' do
|
133
|
+
record1 = ZeroBasedOrderable.where(position: 0).first
|
134
|
+
record2 = ZeroBasedOrderable.where(position: 1).first
|
135
|
+
record3 = ZeroBasedOrderable.where(position: 2).first
|
136
|
+
record4 = ZeroBasedOrderable.where(position: 3).first
|
137
|
+
record5 = ZeroBasedOrderable.where(position: 4).first
|
138
|
+
expect(record1.next_items.to_a).to eq([record2, record3, record4, record5])
|
139
|
+
expect(record5.previous_items.to_a).to eq([record1, record2, record3, record4])
|
140
|
+
expect(record3.previous_items.to_a).to eq([record1, record2])
|
141
|
+
expect(record3.next_items.to_a).to eq([record4, record5])
|
142
|
+
expect(record1.next_item).to eq(record2)
|
143
|
+
expect(record2.previous_item).to eq(record1)
|
144
|
+
expect(record1.previous_item).to eq(nil)
|
145
|
+
expect(record5.next_item).to eq(nil)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
context 'with transactions' do
|
151
|
+
enable_transactions!
|
152
|
+
|
153
|
+
it_behaves_like 'zero_based_orderable'
|
154
|
+
end
|
155
|
+
|
156
|
+
context 'without transactions' do
|
157
|
+
disable_transactions!
|
158
|
+
|
159
|
+
it_behaves_like 'zero_based_orderable'
|
160
|
+
end
|
161
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,30 +1,42 @@
|
|
1
|
-
require 'bundler'
|
2
|
-
Bundler.require
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
1
|
+
require 'bundler'
|
2
|
+
Bundler.require
|
3
|
+
require 'rspec'
|
4
|
+
require 'rspec/retry'
|
5
|
+
|
6
|
+
Mongoid.configure do |config|
|
7
|
+
config.connect_to 'mongoid_orderable_test'
|
8
|
+
end
|
9
|
+
|
10
|
+
Mongoid.logger.level = Logger::INFO
|
11
|
+
Mongo::Logger.logger.level = Logger::INFO
|
12
|
+
Mongoid::Config.belongs_to_required_by_default = false
|
13
|
+
|
14
|
+
RSpec.configure do |config|
|
15
|
+
config.order = 'random'
|
16
|
+
|
17
|
+
config.before(:each) do
|
18
|
+
Mongoid.purge!
|
19
|
+
Mongoid.models.each do |model|
|
20
|
+
model.create_indexes if model.name =~ /Mongoid::Orderable::Models/
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
require_relative 'support/models'
|
26
|
+
|
27
|
+
def set_transactions(enabled)
|
28
|
+
Mongoid.models.each do |model|
|
29
|
+
next unless model.respond_to?(:orderable_configs)
|
30
|
+
model.orderable_configs.values.each do |config|
|
31
|
+
config[:use_transactions] = enabled
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def enable_transactions!
|
37
|
+
before { set_transactions(true) }
|
38
|
+
end
|
39
|
+
|
40
|
+
def disable_transactions!
|
41
|
+
before { set_transactions(false) }
|
42
|
+
end
|
@@ -0,0 +1,122 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
Mongoid::Orderable.configure do |c|
|
4
|
+
c.use_transactions = true
|
5
|
+
c.transaction_max_retries = 100
|
6
|
+
c.lock_collection = :foo_bar_locks
|
7
|
+
end
|
8
|
+
|
9
|
+
class SimpleOrderable
|
10
|
+
include Mongoid::Document
|
11
|
+
include Mongoid::Orderable
|
12
|
+
|
13
|
+
orderable
|
14
|
+
end
|
15
|
+
|
16
|
+
class ScopedGroup
|
17
|
+
include Mongoid::Document
|
18
|
+
|
19
|
+
has_many :scoped_orderables
|
20
|
+
has_many :multiple_fields_orderables
|
21
|
+
end
|
22
|
+
|
23
|
+
class ScopedOrderable
|
24
|
+
include Mongoid::Document
|
25
|
+
include Mongoid::Orderable
|
26
|
+
|
27
|
+
belongs_to :group, class_name: 'ScopedGroup', optional: true
|
28
|
+
|
29
|
+
orderable scope: :group
|
30
|
+
end
|
31
|
+
|
32
|
+
class StringScopedOrderable
|
33
|
+
include Mongoid::Document
|
34
|
+
include Mongoid::Orderable
|
35
|
+
|
36
|
+
field :some_scope, type: Integer
|
37
|
+
|
38
|
+
orderable scope: 'some_scope'
|
39
|
+
end
|
40
|
+
|
41
|
+
class EmbedsOrderable
|
42
|
+
include Mongoid::Document
|
43
|
+
|
44
|
+
embeds_many :embedded_orderables
|
45
|
+
end
|
46
|
+
|
47
|
+
class EmbeddedOrderable
|
48
|
+
include Mongoid::Document
|
49
|
+
include Mongoid::Orderable
|
50
|
+
|
51
|
+
embedded_in :embeds_orderable
|
52
|
+
|
53
|
+
orderable
|
54
|
+
end
|
55
|
+
|
56
|
+
class CustomizedOrderable
|
57
|
+
include Mongoid::Document
|
58
|
+
include Mongoid::Orderable
|
59
|
+
|
60
|
+
orderable field: :pos, as: :my_position
|
61
|
+
end
|
62
|
+
|
63
|
+
class NoIndexOrderable
|
64
|
+
include Mongoid::Document
|
65
|
+
include Mongoid::Orderable
|
66
|
+
|
67
|
+
orderable index: false
|
68
|
+
end
|
69
|
+
|
70
|
+
class ZeroBasedOrderable
|
71
|
+
include Mongoid::Document
|
72
|
+
include Mongoid::Orderable
|
73
|
+
|
74
|
+
orderable base: 0
|
75
|
+
end
|
76
|
+
|
77
|
+
class InheritedOrderable
|
78
|
+
include Mongoid::Document
|
79
|
+
include Mongoid::Orderable
|
80
|
+
|
81
|
+
orderable inherited: true
|
82
|
+
end
|
83
|
+
|
84
|
+
class Apple < InheritedOrderable
|
85
|
+
orderable field: :serial
|
86
|
+
end
|
87
|
+
|
88
|
+
class Orange < InheritedOrderable
|
89
|
+
end
|
90
|
+
|
91
|
+
class ForeignKeyDiffersOrderable
|
92
|
+
include Mongoid::Document
|
93
|
+
include Mongoid::Orderable
|
94
|
+
|
95
|
+
belongs_to :different_scope, class_name: 'ForeignKeyDiffersOrderable',
|
96
|
+
foreign_key: 'different_orderable_id',
|
97
|
+
optional: true
|
98
|
+
|
99
|
+
orderable scope: :different_scope
|
100
|
+
end
|
101
|
+
|
102
|
+
class MultipleFieldsOrderable
|
103
|
+
include Mongoid::Document
|
104
|
+
include Mongoid::Orderable
|
105
|
+
|
106
|
+
belongs_to :group, class_name: 'ScopedGroup', optional: true
|
107
|
+
|
108
|
+
orderable field: :pos, base: 0, index: false, as: :position
|
109
|
+
orderable field: :serial_no, default: true
|
110
|
+
orderable field: :groups, scope: :group
|
111
|
+
end
|
112
|
+
|
113
|
+
class MultipleScopedOrderable
|
114
|
+
include Mongoid::Document
|
115
|
+
include Mongoid::Orderable
|
116
|
+
|
117
|
+
belongs_to :apple, optional: true
|
118
|
+
belongs_to :orange, optional: true
|
119
|
+
|
120
|
+
orderable field: :posa, scope: :apple_id
|
121
|
+
orderable field: :poso, scope: :orange_id
|
122
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid_orderable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 6.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- pyromaniac
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -30,22 +30,22 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 3.0.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 3.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rspec-retry
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
|
-
type: :
|
48
|
+
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
@@ -53,61 +53,84 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rubocop
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 1.8.1
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.8.1
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: mongoid
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 7.0.0
|
62
76
|
type: :runtime
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
69
|
-
description:
|
82
|
+
version: 7.0.0
|
83
|
+
description: Enables Mongoid models to track their position in list
|
70
84
|
email:
|
71
85
|
- kinwizard@gmail.com
|
72
86
|
executables: []
|
73
87
|
extensions: []
|
74
88
|
extra_rdoc_files: []
|
75
89
|
files:
|
76
|
-
- ".gitignore"
|
77
|
-
- ".rspec"
|
78
|
-
- ".rvmrc"
|
79
|
-
- ".travis.yml"
|
80
90
|
- CHANGELOG.md
|
81
|
-
-
|
91
|
+
- LICENSE.txt
|
82
92
|
- README.md
|
83
93
|
- Rakefile
|
84
94
|
- lib/config/locales/en.yml
|
85
95
|
- lib/mongoid/orderable.rb
|
86
|
-
- lib/mongoid/orderable/
|
87
|
-
- lib/mongoid/orderable/
|
88
|
-
- lib/mongoid/orderable/errors.rb
|
96
|
+
- lib/mongoid/orderable/configs/field_config.rb
|
97
|
+
- lib/mongoid/orderable/configs/global_config.rb
|
89
98
|
- lib/mongoid/orderable/errors/invalid_target_position.rb
|
90
|
-
- lib/mongoid/orderable/errors/
|
91
|
-
- lib/mongoid/orderable/
|
92
|
-
- lib/mongoid/orderable/
|
93
|
-
- lib/mongoid/orderable/
|
94
|
-
- lib/mongoid/orderable/
|
95
|
-
- lib/mongoid/orderable/
|
96
|
-
- lib/mongoid/orderable/
|
97
|
-
- lib/mongoid/orderable/
|
98
|
-
- lib/mongoid/orderable/
|
99
|
-
- lib/mongoid/orderable/
|
100
|
-
- lib/mongoid/orderable/
|
99
|
+
- lib/mongoid/orderable/errors/transaction_failed.rb
|
100
|
+
- lib/mongoid/orderable/generators/base.rb
|
101
|
+
- lib/mongoid/orderable/generators/helpers.rb
|
102
|
+
- lib/mongoid/orderable/generators/listable.rb
|
103
|
+
- lib/mongoid/orderable/generators/lock_collection.rb
|
104
|
+
- lib/mongoid/orderable/generators/movable.rb
|
105
|
+
- lib/mongoid/orderable/generators/position.rb
|
106
|
+
- lib/mongoid/orderable/generators/scope.rb
|
107
|
+
- lib/mongoid/orderable/handlers/base.rb
|
108
|
+
- lib/mongoid/orderable/handlers/document.rb
|
109
|
+
- lib/mongoid/orderable/handlers/document_embedded.rb
|
110
|
+
- lib/mongoid/orderable/handlers/document_transactional.rb
|
111
|
+
- lib/mongoid/orderable/handlers/transaction.rb
|
112
|
+
- lib/mongoid/orderable/installer.rb
|
113
|
+
- lib/mongoid/orderable/mixins/callbacks.rb
|
114
|
+
- lib/mongoid/orderable/mixins/helpers.rb
|
115
|
+
- lib/mongoid/orderable/mixins/listable.rb
|
116
|
+
- lib/mongoid/orderable/mixins/movable.rb
|
117
|
+
- lib/mongoid/orderable/version.rb
|
101
118
|
- lib/mongoid_orderable.rb
|
102
|
-
-
|
103
|
-
-
|
104
|
-
-
|
105
|
-
-
|
106
|
-
-
|
107
|
-
-
|
108
|
-
- spec/
|
119
|
+
- spec/integration/concurrency_spec.rb
|
120
|
+
- spec/integration/customized_spec.rb
|
121
|
+
- spec/integration/embedded_spec.rb
|
122
|
+
- spec/integration/foreign_key_spec.rb
|
123
|
+
- spec/integration/inherited_spec.rb
|
124
|
+
- spec/integration/multiple_fields_spec.rb
|
125
|
+
- spec/integration/multiple_scoped_spec.rb
|
126
|
+
- spec/integration/no_indexed_spec.rb
|
127
|
+
- spec/integration/scoped_spec.rb
|
128
|
+
- spec/integration/simple_spec.rb
|
129
|
+
- spec/integration/string_scoped_spec.rb
|
130
|
+
- spec/integration/zero_based_spec.rb
|
109
131
|
- spec/spec_helper.rb
|
110
|
-
|
132
|
+
- spec/support/models.rb
|
133
|
+
homepage: https://github.com/mongoid/mongoid_orderable
|
111
134
|
licenses: []
|
112
135
|
metadata: {}
|
113
136
|
post_install_message:
|
@@ -125,11 +148,22 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
148
|
- !ruby/object:Gem::Version
|
126
149
|
version: '0'
|
127
150
|
requirements: []
|
128
|
-
|
129
|
-
rubygems_version: 2.4.5.1
|
151
|
+
rubygems_version: 3.1.2
|
130
152
|
signing_key:
|
131
153
|
specification_version: 4
|
132
|
-
summary:
|
154
|
+
summary: Mongoid orderable list implementation
|
133
155
|
test_files:
|
134
|
-
- spec/
|
156
|
+
- spec/integration/concurrency_spec.rb
|
157
|
+
- spec/integration/customized_spec.rb
|
158
|
+
- spec/integration/embedded_spec.rb
|
159
|
+
- spec/integration/foreign_key_spec.rb
|
160
|
+
- spec/integration/inherited_spec.rb
|
161
|
+
- spec/integration/multiple_fields_spec.rb
|
162
|
+
- spec/integration/multiple_scoped_spec.rb
|
163
|
+
- spec/integration/no_indexed_spec.rb
|
164
|
+
- spec/integration/scoped_spec.rb
|
165
|
+
- spec/integration/simple_spec.rb
|
166
|
+
- spec/integration/string_scoped_spec.rb
|
167
|
+
- spec/integration/zero_based_spec.rb
|
135
168
|
- spec/spec_helper.rb
|
169
|
+
- spec/support/models.rb
|