gexf 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -47,7 +47,8 @@ module GEXF::Attribute::Assignable
47
47
 
48
48
  def [](key)
49
49
  if attr = attribute_by_title(key)
50
- attr_value(attr.id) || attr.default
50
+ value = @attr_values[attr.id]
51
+ !value.nil? ? value : attr.default
51
52
  else
52
53
  Kernel.warn "undefined attribute '#{key}'"
53
54
  end
@@ -29,8 +29,16 @@ class GEXF::Node
29
29
  node
30
30
  end
31
31
 
32
- def connections(type=nil)
33
- graph.edges[self.id].to_a
32
+ def connections
33
+ graph.edges[id].to_a
34
+ end
35
+
36
+ def incoming_connections
37
+ connections.select { |edge| edge.target_id == id }
38
+ end
39
+
40
+ def outgoing_connections
41
+ connections.select { |edge| edge.source_id == id }
34
42
  end
35
43
 
36
44
  def to_hash
@@ -1,3 +1,3 @@
1
1
  module GEXF
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
@@ -102,4 +102,35 @@ describe GEXF::Node do
102
102
  subject
103
103
  end
104
104
  end
105
+
106
+ context "incoming/outgoing" do
107
+ before do
108
+ @edge1 = double('edge', :source_id => 2332, :target_id => node.id)
109
+ @edge2 = double('edge', :source_id => node.id, :target_id => 2332)
110
+
111
+ @connections = [@edge1, @edge2]
112
+
113
+ edges.should_receive(:[]).
114
+ with(node.id).
115
+ and_return(@connections)
116
+ end
117
+
118
+ describe "#incoming_connections" do
119
+
120
+ subject { node.incoming_connections }
121
+
122
+ it "delegates to graph.edges[node.id], having self as target" do
123
+ subject.should eq([@edge1])
124
+ end
125
+ end
126
+
127
+ describe "outgoing_connections" do
128
+
129
+ subject { node.outgoing_connections }
130
+
131
+ it "delegates to graph.edges[node.id], having self as source" do
132
+ subject.should eq([@edge2])
133
+ end
134
+ end
135
+ end
105
136
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gexf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-07-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
16
- requirement: &8102460 !ruby/object:Gem::Requirement
16
+ requirement: &20222520 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.5.5
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *8102460
24
+ version_requirements: *20222520
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &8101960 !ruby/object:Gem::Requirement
27
+ requirement: &20222020 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 2.7.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *8101960
35
+ version_requirements: *20222020
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: pry
38
- requirement: &8101500 !ruby/object:Gem::Requirement
38
+ requirement: &20221560 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.9.10
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *8101500
46
+ version_requirements: *20221560
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &8117440 !ruby/object:Gem::Requirement
49
+ requirement: &20221100 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 0.9.2.2
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *8117440
57
+ version_requirements: *20221100
58
58
  description: A library for parsing, manipulating, and exporting graphs in the GEXF
59
59
  format.
60
60
  email: andrea.giulio.fiore@gmail.com