mongoid-tree-rational 0.1.0 → 2.0.0
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 +7 -0
- data/.travis.yml +2 -4
- data/Gemfile +6 -3
- data/README.md +39 -4
- data/Rakefile +0 -2
- data/VERSION +1 -1
- data/lib/mongoid/locale/en.yml +1 -1
- data/lib/mongoid/tree.rb +8 -9
- data/lib/mongoid/tree/ordering.rb +12 -12
- data/lib/mongoid/tree/rational_numbering.rb +100 -74
- data/mongoid-tree-rational.gemspec +15 -14
- data/spec/mongoid/tree/rational_numbering_spec.rb +188 -0
- data/spec/mongoid/tree/traversal_spec.rb +1 -1
- data/spec/mongoid/tree_spec.rb +16 -2
- data/spec/support/models/node.rb +26 -3
- metadata +59 -94
@@ -2,14 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
+
# stub: mongoid-tree-rational 2.0.0 ruby lib
|
5
6
|
|
6
7
|
Gem::Specification.new do |s|
|
7
8
|
s.name = "mongoid-tree-rational"
|
8
|
-
s.version = "0.
|
9
|
+
s.version = "2.0.0"
|
9
10
|
|
10
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib"]
|
11
13
|
s.authors = ["Leif Ringstad", "Benedikt Deicke"]
|
12
|
-
s.date = "
|
14
|
+
s.date = "2014-08-20"
|
13
15
|
s.description = "A tree structure for Mongoid documents using the materialized path pattern and rational number sorting."
|
14
16
|
s.email = "leifcr@gmail.com"
|
15
17
|
s.extra_rdoc_files = [
|
@@ -42,16 +44,16 @@ Gem::Specification.new do |s|
|
|
42
44
|
]
|
43
45
|
s.homepage = "https://github.com/boxcms/mongoid-tree-rational"
|
44
46
|
s.licenses = ["MIT"]
|
45
|
-
s.
|
46
|
-
s.rubygems_version = "1.8.25"
|
47
|
+
s.rubygems_version = "2.2.2"
|
47
48
|
s.summary = "A tree structure for Mongoid documents with rational numbers"
|
48
49
|
|
49
50
|
if s.respond_to? :specification_version then
|
50
|
-
s.specification_version =
|
51
|
+
s.specification_version = 4
|
51
52
|
|
52
53
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
53
|
-
s.add_runtime_dependency(%q<mongoid>, ["<=
|
54
|
+
s.add_runtime_dependency(%q<mongoid>, ["<= 5.0", ">= 4.0"])
|
54
55
|
s.add_runtime_dependency(%q<rational_number>, [">= 0"])
|
56
|
+
s.add_runtime_dependency(%q<rubysl-rake>, ["~> 2.0"])
|
55
57
|
s.add_development_dependency(%q<rake>, [">= 0"])
|
56
58
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
57
59
|
s.add_development_dependency(%q<yard>, [">= 0"])
|
@@ -60,14 +62,14 @@ Gem::Specification.new do |s|
|
|
60
62
|
s.add_development_dependency(%q<rb-inotify>, [">= 0"])
|
61
63
|
s.add_development_dependency(%q<rb-fsevent>, [">= 0"])
|
62
64
|
s.add_development_dependency(%q<wdm>, [">= 0"])
|
63
|
-
s.add_development_dependency(%q<hirb>, [">= 0"])
|
64
|
-
s.add_development_dependency(%q<wirble>, [">= 0"])
|
65
65
|
s.add_development_dependency(%q<awesome_print>, [">= 0"])
|
66
|
+
s.add_development_dependency(%q<timecop>, [">= 0"])
|
66
67
|
s.add_development_dependency(%q<coveralls>, [">= 0"])
|
67
68
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
68
69
|
else
|
69
|
-
s.add_dependency(%q<mongoid>, ["<=
|
70
|
+
s.add_dependency(%q<mongoid>, ["<= 5.0", ">= 4.0"])
|
70
71
|
s.add_dependency(%q<rational_number>, [">= 0"])
|
72
|
+
s.add_dependency(%q<rubysl-rake>, ["~> 2.0"])
|
71
73
|
s.add_dependency(%q<rake>, [">= 0"])
|
72
74
|
s.add_dependency(%q<rspec>, [">= 0"])
|
73
75
|
s.add_dependency(%q<yard>, [">= 0"])
|
@@ -76,15 +78,15 @@ Gem::Specification.new do |s|
|
|
76
78
|
s.add_dependency(%q<rb-inotify>, [">= 0"])
|
77
79
|
s.add_dependency(%q<rb-fsevent>, [">= 0"])
|
78
80
|
s.add_dependency(%q<wdm>, [">= 0"])
|
79
|
-
s.add_dependency(%q<hirb>, [">= 0"])
|
80
|
-
s.add_dependency(%q<wirble>, [">= 0"])
|
81
81
|
s.add_dependency(%q<awesome_print>, [">= 0"])
|
82
|
+
s.add_dependency(%q<timecop>, [">= 0"])
|
82
83
|
s.add_dependency(%q<coveralls>, [">= 0"])
|
83
84
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
84
85
|
end
|
85
86
|
else
|
86
|
-
s.add_dependency(%q<mongoid>, ["<=
|
87
|
+
s.add_dependency(%q<mongoid>, ["<= 5.0", ">= 4.0"])
|
87
88
|
s.add_dependency(%q<rational_number>, [">= 0"])
|
89
|
+
s.add_dependency(%q<rubysl-rake>, ["~> 2.0"])
|
88
90
|
s.add_dependency(%q<rake>, [">= 0"])
|
89
91
|
s.add_dependency(%q<rspec>, [">= 0"])
|
90
92
|
s.add_dependency(%q<yard>, [">= 0"])
|
@@ -93,9 +95,8 @@ Gem::Specification.new do |s|
|
|
93
95
|
s.add_dependency(%q<rb-inotify>, [">= 0"])
|
94
96
|
s.add_dependency(%q<rb-fsevent>, [">= 0"])
|
95
97
|
s.add_dependency(%q<wdm>, [">= 0"])
|
96
|
-
s.add_dependency(%q<hirb>, [">= 0"])
|
97
|
-
s.add_dependency(%q<wirble>, [">= 0"])
|
98
98
|
s.add_dependency(%q<awesome_print>, [">= 0"])
|
99
|
+
s.add_dependency(%q<timecop>, [">= 0"])
|
99
100
|
s.add_dependency(%q<coveralls>, [">= 0"])
|
100
101
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
101
102
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require 'timecop'
|
2
3
|
|
3
4
|
describe Mongoid::Tree::RationalNumbering do
|
4
5
|
|
@@ -566,6 +567,16 @@ describe Mongoid::Tree::RationalNumbering do
|
|
566
567
|
expect(node(:node_1).rational_number).to eq(RationalNumber.new(2,1))
|
567
568
|
expect(node(:node_3).rational_number).to eq(RationalNumber.new(3,1))
|
568
569
|
end
|
570
|
+
|
571
|
+
it "should move conflicting nodes and their children when setting nv/dv trough function" do
|
572
|
+
node_3 = node(:node_3)
|
573
|
+
node_3.move_to_rational_number(5,2)
|
574
|
+
node_3.save!
|
575
|
+
expect(node(:node_3).rational_number).to eq(RationalNumber.new(5,2))
|
576
|
+
expect(node(:node_2_1).rational_number).to eq(RationalNumber.new(8,3))
|
577
|
+
expect(node(:node_2_2).rational_number).to eq(RationalNumber.new(11,4))
|
578
|
+
end
|
579
|
+
|
569
580
|
end
|
570
581
|
|
571
582
|
describe "#move_to_top" do
|
@@ -762,4 +773,181 @@ describe Mongoid::Tree::RationalNumbering do
|
|
762
773
|
|
763
774
|
end # describe "testing validations"
|
764
775
|
|
776
|
+
describe "testing with timestamped nodes" do
|
777
|
+
before(:each) do
|
778
|
+
setup_tree <<-ENDTREE
|
779
|
+
- node_1:
|
780
|
+
- node_1_1
|
781
|
+
- node_1_2
|
782
|
+
- node_2:
|
783
|
+
- node_2_1
|
784
|
+
- node_2_2
|
785
|
+
- node_2_3
|
786
|
+
- node_3
|
787
|
+
ENDTREE
|
788
|
+
end
|
789
|
+
|
790
|
+
describe "siblings should keep timestamp, node should be updated" do
|
791
|
+
subject { RationalNumberedTimestampNode }
|
792
|
+
|
793
|
+
it "when inserting a new node" do
|
794
|
+
node_2_1_new = RationalNumberedTimestampNode.new(:name => "node_2_1_new")
|
795
|
+
node_2_1_new.rational_number_nv = node(:node_2_1).rational_number.nv
|
796
|
+
node_2_1_new.rational_number_dv = node(:node_2_1).rational_number.dv
|
797
|
+
prev_updated_at = node(:node_2_1).updated_at
|
798
|
+
Timecop.freeze(Time.now + 30.minutes) do
|
799
|
+
node_2_1_new.save
|
800
|
+
expect(node_2_1_new.updated_at).to be_within(2.seconds).of(Time.now)
|
801
|
+
expect(node(:node_2_1).updated_at).to eq(prev_updated_at)
|
802
|
+
end
|
803
|
+
end
|
804
|
+
|
805
|
+
it "when moving a node up" do
|
806
|
+
prev_updated_at = node(:node_2_2).updated_at
|
807
|
+
Timecop.freeze(Time.now + 30.minutes) do
|
808
|
+
node(:node_2_3).move_up
|
809
|
+
expect(node(:node_2_3).updated_at).to be_within(2.seconds).of(Time.now)
|
810
|
+
expect(node(:node_2_2).updated_at).to eq(prev_updated_at)
|
811
|
+
end
|
812
|
+
end
|
813
|
+
|
814
|
+
it "when moving a node down" do
|
815
|
+
prev_updated_at = node(:node_2_2).updated_at
|
816
|
+
Timecop.freeze(Time.now + 30.minutes) do
|
817
|
+
node(:node_2_1).move_down
|
818
|
+
expect(node(:node_2_1).updated_at).to be_within(2.seconds).of(Time.now)
|
819
|
+
expect(node(:node_2_2).updated_at).to eq(prev_updated_at)
|
820
|
+
end
|
821
|
+
end
|
822
|
+
|
823
|
+
it "when moving a to the bottom of a tree" do
|
824
|
+
prev_updated_at = node(:node_2_2).updated_at
|
825
|
+
Timecop.freeze(Time.now + 30.minutes) do
|
826
|
+
node(:node_2_1).move_to_bottom
|
827
|
+
expect(node(:node_2_1).updated_at).to be_within(2.seconds).of(Time.now)
|
828
|
+
expect(node(:node_2_2).updated_at).to eq(prev_updated_at)
|
829
|
+
end
|
830
|
+
end
|
831
|
+
|
832
|
+
it "when moving a to the top of a tree" do
|
833
|
+
prev_updated_at = node(:node_2_2).updated_at
|
834
|
+
Timecop.freeze(Time.now + 30.minutes) do
|
835
|
+
node(:node_2_3).move_to_top
|
836
|
+
expect(node(:node_2_3).updated_at).to be_within(2.seconds).of(Time.now)
|
837
|
+
expect(node(:node_2_2).updated_at).to eq(prev_updated_at)
|
838
|
+
end
|
839
|
+
end
|
840
|
+
|
841
|
+
it "when moving a node to a new parent" do
|
842
|
+
original_root = node(:node_1)
|
843
|
+
other_root = node(:node_2)
|
844
|
+
child = node(:node_1_2)
|
845
|
+
expect(child.position).to eq(2)
|
846
|
+
prev_updated_at = node(:node_2_2).updated_at
|
847
|
+
Timecop.freeze(Time.now + 30.minutes) do
|
848
|
+
child.parent = other_root
|
849
|
+
child.save
|
850
|
+
child.reload
|
851
|
+
expect(node(:node_2_2).updated_at).to eq(prev_updated_at)
|
852
|
+
end
|
853
|
+
end
|
854
|
+
|
855
|
+
it "when removing a node" do
|
856
|
+
prev_updated_at = node(:node_2_2).updated_at
|
857
|
+
Timecop.freeze(Time.now + 30.minutes) do
|
858
|
+
node(:node_2_1).destroy
|
859
|
+
expect(node(:node_2_2).updated_at).to eq(prev_updated_at)
|
860
|
+
end
|
861
|
+
end
|
862
|
+
|
863
|
+
end # "on siblings it"
|
864
|
+
|
865
|
+
describe "when disabling auto_tree_timestamping, timestamps should be updated" do
|
866
|
+
subject { RationalNumberedTimestampNodeDisabledTimestamp }
|
867
|
+
|
868
|
+
it "when inserting a new node" do
|
869
|
+
node_2_1_new = RationalNumberedTimestampNodeDisabledTimestamp.create(:name => "node_2_1_new")
|
870
|
+
Timecop.freeze(Time.now + 30.minutes) do
|
871
|
+
node_2_1_new.move_to_rational_number(node(:node_2_1).rational_number_nv, node(:node_2_1).rational_number_dv)
|
872
|
+
node_2_1_new.save
|
873
|
+
expect(node_2_1_new.updated_at).to be_within(2.seconds).of(Time.now)
|
874
|
+
expect(node(:node_2_1).updated_at).to be_within(2.seconds).of(Time.now)
|
875
|
+
end
|
876
|
+
end
|
877
|
+
|
878
|
+
it "when moving a node up" do
|
879
|
+
prev_updated_at = node(:node_2_2).updated_at
|
880
|
+
Timecop.freeze(Time.now + 30.minutes) do
|
881
|
+
node(:node_2_3).move_up
|
882
|
+
expect(node(:node_2_3).updated_at).to be_within(2.seconds).of(Time.now)
|
883
|
+
expect(node(:node_2_2).updated_at).to be_within(2.seconds).of(Time.now)
|
884
|
+
end
|
885
|
+
end
|
886
|
+
|
887
|
+
it "when moving a node down" do
|
888
|
+
prev_updated_at = node(:node_2_2).updated_at
|
889
|
+
Timecop.freeze(Time.now + 30.minutes) do
|
890
|
+
node(:node_2_1).move_down
|
891
|
+
expect(node(:node_2_1).updated_at).to be_within(2.seconds).of(Time.now)
|
892
|
+
expect(node(:node_2_2).updated_at).to be_within(2.seconds).of(Time.now)
|
893
|
+
end
|
894
|
+
end
|
895
|
+
|
896
|
+
it "when moving a to the bottom of a tree" do
|
897
|
+
prev_updated_at = node(:node_2_2).updated_at
|
898
|
+
Timecop.freeze(Time.now + 30.minutes) do
|
899
|
+
node(:node_2_1).move_to_bottom
|
900
|
+
expect(node(:node_2_1).updated_at).to be_within(2.seconds).of(Time.now)
|
901
|
+
expect(node(:node_2_2).updated_at).to be_within(2.seconds).of(Time.now)
|
902
|
+
end
|
903
|
+
end
|
904
|
+
|
905
|
+
it "when moving a to the top of a tree" do
|
906
|
+
prev_updated_at = node(:node_2_2).updated_at
|
907
|
+
Timecop.freeze(Time.now + 30.minutes) do
|
908
|
+
node(:node_2_3).move_to_top
|
909
|
+
expect(node(:node_2_3).updated_at).to be_within(2.seconds).of(Time.now)
|
910
|
+
expect(node(:node_2_2).updated_at).to be_within(2.seconds).of(Time.now)
|
911
|
+
end
|
912
|
+
end
|
913
|
+
|
914
|
+
it "when moving a node to a new parent" do
|
915
|
+
original_root = node(:node_1)
|
916
|
+
other_root = node(:node_2)
|
917
|
+
child = node(:node_2_1)
|
918
|
+
prev_updated_at = node(:node_2_2).updated_at
|
919
|
+
Timecop.freeze(Time.now + 30.minutes) do
|
920
|
+
child.parent = other_root
|
921
|
+
child.save
|
922
|
+
child.reload
|
923
|
+
expect(node(:node_2_2).updated_at).to be_within(2.seconds).of(Time.now)
|
924
|
+
end
|
925
|
+
end
|
926
|
+
|
927
|
+
it "when removing a node" do
|
928
|
+
prev_updated_at = node(:node_2_2).updated_at
|
929
|
+
Timecop.freeze(Time.now + 30.minutes) do
|
930
|
+
node(:node_2_1).destroy
|
931
|
+
expect(node(:node_2_2).updated_at).to be_within(2.seconds).of(Time.now)
|
932
|
+
end
|
933
|
+
end
|
934
|
+
|
935
|
+
end # "on siblings it"
|
936
|
+
end # "testing with timestamped nodes"
|
937
|
+
|
938
|
+
# describe "testing moving within siblings" do
|
939
|
+
# before(:each) do
|
940
|
+
# setup_tree <<-ENDTREE
|
941
|
+
# - node_1
|
942
|
+
# - node_2:
|
943
|
+
# - node_2_1
|
944
|
+
# - node_2_2
|
945
|
+
# - node_3
|
946
|
+
# ENDTREE
|
947
|
+
# end
|
948
|
+
# it "should move node_2_2 " do
|
949
|
+
# end
|
950
|
+
|
951
|
+
# end
|
952
|
+
|
765
953
|
end # Mongoid::Tree::RationalNumbering
|
data/spec/mongoid/tree_spec.rb
CHANGED
@@ -10,7 +10,7 @@ describe Mongoid::Tree do
|
|
10
10
|
expect(a.macro).to eq(:has_many)
|
11
11
|
expect(a.class_name).to eq('Node')
|
12
12
|
expect(a.foreign_key).to eq('parent_id')
|
13
|
-
expect(Node.
|
13
|
+
expect(Node.index_specification(parent_id: 1)).to be
|
14
14
|
end
|
15
15
|
|
16
16
|
it "should be referenced in one parent as inverse of children" do
|
@@ -26,7 +26,14 @@ describe Mongoid::Tree do
|
|
26
26
|
expect(f).to be
|
27
27
|
expect(f.options[:type]).to eq(Array)
|
28
28
|
expect(f.options[:default]).to eq([])
|
29
|
-
expect(Node.
|
29
|
+
expect(Node.index_specification(parent_ids: 1)).to be
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should store the depth as Integer with index" do
|
33
|
+
f = Node.fields['depth']
|
34
|
+
expect(f).to be
|
35
|
+
expect(f.options[:type]).to eq(Integer)
|
36
|
+
expect(Node.index_specification(depth: 1)).to be
|
30
37
|
end
|
31
38
|
|
32
39
|
describe 'when new' do
|
@@ -254,6 +261,13 @@ describe Mongoid::Tree do
|
|
254
261
|
expect(node(:child).depth).to eq(1)
|
255
262
|
expect(node(:subchild).depth).to eq(2)
|
256
263
|
end
|
264
|
+
|
265
|
+
it "should be updated when the nodes ancestors change" do
|
266
|
+
node(:child).update_attributes(:parent => nil)
|
267
|
+
expect(node(:child).depth).to eq(0)
|
268
|
+
expect(node(:subchild).depth).to eq(1)
|
269
|
+
end
|
270
|
+
|
257
271
|
end
|
258
272
|
|
259
273
|
describe '#root' do
|
data/spec/support/models/node.rb
CHANGED
@@ -5,7 +5,7 @@ class Node
|
|
5
5
|
|
6
6
|
field :name
|
7
7
|
|
8
|
-
attr_accessible :name
|
8
|
+
# attr_accessible :name
|
9
9
|
end
|
10
10
|
|
11
11
|
class SubclassedNode < Node
|
@@ -24,7 +24,7 @@ class OrderedNode
|
|
24
24
|
|
25
25
|
field :name
|
26
26
|
|
27
|
-
attr_accessible :name
|
27
|
+
# attr_accessible :name
|
28
28
|
end
|
29
29
|
|
30
30
|
class NodeWithEmbeddedDocument < Node
|
@@ -43,5 +43,28 @@ class RationalNumberedNode
|
|
43
43
|
|
44
44
|
field :name
|
45
45
|
|
46
|
-
attr_accessible :name
|
46
|
+
# attr_accessible :name
|
47
|
+
end
|
48
|
+
|
49
|
+
class RationalNumberedTimestampNode
|
50
|
+
include Mongoid::Document
|
51
|
+
include Mongoid::Tree
|
52
|
+
include Mongoid::Tree::RationalNumbering
|
53
|
+
include Mongoid::Timestamps
|
54
|
+
|
55
|
+
field :name
|
56
|
+
|
57
|
+
# attr_accessible :name
|
58
|
+
end
|
59
|
+
|
60
|
+
class RationalNumberedTimestampNodeDisabledTimestamp
|
61
|
+
include Mongoid::Document
|
62
|
+
include Mongoid::Tree
|
63
|
+
include Mongoid::Tree::RationalNumbering
|
64
|
+
include Mongoid::Timestamps
|
65
|
+
rational_number_options({ auto_tree_timestamping: false})
|
66
|
+
|
67
|
+
field :name
|
68
|
+
|
69
|
+
# attr_accessible :name
|
47
70
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid-tree-rational
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 2.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Leif Ringstad
|
@@ -10,252 +9,222 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2014-08-20 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: mongoid
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
|
-
- - <=
|
18
|
+
- - "<="
|
21
19
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
23
|
-
- -
|
20
|
+
version: '5.0'
|
21
|
+
- - ">="
|
24
22
|
- !ruby/object:Gem::Version
|
25
|
-
version: '
|
23
|
+
version: '4.0'
|
26
24
|
type: :runtime
|
27
25
|
prerelease: false
|
28
26
|
version_requirements: !ruby/object:Gem::Requirement
|
29
|
-
none: false
|
30
27
|
requirements:
|
31
|
-
- - <=
|
28
|
+
- - "<="
|
32
29
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
34
|
-
- -
|
30
|
+
version: '5.0'
|
31
|
+
- - ">="
|
35
32
|
- !ruby/object:Gem::Version
|
36
|
-
version: '
|
33
|
+
version: '4.0'
|
37
34
|
- !ruby/object:Gem::Dependency
|
38
35
|
name: rational_number
|
39
36
|
requirement: !ruby/object:Gem::Requirement
|
40
|
-
none: false
|
41
37
|
requirements:
|
42
|
-
- -
|
38
|
+
- - ">="
|
43
39
|
- !ruby/object:Gem::Version
|
44
40
|
version: '0'
|
45
41
|
type: :runtime
|
46
42
|
prerelease: false
|
47
43
|
version_requirements: !ruby/object:Gem::Requirement
|
48
|
-
none: false
|
49
44
|
requirements:
|
50
|
-
- -
|
45
|
+
- - ">="
|
51
46
|
- !ruby/object:Gem::Version
|
52
47
|
version: '0'
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rubysl-rake
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.0'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.0'
|
53
62
|
- !ruby/object:Gem::Dependency
|
54
63
|
name: rake
|
55
64
|
requirement: !ruby/object:Gem::Requirement
|
56
|
-
none: false
|
57
65
|
requirements:
|
58
|
-
- -
|
66
|
+
- - ">="
|
59
67
|
- !ruby/object:Gem::Version
|
60
68
|
version: '0'
|
61
69
|
type: :development
|
62
70
|
prerelease: false
|
63
71
|
version_requirements: !ruby/object:Gem::Requirement
|
64
|
-
none: false
|
65
72
|
requirements:
|
66
|
-
- -
|
73
|
+
- - ">="
|
67
74
|
- !ruby/object:Gem::Version
|
68
75
|
version: '0'
|
69
76
|
- !ruby/object:Gem::Dependency
|
70
77
|
name: rspec
|
71
78
|
requirement: !ruby/object:Gem::Requirement
|
72
|
-
none: false
|
73
79
|
requirements:
|
74
|
-
- -
|
80
|
+
- - ">="
|
75
81
|
- !ruby/object:Gem::Version
|
76
82
|
version: '0'
|
77
83
|
type: :development
|
78
84
|
prerelease: false
|
79
85
|
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
none: false
|
81
86
|
requirements:
|
82
|
-
- -
|
87
|
+
- - ">="
|
83
88
|
- !ruby/object:Gem::Version
|
84
89
|
version: '0'
|
85
90
|
- !ruby/object:Gem::Dependency
|
86
91
|
name: yard
|
87
92
|
requirement: !ruby/object:Gem::Requirement
|
88
|
-
none: false
|
89
93
|
requirements:
|
90
|
-
- -
|
94
|
+
- - ">="
|
91
95
|
- !ruby/object:Gem::Version
|
92
96
|
version: '0'
|
93
97
|
type: :development
|
94
98
|
prerelease: false
|
95
99
|
version_requirements: !ruby/object:Gem::Requirement
|
96
|
-
none: false
|
97
100
|
requirements:
|
98
|
-
- -
|
101
|
+
- - ">="
|
99
102
|
- !ruby/object:Gem::Version
|
100
103
|
version: '0'
|
101
104
|
- !ruby/object:Gem::Dependency
|
102
105
|
name: jeweler
|
103
106
|
requirement: !ruby/object:Gem::Requirement
|
104
|
-
none: false
|
105
107
|
requirements:
|
106
|
-
- -
|
108
|
+
- - ">="
|
107
109
|
- !ruby/object:Gem::Version
|
108
110
|
version: '0'
|
109
111
|
type: :development
|
110
112
|
prerelease: false
|
111
113
|
version_requirements: !ruby/object:Gem::Requirement
|
112
|
-
none: false
|
113
114
|
requirements:
|
114
|
-
- -
|
115
|
+
- - ">="
|
115
116
|
- !ruby/object:Gem::Version
|
116
117
|
version: '0'
|
117
118
|
- !ruby/object:Gem::Dependency
|
118
119
|
name: guard-rspec
|
119
120
|
requirement: !ruby/object:Gem::Requirement
|
120
|
-
none: false
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: 2.6.0
|
125
125
|
type: :development
|
126
126
|
prerelease: false
|
127
127
|
version_requirements: !ruby/object:Gem::Requirement
|
128
|
-
none: false
|
129
128
|
requirements:
|
130
|
-
- -
|
129
|
+
- - ">="
|
131
130
|
- !ruby/object:Gem::Version
|
132
131
|
version: 2.6.0
|
133
132
|
- !ruby/object:Gem::Dependency
|
134
133
|
name: rb-inotify
|
135
134
|
requirement: !ruby/object:Gem::Requirement
|
136
|
-
none: false
|
137
135
|
requirements:
|
138
|
-
- -
|
136
|
+
- - ">="
|
139
137
|
- !ruby/object:Gem::Version
|
140
138
|
version: '0'
|
141
139
|
type: :development
|
142
140
|
prerelease: false
|
143
141
|
version_requirements: !ruby/object:Gem::Requirement
|
144
|
-
none: false
|
145
142
|
requirements:
|
146
|
-
- -
|
143
|
+
- - ">="
|
147
144
|
- !ruby/object:Gem::Version
|
148
145
|
version: '0'
|
149
146
|
- !ruby/object:Gem::Dependency
|
150
147
|
name: rb-fsevent
|
151
148
|
requirement: !ruby/object:Gem::Requirement
|
152
|
-
none: false
|
153
149
|
requirements:
|
154
|
-
- -
|
150
|
+
- - ">="
|
155
151
|
- !ruby/object:Gem::Version
|
156
152
|
version: '0'
|
157
153
|
type: :development
|
158
154
|
prerelease: false
|
159
155
|
version_requirements: !ruby/object:Gem::Requirement
|
160
|
-
none: false
|
161
156
|
requirements:
|
162
|
-
- -
|
157
|
+
- - ">="
|
163
158
|
- !ruby/object:Gem::Version
|
164
159
|
version: '0'
|
165
160
|
- !ruby/object:Gem::Dependency
|
166
161
|
name: wdm
|
167
162
|
requirement: !ruby/object:Gem::Requirement
|
168
|
-
none: false
|
169
163
|
requirements:
|
170
|
-
- -
|
164
|
+
- - ">="
|
171
165
|
- !ruby/object:Gem::Version
|
172
166
|
version: '0'
|
173
167
|
type: :development
|
174
168
|
prerelease: false
|
175
169
|
version_requirements: !ruby/object:Gem::Requirement
|
176
|
-
none: false
|
177
170
|
requirements:
|
178
|
-
- -
|
171
|
+
- - ">="
|
179
172
|
- !ruby/object:Gem::Version
|
180
173
|
version: '0'
|
181
174
|
- !ruby/object:Gem::Dependency
|
182
|
-
name:
|
183
|
-
requirement: !ruby/object:Gem::Requirement
|
184
|
-
none: false
|
185
|
-
requirements:
|
186
|
-
- - ! '>='
|
187
|
-
- !ruby/object:Gem::Version
|
188
|
-
version: '0'
|
189
|
-
type: :development
|
190
|
-
prerelease: false
|
191
|
-
version_requirements: !ruby/object:Gem::Requirement
|
192
|
-
none: false
|
193
|
-
requirements:
|
194
|
-
- - ! '>='
|
195
|
-
- !ruby/object:Gem::Version
|
196
|
-
version: '0'
|
197
|
-
- !ruby/object:Gem::Dependency
|
198
|
-
name: wirble
|
175
|
+
name: awesome_print
|
199
176
|
requirement: !ruby/object:Gem::Requirement
|
200
|
-
none: false
|
201
177
|
requirements:
|
202
|
-
- -
|
178
|
+
- - ">="
|
203
179
|
- !ruby/object:Gem::Version
|
204
180
|
version: '0'
|
205
181
|
type: :development
|
206
182
|
prerelease: false
|
207
183
|
version_requirements: !ruby/object:Gem::Requirement
|
208
|
-
none: false
|
209
184
|
requirements:
|
210
|
-
- -
|
185
|
+
- - ">="
|
211
186
|
- !ruby/object:Gem::Version
|
212
187
|
version: '0'
|
213
188
|
- !ruby/object:Gem::Dependency
|
214
|
-
name:
|
189
|
+
name: timecop
|
215
190
|
requirement: !ruby/object:Gem::Requirement
|
216
|
-
none: false
|
217
191
|
requirements:
|
218
|
-
- -
|
192
|
+
- - ">="
|
219
193
|
- !ruby/object:Gem::Version
|
220
194
|
version: '0'
|
221
195
|
type: :development
|
222
196
|
prerelease: false
|
223
197
|
version_requirements: !ruby/object:Gem::Requirement
|
224
|
-
none: false
|
225
198
|
requirements:
|
226
|
-
- -
|
199
|
+
- - ">="
|
227
200
|
- !ruby/object:Gem::Version
|
228
201
|
version: '0'
|
229
202
|
- !ruby/object:Gem::Dependency
|
230
203
|
name: coveralls
|
231
204
|
requirement: !ruby/object:Gem::Requirement
|
232
|
-
none: false
|
233
205
|
requirements:
|
234
|
-
- -
|
206
|
+
- - ">="
|
235
207
|
- !ruby/object:Gem::Version
|
236
208
|
version: '0'
|
237
209
|
type: :development
|
238
210
|
prerelease: false
|
239
211
|
version_requirements: !ruby/object:Gem::Requirement
|
240
|
-
none: false
|
241
212
|
requirements:
|
242
|
-
- -
|
213
|
+
- - ">="
|
243
214
|
- !ruby/object:Gem::Version
|
244
215
|
version: '0'
|
245
216
|
- !ruby/object:Gem::Dependency
|
246
217
|
name: simplecov
|
247
218
|
requirement: !ruby/object:Gem::Requirement
|
248
|
-
none: false
|
249
219
|
requirements:
|
250
|
-
- -
|
220
|
+
- - ">="
|
251
221
|
- !ruby/object:Gem::Version
|
252
222
|
version: '0'
|
253
223
|
type: :development
|
254
224
|
prerelease: false
|
255
225
|
version_requirements: !ruby/object:Gem::Requirement
|
256
|
-
none: false
|
257
226
|
requirements:
|
258
|
-
- -
|
227
|
+
- - ">="
|
259
228
|
- !ruby/object:Gem::Version
|
260
229
|
version: '0'
|
261
230
|
description: A tree structure for Mongoid documents using the materialized path pattern
|
@@ -267,8 +236,8 @@ extra_rdoc_files:
|
|
267
236
|
- LICENSE
|
268
237
|
- README.md
|
269
238
|
files:
|
270
|
-
- .rspec
|
271
|
-
- .travis.yml
|
239
|
+
- ".rspec"
|
240
|
+
- ".travis.yml"
|
272
241
|
- Gemfile
|
273
242
|
- Guardfile
|
274
243
|
- LICENSE
|
@@ -292,29 +261,25 @@ files:
|
|
292
261
|
homepage: https://github.com/boxcms/mongoid-tree-rational
|
293
262
|
licenses:
|
294
263
|
- MIT
|
264
|
+
metadata: {}
|
295
265
|
post_install_message:
|
296
266
|
rdoc_options: []
|
297
267
|
require_paths:
|
298
268
|
- lib
|
299
269
|
required_ruby_version: !ruby/object:Gem::Requirement
|
300
|
-
none: false
|
301
270
|
requirements:
|
302
|
-
- -
|
271
|
+
- - ">="
|
303
272
|
- !ruby/object:Gem::Version
|
304
273
|
version: '0'
|
305
|
-
segments:
|
306
|
-
- 0
|
307
|
-
hash: -552489557788164545
|
308
274
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
309
|
-
none: false
|
310
275
|
requirements:
|
311
|
-
- -
|
276
|
+
- - ">="
|
312
277
|
- !ruby/object:Gem::Version
|
313
278
|
version: '0'
|
314
279
|
requirements: []
|
315
280
|
rubyforge_project:
|
316
|
-
rubygems_version:
|
281
|
+
rubygems_version: 2.2.2
|
317
282
|
signing_key:
|
318
|
-
specification_version:
|
283
|
+
specification_version: 4
|
319
284
|
summary: A tree structure for Mongoid documents with rational numbers
|
320
285
|
test_files: []
|