topiary 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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