Class: DOT::DOTNode

Inherits:
DOTElement show all
Defined in:
lib/puppet/external/dot.rb

Overview

node element

Instance Attribute Summary

Attributes inherited from DOTElement

#name, #options

Attributes inherited from DOTSimpleElement

#name

Instance Method Summary collapse

Methods inherited from DOTElement

#each_option, #each_option_pair

Constructor Details

#initialize(params = {}, option_list = NODE_OPTS) ⇒ DOTNode

Returns a new instance of DOTNode.



175
176
177
178
# File 'lib/puppet/external/dot.rb', line 175

def initialize(params = {}, option_list = NODE_OPTS)
  super(params, option_list)
  @ports = params['ports'] || []
end

Instance Method Details

#<<(thing) ⇒ Object



184
185
186
# File 'lib/puppet/external/dot.rb', line 184

def <<(thing)
  @ports << thing
end

#each_portObject



180
181
182
# File 'lib/puppet/external/dot.rb', line 180

def each_port
  @ports.each { |i| yield i }
end

#popObject



192
193
194
# File 'lib/puppet/external/dot.rb', line 192

def pop
  @ports.pop
end

#push(thing) ⇒ Object



188
189
190
# File 'lib/puppet/external/dot.rb', line 188

def push(thing)
  @ports.push(thing)
end

#to_s(t = '') ⇒ Object



196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
# File 'lib/puppet/external/dot.rb', line 196

def to_s(t = '')
  # This code is totally incomprehensible; it needs to be replaced!

  label = if @options['shape'] != 'record' && @ports.length == 0
            if @options['label']
              t + $tab + "label = #{stringify(@options['label'])}\n"
            else
              ''
            end
          else
            t + $tab + 'label = "' + " \\\n" +
              t + $tab2 + "#{stringify(@options['label'])}| \\\n" +
              @ports.collect { |i|
                t + $tab2 + i.to_s
              }.join("| \\\n") + " \\\n" +
              t + $tab + '"' + "\n"
          end

  t + "#{@name} [\n" +
    @options.to_a.filter_map { |i|
      i[1] && i[0] != 'label' ?
        t + $tab + "#{i[0]} = #{i[1]}" : nil
    }.join(",\n") + (label != '' ? ",\n" : "\n") +
    label +
    t + "]\n"
end