graphviz 0.2.0 → 1.2.0

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
- SHA1:
3
- metadata.gz: ddb46b8053b2f7327eabf54932a0940bf2495ac7
4
- data.tar.gz: 0f8da017c2d17dba6b9786a09ddd6018bb470dff
2
+ SHA256:
3
+ metadata.gz: e82beddf000e7e1bfd1fd5e9a3eeb026e02fdba7aceda468b5ec12c26e474bbf
4
+ data.tar.gz: c7da9110ff71e4b9ffb02370e9a280baf43edeba0e7aa45bb61e66343a0e70ce
5
5
  SHA512:
6
- metadata.gz: 948aac08b37c57ab910f58ca6f30a672e29f5947cf8aa1a42389a49b8bbbe1ebdb51e60ef0eac5abbfb639a358bbcfb7f407795a5b32ef7799cd5b85956cc6d0
7
- data.tar.gz: 77048e08ac224b0e034e5397c3b048532caf630f05fd605e5010e8a54db807b1044f2c929ed1ed7c13ce4e3bcd327e7ecfdede3692c0d57b5e4f90ea1d0bb32b
6
+ metadata.gz: 5849efcc73015c689cfe3ac51b0e6df16900688b2b843e94a23f9fd9cf064f5d58512aa46e66c77b023958145bf360287819f7ced932c3c7c6ce00e7e46ccda5
7
+ data.tar.gz: de31e3956f41ab68056af940fcfb032c7669caa59e8eaaf61f003cc3e1f5fd2d29e5bbcfa18201629f17ceacef2c0c890a4890f8b907c35dc0cfd581bd1afa6f
@@ -18,54 +18,43 @@
18
18
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  # THE SOFTWARE.
20
20
 
21
- require "graphviz/version"
22
- require "graphviz/graph"
21
+ require_relative "graphviz/version"
22
+ require_relative "graphviz/graph"
23
+
24
+ require 'process/pipeline'
23
25
 
24
26
  module Graphviz
25
- # Signals that the process exited with a non-zero status.
26
- class OutputError < StandardError
27
- end
28
-
29
27
  # Outputs the graph using the +dot+ executable.
30
28
  # @return [String] any data generated by the command unless an output path is specified.
31
29
  #
32
- # @option options [String] :output_format ('pdf') The output format (e.g. pdf).
30
+ # @option options [String] :format ('pdf') The output format (e.g. pdf).
33
31
  # @option options [String] :path The output path, if not specified data is returned.
34
32
  # @option options [String] :dot ('dot') The +dot+ executable to use.
35
- def self.output(graph, options = {})
36
- text = graph.to_dot
37
-
38
- output_format = options[:format]
33
+ def self.output(graph, path: nil, format: 'pdf', dot: 'dot')
34
+ output_format = format
39
35
 
40
- if options[:path]
36
+ if path
41
37
  # Grab the output format from the file name:
42
- if options[:path] =~ /\.(.*?)$/
38
+ if path =~ /\.(.*?)$/
43
39
  output_format ||= $1
44
40
  end
45
-
46
- output_file = File.open(options[:path], "w")
47
- else
48
- output_file = IO.pipe
49
41
  end
50
42
 
51
43
  output, input = IO.pipe
52
- pid = Process.spawn(options[:dot] || "dot", "-T#{output_format}", :out => output_file, :in => output)
53
-
54
- output.close
44
+ pipeline = Process::Pipeline.(dot, "-T#{output_format}")
55
45
 
56
- # Send graph data to process:
57
- input.write(graph.to_dot)
58
- input.close
59
-
60
- _, status = Process.wait2(pid)
61
-
62
- if status != 0
63
- raise OutputError.new("dot exited with status #{status}")
64
- end
46
+ writer = Thread.new do
47
+ graph.dump_graph(input)
65
48
 
66
- # Did we use a local pipe for output?
67
- if Array === output_file
68
- return task.output.read
49
+ input.close
50
+ end
51
+
52
+ if path
53
+ pipeline.write(path, input: output)
54
+ else
55
+ return pipeline.read(input: output)
69
56
  end
57
+ ensure
58
+ writer.join
70
59
  end
71
60
  end
