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.
- data/lib/gexf/attribute/assignable.rb +2 -1
- data/lib/gexf/node.rb +10 -2
- data/lib/gexf/version.rb +1 -1
- data/spec/gexf/node_spec.rb +31 -0
- metadata +9 -9
|
@@ -47,7 +47,8 @@ module GEXF::Attribute::Assignable
|
|
|
47
47
|
|
|
48
48
|
def [](key)
|
|
49
49
|
if attr = attribute_by_title(key)
|
|
50
|
-
|
|
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
|
data/lib/gexf/node.rb
CHANGED
|
@@ -29,8 +29,16 @@ class GEXF::Node
|
|
|
29
29
|
node
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
-
def connections
|
|
33
|
-
graph.edges[
|
|
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
|
data/lib/gexf/version.rb
CHANGED
data/spec/gexf/node_spec.rb
CHANGED
|
@@ -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.
|
|
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: &
|
|
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: *
|
|
24
|
+
version_requirements: *20222520
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: rspec
|
|
27
|
-
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: *
|
|
35
|
+
version_requirements: *20222020
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: pry
|
|
38
|
-
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: *
|
|
46
|
+
version_requirements: *20221560
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: rake
|
|
49
|
-
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: *
|
|
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
|