242: def to_s (leader = '', indent = ' ')
243: label_option = nil
244: if @options['shape'] =~ /^M?record$/ && !@ports.empty? then
245:
246:
247: label_option = leader + indent + "#{quote_ID('label')} = #{quote_ID(@ports.collect { |port| port.to_s }.join(" | "))}"
248: elsif @options['label'] then
249:
250: label_option = leader + indent + "#{quote_ID('label')} = #{quote_label(@options['label'])}"
251: end
252:
253:
254:
255:
256: stringified_options = @options.collect do |name, val|
257: unless name == 'label' || val.nil? then
258: leader + indent + "#{quote_ID(name)} = #{quote_ID(val)}"
259: end
260: end.compact
261:
262: stringified_options.push(label_option) unless label_option.nil?
263:
264: stringified_options = stringified_options.join(",\n")
265:
266:
267:
268: if stringified_options.empty? then
269: return leader + quote_ID(@name) unless @name.nil?
270: return nil
271: else
272: return leader + (@name.nil? ? '' : quote_ID(@name) + " ") + "[\n" +
273: stringified_options + "\n" +
274: leader + "]"
275: end
276: end