@@ -18,31 +18,35 @@
18
18
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  # THE SOFTWARE.
20
20
 
21
- require 'graphviz'
21
+ require 'stringio'
22
22
 
23
- module Graphviz::GraphSpec
24
- SAMPLE_GRAPH_DOT = <<-EOF
25
- digraph "G" {
26
- "Foo"[shape="box3d", color="red"];
27
- "Foo" -> "Bar";
28
- "Bar";
29
- }
30
- EOF
31
-
32
- describe Graphviz::Graph do
33
- it "should construct a simple graph" do
34
- foo = subject.add_node("Foo")
35
- foo.add_node("Bar")
23
+ module Graphviz
24
+ # Represents a visual edge between two nodes.
25
+ class Edge
26
+ # Initialize the edge in the given graph, with a source and destination node.
27
+ # @param attributes [Hash] The associated graphviz attributes for this edge.
28
+ def initialize(graph, source, destination, attributes = {})
29
+ @graph = graph
30
+ @graph.edges << self
36
31
 
37
- foo.attributes[:shape] = 'box3d'
38
- foo.attributes[:color] = 'red'
32
+ @source = source
33
+ @destination = destination
39
34
 
40
- expect(subject.to_dot).to be == SAMPLE_GRAPH_DOT
41
-
42
- # Process the graph to output:
43
- Graphviz::output(subject, :path => "test.pdf")
44
-
45
- expect(File.exist? "test.pdf").to be true
35
+ @attributes = attributes
36
+ end
37
+
38
+ # @return [Node] The source node.
39
+ attr :source
40
+
41
+ # @return [Node] The destination node.
42
+ attr :destination
43
+
44
+ # @return [Hash] Any attributes specified for this edge.
45
+ attr_accessor :attributes
46
+
47
+ # @return [String] A convenient ASCII arrow.
48
+ def to_s
49
+ "#{@source} -> #{@destination}"
46
50
  end
47
51
  end
48
52
  end
@@ -20,196 +20,120 @@
20
20
 
21
21
  require 'stringio'
22
22
 
23
+ require_relative 'node'
24
+
23
25
  module Graphviz
24
- # Represents a visual node in the graph, which can be connected to other nodes.
25
- class Node
26
- # Initialize the node in the graph with the unique name.
27
- # @param attributes [Hash] The associated graphviz attributes for this node.
28
- def initialize(graph, name, attributes = {})
29
- @graph = graph
30
- @graph.nodes[name] = self
31
-
32
- @name = name
33
- @attributes = attributes
34
-
35
- @edges = []
36
- end
37
-
38
- # @return [String] The unique name of the node.
39
- attr :name
40
-
41
- # @return [Array<Edge>] Any edges connecting to other nodes.
42
- attr :edges
43
-
44
- # @return [Hash] Any attributes specified for this node.
45
- attr_accessor :attributes
46
-
47
- # Create an edge between this node and the destination with the specified options.
48
- # @param attributes [Hash] The associated graphviz attributes for the edge.
49
- def connect(destination, attributes = {})
50
- edge = Edge.new(@graph, self, destination, attributes)
51
-
52
- @edges << edge
53
-
54
- return edge
55
- end
56
-
57
- # Calculate if this node is connected to another. +O(N)+ search required.
58
- def connected?(node)
59
- return @edges.find{|edge| edge.destination == node}
60
- end
61
-
62
- # Add a node and #connect to it.
63
- # @param attributes [Hash] The associated graphviz attributes for the new node.
64
- def add_node(name, attributes = {})
65
- node = Node.new(@graph, name, attributes)
66
-
67
- connect(node)
68
-
69
- return node
70
- end
71
- end
72
-
73
- # Represents a visual edge between two nodes.
74
- class Edge
75
- # Initialize the edge in the given graph, with a source and destination node.
76
- # @param attributes [Hash] The associated graphviz attributes for this edge.
77
- def initialize(graph, source, destination, attributes = {})
78
- @graph = graph
79
- @graph.edges << self
80
-
81
- @source = source
82
- @destination = destination
83
-
84
- @attributes = attributes
85
- end
86
-
87
- # @return [Node] The source node.
88
- attr :source
89
-
90
- # @return [Node] The destination node.
91
- attr :destination
92
-
93
- # @return [Hash] Any attributes specified for this edge.
94
- attr_accessor :attributes
95
-
96
- # @return [String] A convenient ASCII arrow.
97
- def to_s
98
- '->'
99
- end
100
- end
101
-
102
26
  # Contains a set of nodes, edges and subgraphs.
