deep_end 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # DeepEnd
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/deep_end.png)](http://badge.fury.io/rb/deep_end)
4
+
3
5
  This gem processes a list of objects and their dependencies, ordering them so that dependencies are correctly resolved and checking for circular dependencies.
4
6
 
5
7
  ## Installation
@@ -23,7 +25,7 @@ The Graph is the only class you have to worry about:
23
25
  dependency_graph = Graph.new
24
26
 
25
27
  Add any objects you like to it, along with an array of any other objects that they depend on:
26
-
28
+
27
29
  # Create objects - you can use any objects/instances
28
30
  dependency_a = {name: 'a'}
29
31
  dependency_b = {name: 'b'}
@@ -46,7 +48,7 @@ Whenever a new object is added with `add_dependency`, the graph re-calculates de
46
48
  be added multiple times with different dependencies. Dependencies are cumulative, so adding an object for
47
49
  a second time with different dependencies will result in the object having both sets of dependencies.
48
50
 
49
- If an object is added with itself as a dependency, a `SelfDependencyError` will be raised.
51
+ If an object is added with itself as a dependency, a `SelfDependencyError` will be raised.
50
52
 
51
53
  If a circular dependency is detected a `CircularDependencyError` will be raise.
52
54
 
@@ -9,7 +9,7 @@ Gem::Specification.new do |gem|
9
9
  gem.authors = ["Pedr Browne"]
10
10
  gem.email = ["pedr.browne@gmail.com"]
11
11
  gem.description = %q{Simple dependency resolver}
12
- gem.summary = %q{This gem processes a list of objects and their dependencies, ordering them so that dependencies are correctly resolved and checking for circular dependencies.}
12
+ gem.summary = %q{This gem processes a list of objects and their dependencies, ordering them in such a way that dependencies are correctly resolved. It checks for circular dependencies and self-dependencies.}
13
13
  gem.homepage = "https://github.com/stationkeeping/Deep-End"
14
14
 
15
15
  gem.files = `git ls-files`.split($/)
@@ -17,6 +17,6 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
19
 
20
- gem.add_development_dependency 'rake'
21
- gem.add_development_dependency 'rspec'
20
+ gem.add_development_dependency('rake', '~> 10.1')
21
+ gem.add_development_dependency('rspec', '~> 2.14')
22
22
  end
@@ -1,3 +1,3 @@
1
1
  module DeepEnd
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
3
3
  end
@@ -65,6 +65,18 @@ module DeepEnd
65
65
  sorted_objects[2].should == @dependency_c
66
66
  end
67
67
 
68
+ it 'should correctly order interdependent objects regardless of order added' do
69
+ # Add dependencies
70
+ @graph.add_dependency @dependency_a
71
+ @graph.add_dependency @dependency_b, [@dependency_a]
72
+ @graph.add_dependency @dependency_c, [@dependency_b, @dependency_a]
73
+ # Check order
74
+ sorted_objects = @graph.resolved_dependencies
75
+ sorted_objects[0].should == @dependency_a
76
+ sorted_objects[1].should == @dependency_b
77
+ sorted_objects[2].should == @dependency_c
78
+ end
79
+
68
80
  it 'should raise a SelfDependencyError if an object is added as its own dependency' do
69
81
  # Add dependencies
70
82
  expect { @graph.add_dependency @dependency_a, [@dependency_a] }.to raise_error(SelfDependencyError)
@@ -106,7 +118,6 @@ module DeepEnd
106
118
  sorted_objects[2].should == @dependency_f
107
119
  end
108
120
 
109
-
110
121
  end
111
122
 
112
123
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deep_end
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,40 +9,40 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-07 00:00:00.000000000 Z
12
+ date: 2013-09-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ! '>='
19
+ - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: '0'
21
+ version: '10.1'
22
22
  type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - ! '>='
27
+ - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: '0'
29
+ version: '10.1'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: rspec
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
- - - ! '>='
35
+ - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: '0'
37
+ version: '2.14'
38
38
  type: :development
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
- - - ! '>='
43
+ - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: '0'
45
+ version: '2.14'
46
46
  description: Simple dependency resolver
47
47
  email:
48
48
  - pedr.browne@gmail.com
@@ -59,7 +59,7 @@ files:
59
59
  - deep_end.sublime-project
60
60
  - lib/deep_end.rb
61
61
  - lib/deep_end/version.rb
62
- - spec/lib/deep_end_spec.rb
62
+ - spec/deep_end_spec.rb
63
63
  - spec/spec_helper.rb
64
64
  homepage: https://github.com/stationkeeping/Deep-End
65
65
  licenses: []
@@ -85,8 +85,9 @@ rubygems_version: 1.8.23
85
85
  signing_key:
86
86
  specification_version: 3
87
87
  summary: This gem processes a list of objects and their dependencies, ordering them
88
- so that dependencies are correctly resolved and checking for circular dependencies.
88
+ in such a way that dependencies are correctly resolved. It checks for circular dependencies
89
+ and self-dependencies.
89
90
  test_files:
90
- - spec/lib/deep_end_spec.rb
91
+ - spec/deep_end_spec.rb
91
92
  - spec/spec_helper.rb
92
93
  has_rdoc: