gexf 0.0.2 → 0.0.3

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