103
- class Graph
27
+ class Graph < Node
104
28
  # Initialize the graph with the specified unique name.
105
- def initialize(name = 'G', attributes = {})
106
- @name = name
29
+ def initialize(name = 'G', parent = nil, **attributes)
30
+ super
107
31
 
108
- @nodes = {}
109
32
  @edges = []
110
- @graphs = {}
111
-
112
- @parent = nil
113
-
114
- @attributes = attributes
33
+ @nodes = {}
115
34
  end
116
35
 
117
- # @return [Graph] The parent graph, if any.
118
- attr :parent
36
+ # All edges in the graph
37
+ attr :edges
119
38
 
120
39
  # @return [Array<Node>] All nodes in the graph.
121
40
  attr :nodes
122
41
 
123
- # @return [Array<Edge>] All edges in the graph.
124
- attr :edges
125
-
126
- # @return [Array<Graph>] Any subgraphs.
127
- attr :graphs
128
-
129
42
  # @return [Hash] Any associated graphviz attributes.
130
43
  attr_accessor :attributes
131
44
 
132
45
  # @return [Node] Add a node to this graph.
133
- def add_node(name, attributes = {})
134
- Node.new(self, name, attributes)
46
+ def add_node(name = nil, **attributes)
47
+ name ||= "#{@name}N#{@nodes.count}"
48
+
49
+ Node.new(name, self, **attributes)
135
50
  end
136
51
 
137
52
  # Add a subgraph with a given name and attributes.
138
53
  # @return [Graph] the new graph.
139
- def add_subgraph(name, attributes = {})
140
- graph = Graph.new(name, attributes)
54
+ def add_subgraph(name = nil, **attributes)
55
+ name ||= "#{@name}S#{@nodes.count}"
56
+
57
+ subgraph = Graph.new(name, self, attributes)
141
58
 
142
- graph.attach(self)
143
- @graphs[name] = graph
59
+ self << subgraph
144
60
 
145
- return graph
61
+ return subgraph
146
62
  end
147
63
 
148
- # Make this graph a subgraph of the parent.
149
- def attach(parent)
150
- @parent = parent
64
+ # Finds all nodes with a given name
65
+ #
66
+ # @param [String] node_name the name to look for
67
+ # @return [Array<Graphviz::Node>, nil] list of all found nodes or nil
68
+ def get_node(node_name)
69
+ @nodes.select{ |k, v| v.name == node_name}.values
70
+ end
71
+
72
+ # Determines if a node with a given name exists in the graph
73
+ #
74
+ # @param [String] node_name the name to look for
75
+ # @return [Boolean] if node exists in graph
76
+ def node_exists?(node_name)
77
+ @nodes.select{ |k, v| v.name == node_name}.any?
78
+ end
79
+
80
+
81
+ def << node
82
+ @nodes[node.name] = node
83
+
84
+ node.attach(self)
151
85
  end
152
86
 
153
87
  # @return [String] Output the graph using the dot format.
154
- def to_dot(options = {})
88
+ def to_dot(**options)
155
89
  buffer = StringIO.new
156
90
 
157
- dump_graph(buffer, "", options)
91
+ dump_graph(buffer, **options)
158
92
 
159
93
  return buffer.string
160
94
  end
161
95
 
162
- protected
96
+ def graph_format(options)
97
+ if @graph
98
+ 'subgraph'
99
+ else
100
+ options[:format] || 'digraph'
101
+ end
102
+ end
103
+
104
+ def identifier
105
+ if @attributes[:cluster]
106
+ "cluster_#{@name}"
107
+ else
108
+ super
109
+ end
110
+ end
111
+
112
+ def dump_edges(buffer, indent, **options)
113
+ @edges.each do |edge|
114
+ edge_attributes_text = dump_attributes(edge.attributes)
115
+
116
+ buffer.puts "#{indent}#{edge}#{edge_attributes_text};"
117
+ end
118
+ end
163
119
 
