deep_end 0.0.9 → 0.0.10

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.
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: