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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 82b31d65a0f155fea35a6833827231bf1cb44590868dc899c48f8cc6cb4269b4
4
- data.tar.gz: 393604497cd80ee452944ea713443b5383f2c2a0f0e5b15670ce8abf772c1122
3
+ metadata.gz: 0741356d352846be28e643f7440a8ba1fb073b087c5157fe7ffcdf15395b6278
4
+ data.tar.gz: 2719dc88e25e2625817b8c718b6feec9259b65e42733171df82939baa10701ab
5
5
  SHA512:
6
- metadata.gz: 51b08cb216071990f53983c7e11142cdee3d56f6fdd428e04ffb4ec189c16bb20c10be42735ede5ed8839195458e2ac153d8431dd130249ecf9212c70dbae830
7
- data.tar.gz: 463079d8eb9791576e4e2c7c3d09e879eac0d82143f61f135e11e28a303749b7ca5c51b56ae5ee552cfc1d1aca6b0b98c184a1e23fc714f59fa5a01b5974fc21
6
+ metadata.gz: '05303108e626d064d1b854d9e81ef97ae76748b6882702f09a3757d37f0dc68efd35c91808490be72d265edb0e9a71f545be0fbe48e990548cd8b8955a54f81f'
7
+ data.tar.gz: 98db335bf595a0f42a081ee010fac7fb33cb01b8790c2cd4fcfd035eeb80aa793a6483aaaa369b498e0e0ba5d87b28f159301b55646f5fef546bb8492453def5
data/Changelog CHANGED
@@ -1,3 +1,13 @@
1
+ 1.0.2
2
+ -----
3
+
4
+ - Fix nil error in Node#need!
5
+
6
+ 1.0.1
7
+ -----
8
+
9
+ - Fixes
10
+
1
11
  1.0.0
2
12
  -----
3
13
 
@@ -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 needs
28
- @feeds = Set.new feeds
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
- "[" + needs.map(&:name).join(", ") + "]",
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
 
@@ -1,3 +1,3 @@
1
1
  module Topiary
2
- VERSION = '1.0.1'.freeze
2
+ VERSION = '1.0.2'.freeze
3
3
  end
Binary file
@@ -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.1
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-24 00:00:00.000000000 Z
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