164
120
  # Dump the entire graph and all subgraphs to dot text format.
165
- def dump_graph(buffer, indent, options)
166
- format = options[:format] || 'digraph'
121
+ def dump_graph(buffer, indent = "", **options)
122
+ format = graph_format(options)
167
123
 
168
- buffer.puts "#{indent}#{format} #{dump_value(@name)} {"
124
+ buffer.puts "#{indent}#{format} #{dump_value(self.identifier)} {"
169
125
 
170
- @attributes.each do |(name, value)|
126
+ @attributes.each do |name, value|
171
127
  buffer.puts "#{indent}\t#{name}=#{dump_value(value)};"
172
128
  end
173
129
 
174
- @nodes.each do |(name, node)|
175
- node_attributes_text = dump_attributes(node.attributes)
176
- node_name = dump_value(node.name)
177
- buffer.puts "#{indent}\t#{node_name}#{node_attributes_text};"
178
-
179
- if node.edges.size > 0
180
- node.edges.each do |edge|
181
- from_name = dump_value(edge.source.name)
182
- to_name = dump_value(edge.destination.name)
183
- edge_attributes_text = dump_attributes(edge.attributes)
184
-
185
- buffer.puts "#{indent}\t#{from_name} #{edge} #{to_name}#{edge_attributes_text};"
186
- end
187
- end
130
+ @nodes.each do |name, node|
131
+ node.dump_graph(buffer, indent + "\t", options)
188
132
  end
189
133
 
190
- @graphs.each do |(name, graph)|
191
- graph.dump_graph(buffer, indent + "\t", options.merge(:format => 'subgraph'))
192
- end
134
+ dump_edges(buffer, indent + "\t", **options)
193
135
 
194
136
  buffer.puts "#{indent}}"
195
137
  end
196
-
197
- # Dump the value to dot text format.
198
- def dump_value(value)
199
- if Symbol === value
200
- value.to_s
201
- else
202
- value.inspect
203
- end
204
- end
205
-
206
- # Dump the attributes to dot text format.
207
- def dump_attributes(attributes)
208
- if attributes.size > 0
209
- "[" + attributes.collect{|(name, value)| "#{name}=#{dump_value(value)}"}.join(", ") + "]"
210
- else
211
- ""
212
- end
213
- end
214
138
  end
215
139
  end
@@ -0,0 +1,111 @@
1
+ # Copyright, 2017, by Samuel G. D. Williams. <http://www.codeotaku.com>
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the "Software"), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ # THE SOFTWARE.
20
+
21
+ require_relative 'edge'
22
+
23
+ module Graphviz
24
+ # Represents a visual node in the graph, which can be connected to other nodes.
25
+ class Node
26
+ # Initialize the node in the graph with the unique name.
27
+ # @param attributes [Hash] The associated graphviz attributes for this node.
28
+ def initialize(name, graph = nil, **attributes)
29
+ @name = name
30
+ @attributes = attributes
31
+
32
+ @connections = []
33
+
34
+ # This sets up the connection between the node and the parent.
35
+ @graph = nil
36
+ graph << self if graph
37
+ end
38
+
39
+ # Attach this node to the given graph:
40
+ def attach(parent)
41
+ @graph = parent
42
+ end
43
+
44
+ # @return [String] The unique name of the node.
45
+ attr :name
46
+
47
+ # @return [Array<Edge>] Any edges connecting to other nodes.
48
+ attr :connections
49
+
50
+ # @return [Hash] Any attributes specified for this node.
51
+ attr_accessor :attributes
52
+
53
+ # Create an edge between this node and the destination with the specified options.
54
+ # @param attributes [Hash] The associated graphviz attributes for the edge.
55
+ def connect(destination, attributes = {})
56
+ edge = Edge.new(@graph, self, destination, attributes)
57
+
58
+ @connections << edge
59
+
60
+ return edge
61
+ end
62
+
63
+ # Calculate if this node is connected to another. +O(N)+ search required.
64
+ def connected?(node)
65
+ return @connections.find{|edge| edge.destination == node}
66
+ end
67
+
68
+ # Add a node and #connect to it.
69
+ # @param attributes [Hash] The associated graphviz attributes for the new node.
70
+ def add_node(name = nil, **attributes)
71
+ node = @graph.add_node(name, **attributes)
72
+
73
+ connect(node)
74
+
75
+ return node
76
+ end
77
+
78
+ def identifier
79
+ @name
80
+ end
81
+
82
+ def dump_graph(buffer, indent, options)
83
+ node_attributes_text = dump_attributes(@attributes)
84
+ node_name = dump_value(self.identifier)
85
+
86
+ buffer.puts "#{indent}#{node_name}#{node_attributes_text};"
87
+ end
88
+
89
+ def to_s
90
+ dump_value(@name)
91
+ end
92
+
93
+ # Dump the value to dot text format.
94
+ def dump_value(value)
95
+ if Symbol === value
96
+ value.to_s
97
+ else
98
+ value.inspect
99
+ end
100
+ end
101
+
102
+ # Dump the attributes to dot text format.
103
+ def dump_attributes(attributes)
104
+ if attributes.size > 0
105
+ "[" + attributes.collect{|name, value| "#{name}=#{dump_value(value)}"}.join(", ") + "]"
106
+ else
107
+ ""
108
+ end
109
+ end
110
+ end
111
+ end
@@ -19,6 +19,5 @@
19
19
  # THE SOFTWARE.
