class FileIO::GMLAuthor
Write a 'gml' file for network analytics
Attributes
comment[R]
directed[R]
edges[R]
file[R]
filename[R]
id[R]
label[R]
nodes[R]
Public Class Methods
new(args)
click to toggle source
# File modules/file_io.rb, line 35 def initialize(args) @filename= args[:filename].to_s || Time.new.to_s + '.gml' @nodes = [] @edges = [] @id = args[:id] @label = args[:label] @comment = args[:comment] if args[:directed] @directed = 1 else @directed = 0 end @filename = filename.gsub(/[^A-Za-z0-9\.\/]/,'_') @file = File.open(filename, 'wb') end
Public Instance Methods
add_edge(edge)
click to toggle source
# File modules/file_io.rb, line 88 def add_edge(edge) unless edges.include? edge @edges << edge end end
add_node(node)
click to toggle source
# File modules/file_io.rb, line 81 def add_node(node) unless nodes.include? node @nodes << node end end
header()
click to toggle source
# File modules/file_io.rb, line 62 def header file.write %Q{graph [\n} file.write %Q{\tdirected #{directed}\n} if id file.write %Q{\tid #{id}\n} end if label file.write %Q{\tlabel #{label}\n} end if comment file.write %Q{\tcomment #{comment}\n} end end
write()
click to toggle source
# File modules/file_io.rb, line 55 def write header write_nodes write_edges footer end
write_edges()
click to toggle source
# File modules/file_io.rb, line 110 def write_edges edges.each do |edge| file.write %Q{\tedge [\n} file.write %Q{\t\tsource "#{edge.delete :source}"\n} file.write %Q{\t\ttarget "#{edge.delete :target}"\n} edge.keys.each do |key| file.write %Q{\t\t#{key} } if edge[key].is_a? String file.write %Q{"#{edge[key]}"\n} else file.write %Q{#{edge[key]}\n} end end file.write %Q{\t]\n} end end
write_nodes()
click to toggle source
# File modules/file_io.rb, line 94 def write_nodes nodes.each do |node| file.write %Q{\tnode [\n} file.write %Q{\t\tid "#{node.delete :id}"\n} node.keys.each do |key| file.write %Q{\t\t#{key} } if node[key].is_a? String file.write %Q{"#{node[key]}"\n} else file.write %Q{#{node[key]}\n} end end file.write %Q{\t]\n} end end