mongoid-tree-rational 0.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.1.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 = "2013-10-09"
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.require_paths = ["lib"]
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 = 3
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>, ["<= 4.0", ">= 3.0"])
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>, ["<= 4.0", ">= 3.0"])
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>, ["<= 4.0", ">= 3.0"])
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
@@ -141,7 +141,7 @@ describe Mongoid::Tree::Traversal do
141
141
  @root1 = node(:root1)
142
142
  @root2 = node(:root2)
143
143
 
144
- Node.stub(:roots).and_return [@root1, @root2]
144
+ allow(Node).to receive(:roots).and_return [@root1, @root2]
145
145
  end
146
146
 
147
147
  it 'should grab each root' do
@@ -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.index_options).to have_key(:parent_id => 1)
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.index_options).to have_key(:parent_ids => 1)
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
@@ -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.1.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: 2013-10-09 00:00:00.000000000 Z
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: '4.0'
23
- - - ! '>='
20
+ version: '5.0'
21
+ - - ">="
24
22
  - !ruby/object:Gem::Version
25
- version: '3.0'
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: '4.0'
34
- - - ! '>='
30
+ version: '5.0'
31
+ - - ">="
35
32
  - !ruby/object:Gem::Version
36
- version: '3.0'
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: hirb
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: awesome_print
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: 1.8.25
281
+ rubygems_version: 2.2.2
317
282
  signing_key:
318
- specification_version: 3
283
+ specification_version: 4
319
284
  summary: A tree structure for Mongoid documents with rational numbers
320
285
  test_files: []