20
20
 
21
21
  module Graphviz
22
- # The version.
23
- VERSION = "0.2.0"
22
+ VERSION = "1.2.0"
24
23
  end
metadata CHANGED
@@ -1,17 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphviz
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-09 00:00:00.000000000 Z
11
+ date: 2020-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: yard
14
+ name: process-pipeline
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bake-bundler
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - ">="
@@ -25,35 +39,35 @@ dependencies:
25
39
  - !ruby/object:Gem::Version
26
40
  version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
- name: bundler
42
+ name: bake-modernize
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - "~>"
45
+ - - ">="
32
46
  - !ruby/object:Gem::Version
33
- version: '1.3'
47
+ version: '0'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - "~>"
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
- version: '1.3'
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
- name: rspec
56
+ name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - "~>"
59
+ - - ">="
46
60
  - !ruby/object:Gem::Version
47
- version: 3.4.0
61
+ version: '0'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - "~>"
66
+ - - ">="
53
67
  - !ruby/object:Gem::Version
54
- version: 3.4.0
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
- name: rake
70
+ name: covered
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - ">="
@@ -66,30 +80,37 @@ dependencies:
66
80
  - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
- description: "\t\tGraphviz is a graph visualisation system. This gem is a lightweight
70
- interface for generating graphs with Graphviz.\n"
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.6'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.6'
97
+ description:
71
98
  email:
72
- - samuel.williams@oriontransfer.co.nz
73
99
  executables: []
74
100
  extensions: []
75
101
  extra_rdoc_files: []
76
102
  files:
77
- - ".gitignore"
78
- - ".rspec"
79
- - ".travis.yml"
80
- - Gemfile
81
- - README.md
82
- - Rakefile
83
- - graphviz.gemspec
84
103
  - lib/graphviz.rb
104
+ - lib/graphviz/edge.rb
85
105
  - lib/graphviz/graph.rb
106
+ - lib/graphviz/node.rb
86
107
  - lib/graphviz/version.rb
87
- - spec/graphviz/graph_spec.rb
88
- homepage: ''
108
+ homepage: https://github.com/ioquatix/graphviz
89
109
  licenses:
90
110
  - MIT
91
- metadata: {}
92
- post_install_message:
111
+ metadata:
112
+ funding_uri: https://github.com/sponsors/ioquatix/
113
+ post_install_message:
93
114
  rdoc_options: []
94
115
  require_paths:
95
116
  - lib
@@ -104,11 +125,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
125
  - !ruby/object:Gem::Version
105
126
  version: '0'
106
127
  requirements: []
107
- rubyforge_project:
108
- rubygems_version: 2.4.6
109
- signing_key:
128
+ rubygems_version: 3.1.2
129
+ signing_key:
110
130
  specification_version: 4
111
131
  summary: A lightweight interface for generating graphs with Graphviz.
