Sha256: 1a0d5628783fb4bd12ffe32d6a274bf3b40716c4e5b085d4d2fd219340ee97ff

Contents?: true

Size: 857 Bytes

Versions: 118

Compression:

Stored size: 857 Bytes

Contents

require 'graphviz'

module Renderer
  class GraphViz
    def initialize(file_name, config)
      @g = Graphviz::Graph.new('G', {
        overlap: false,
        splines: true,
        sep: 1,
        concentrate: true,
        rankdir: "LR"
      })
      @file_name = file_name
      @config = config
    end

    def add_node(name, opts)
      @g.add_node(name, label: name)
    end

    def add_edge(from, to, opts)
      from_node = create_if_missing(from)
      to_node = create_if_missing(to)
      options =  ({style: 'bold'}).merge(opts)
      from_node.connect(to_node, options)
    end

    def create_if_missing(name)
      n = @g.get_node(name).first
      n.nil? ? add_node(name, {}) : n
    end
    
    def output
      Graphviz::output(@g, path: @file_name, format: nil) #format: nil to force detection based on extension.
    end
  end
end

Version data entries

118 entries across 118 versions & 1 rubygems

Version Path
aws_security_viz-0.2.1.pre.alpha.pre.301 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.298 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.295 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.292 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.289 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.288 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.285 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.282 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.281 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.278 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.269 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.268 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.267 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.266 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.265 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.264 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.263 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.262 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.261 lib/renderer/graphviz.rb
aws_security_viz-0.2.1.pre.alpha.pre.235 lib/renderer/graphviz.rb