topiary 1.0.1 → 1.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 +4 -4
- data/Changelog +10 -0
- data/lib/topiary/node.rb +6 -7
- data/lib/topiary/version.rb +1 -1
- data/marshmallows.jpg +0 -0
- data/spec/node_spec.rb +60 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0741356d352846be28e643f7440a8ba1fb073b087c5157fe7ffcdf15395b6278
|
4
|
+
data.tar.gz: 2719dc88e25e2625817b8c718b6feec9259b65e42733171df82939baa10701ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '05303108e626d064d1b854d9e81ef97ae76748b6882702f09a3757d37f0dc68efd35c91808490be72d265edb0e9a71f545be0fbe48e990548cd8b8955a54f81f'
|
7
|
+
data.tar.gz: 98db335bf595a0f42a081ee010fac7fb33cb01b8790c2cd4fcfd035eeb80aa793a6483aaaa369b498e0e0ba5d87b28f159301b55646f5fef546bb8492453def5
|
data/Changelog
CHANGED
data/lib/topiary/node.rb
CHANGED
@@ -24,8 +24,10 @@ class Topiary::Node
|
|
24
24
|
|
25
25
|
def initialize(data=nil, needs=[], feeds=[])
|
26
26
|
@data = data
|
27
|
-
@needs = Set.new
|
28
|
-
@feeds = Set.new
|
27
|
+
@needs = Set.new
|
28
|
+
@feeds = Set.new
|
29
|
+
needs.each{|n| need!(n)}
|
30
|
+
feeds.each{|n| feed!(n)}
|
29
31
|
end
|
30
32
|
|
31
33
|
def begin!
|
@@ -45,7 +47,6 @@ class Topiary::Node
|
|
45
47
|
end
|
46
48
|
|
47
49
|
def need!(n)
|
48
|
-
@original_needs << n
|
49
50
|
needs << n
|
50
51
|
n.feeds << self
|
51
52
|
end
|
@@ -62,10 +63,8 @@ class Topiary::Node
|
|
62
63
|
def to_s
|
63
64
|
[
|
64
65
|
name,
|
65
|
-
"needs:",
|
66
|
-
"[" +
|
67
|
-
"feeds:",
|
68
|
-
"[" + feeds.map(&:name).join(", ") + "]"
|
66
|
+
"needs:[" + needs.map(&:name).join(",") + "]",
|
67
|
+
"feeds:[" + feeds.map(&:name).join(",") + "]"
|
69
68
|
].join(" ")
|
70
69
|
end
|
71
70
|
|
data/lib/topiary/version.rb
CHANGED
data/marshmallows.jpg
CHANGED
Binary file
|
data/spec/node_spec.rb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
describe Topiary::Node do
|
2
|
+
|
3
|
+
it "instantiates with no arguments" do
|
4
|
+
n = Topiary::Node.new
|
5
|
+
expect(n.data).to be_nil
|
6
|
+
expect(n.needs).to eq Set.new
|
7
|
+
expect(n.feeds).to eq Set.new
|
8
|
+
end
|
9
|
+
|
10
|
+
it "instantiates with a data argument" do
|
11
|
+
n = Topiary::Node.new "n1"
|
12
|
+
expect(n.data).to eq "n1"
|
13
|
+
expect(n.needs).to eq Set.new
|
14
|
+
expect(n.feeds).to eq Set.new
|
15
|
+
end
|
16
|
+
|
17
|
+
it "instantiates with needs" do
|
18
|
+
n1 = Topiary::Node.new "n1"
|
19
|
+
n2 = Topiary::Node.new "n2", [n1]
|
20
|
+
expect(n2.data).to eq "n2"
|
21
|
+
expect(n2.needs).to eq Set.new([n1])
|
22
|
+
expect(n2.feeds).to eq Set.new
|
23
|
+
|
24
|
+
expect(n1.data).to eq "n1"
|
25
|
+
expect(n1.needs).to eq Set.new
|
26
|
+
expect(n1.feeds).to eq Set.new([n2])
|
27
|
+
end
|
28
|
+
|
29
|
+
it "instantiates with feeds" do
|
30
|
+
n1 = Topiary::Node.new "n1"
|
31
|
+
n2 = Topiary::Node.new "n2", [], [n1]
|
32
|
+
expect(n2.data).to eq "n2"
|
33
|
+
expect(n2.needs).to eq Set.new
|
34
|
+
expect(n2.feeds).to eq Set.new([n1])
|
35
|
+
|
36
|
+
expect(n1.data).to eq "n1"
|
37
|
+
expect(n1.needs).to eq Set.new([n2])
|
38
|
+
expect(n1.feeds).to eq Set.new
|
39
|
+
end
|
40
|
+
|
41
|
+
it "gets its name from its data" do
|
42
|
+
n = Topiary::Node.new "n1"
|
43
|
+
expect(n.name).to eq "n1"
|
44
|
+
end
|
45
|
+
|
46
|
+
it "gets its name from its object id" do
|
47
|
+
n = Topiary::Node.new
|
48
|
+
expect(n.name).to eq n.object_id.to_s
|
49
|
+
end
|
50
|
+
|
51
|
+
it "shows its contents for debugging" do
|
52
|
+
n1 = Topiary::Node.new "n1"
|
53
|
+
n2 = Topiary::Node.new "n2"
|
54
|
+
n3 = Topiary::Node.new "n3"
|
55
|
+
n1.feed! n2
|
56
|
+
n3.need! n2
|
57
|
+
expect(n2.inspect).to eq "n2 needs:[n1] feeds:[n3]"
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: topiary
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul A. Jungwirth
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -101,6 +101,7 @@ files:
|
|
101
101
|
- lib/topiary/node.rb
|
102
102
|
- lib/topiary/version.rb
|
103
103
|
- marshmallows.jpg
|
104
|
+
- spec/node_spec.rb
|
104
105
|
- spec/spec_helper.rb
|
105
106
|
- spec/topological_sort_spec.rb
|
106
107
|
- topiary.gemspec
|