112
- test_files:
113
- - spec/graphviz/graph_spec.rb
114
- has_rdoc: yard
132
+ test_files: []
data/.gitignore DELETED
@@ -1,17 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --color
2
- --format documentation
@@ -1,17 +0,0 @@
1
- language: ruby
2
- sudo: required
3
- before_install:
4
- # We need GraphViz for testing:
5
- - sudo apt-get install graphviz
6
- rvm:
7
- - 2.0.0
8
- - 2.1.8
9
- - 2.2.4
10
- - 2.3.0
11
- - ruby-head
12
- - rbx-2
13
- env: COVERAGE=true
14
- matrix:
15
- allow_failures:
16
- - rvm: "rbx-2"
17
-
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in graphviz.gemspec
4
- gemspec
data/README.md DELETED
@@ -1,72 +0,0 @@
1
- # Graphviz
2
-
3
- Graphviz is a graph visualisation system. This gem is a lightweight interface for generating graphs with Graphviz.
4
-
5
- [![Build Status](https://travis-ci.org/ioquatix/graphviz.svg)](https://travis-ci.org/ioquatix/graphviz)
6
- [![Code Climate](https://codeclimate.com/github/ioquatix/graphviz.png)](https://codeclimate.com/github/ioquatix/graphviz)
7
-
8
- ## Installation
9
-
10
- Add this line to your application's Gemfile:
11
-
12
- gem 'graphviz'
13
-
14
- And then execute:
15
-
16
- $ bundle
17
-
18
- Or install it yourself as:
19
-
20
- $ gem install graphviz
21
-
22
- ## Usage
23
-
24
- Some example code:
25
-
26
- require 'graphviz';
27
-
28
- g = Graphviz::Graph.new
29
-
30
- foo = g.add_node("Foo")
31
- foo.add_node("Bar")
32
-
33
- foo.attributes[:shape] = 'box3d'
34
- foo.attributes[:color] = 'red'
35
-
36
- # Dup the dot data:
37
- puts g.to_dot
38
-
39
- # Process the graph to output:
40
- Graphviz::output(g, :path => "test.pdf")
41
-
42
- ## Contributing
43
-
44
- 1. Fork it
45
- 2. Create your feature branch (`git checkout -b my-new-feature`)
46
- 3. Commit your changes (`git commit -am 'Add some feature'`)
47
- 4. Push to the branch (`git push origin my-new-feature`)
48
- 5. Create new Pull Request
49
-
50
- ## License
51
-
52
- Released under the MIT license.
53
-
54
- Copyright, 2013, by [Samuel G. D. Williams](http://www.codeotaku.com/samuel-williams).
55
-
56
- Permission is hereby granted, free of charge, to any person obtaining a copy
57
- of this software and associated documentation files (the "Software"), to deal
58
- in the Software without restriction, including without limitation the rights
59
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
60
- copies of the Software, and to permit persons to whom the Software is
61
- furnished to do so, subject to the following conditions:
62
-
63
- The above copyright notice and this permission notice shall be included in
64
- all copies or substantial portions of the Software.
65
-
66
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
67
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
68
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
69
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
70
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
71
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
72
- THE SOFTWARE.
data/Rakefile DELETED
@@ -1,6 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
-
4
- RSpec::Core::RakeTask.new(:spec)
5
-
6
- task :default => :spec
@@ -1,29 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'graphviz/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "graphviz"
8
- spec.version = Graphviz::VERSION
9
- spec.authors = ["Samuel Williams"]
10
- spec.email = ["samuel.williams@oriontransfer.co.nz"]
11
- spec.description = <<-EOF
12
- Graphviz is a graph visualisation system. This gem is a lightweight interface for generating graphs with Graphviz.
13
- EOF
14
- spec.summary = "A lightweight interface for generating graphs with Graphviz."
15
- spec.homepage = ""
16
- spec.license = "MIT"
17
-
18
- spec.files = `git ls-files`.split($/)
19
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
- spec.require_paths = ["lib"]
22
-
23
- spec.has_rdoc = 'yard'
24
-
25
- spec.add_development_dependency "yard"
26
- spec.add_development_dependency "bundler", "~> 1.3"
27
- spec.add_development_dependency "rspec", "~> 3.4.0"
28
- spec.add_development_dependency "rake"
29
- end