class Dogviz::SequenceRenderer
Attributes
lines[R]
Public Class Methods
new(title)
click to toggle source
# File lib/dogviz/sequence_renderer.rb, line 8 def initialize(title) @lines = [] @indents = 0 @rendered_class = RenderedSequence add_title title end
Public Instance Methods
divider(text)
click to toggle source
# File lib/dogviz/sequence_renderer.rb, line 49 def divider(text) #nop end
end_combination()
click to toggle source
# File lib/dogviz/sequence_renderer.rb, line 36 def end_combination @indents -= 1 add_line 'end' end
note(from, where, what)
click to toggle source
# File lib/dogviz/sequence_renderer.rb, line 41 def note(from, where, what) add_line "note #{where} of #{escape from.name}" @indents += 1 add_line what @indents -= 1 add_line "end note" end
render_edge(from, other, options)
click to toggle source
# File lib/dogviz/sequence_renderer.rb, line 15 def render_edge(from, other, options) detail = options[:label] receiver_label = other.name sender_label = from.name annotations = nil if other.is_a?(Process) annotations = extract_annotations(detail, sender_label, receiver_label, other.description) receiver_label = process_start_label(receiver_label) elsif from.is_a?(Process) receiver_label = process_end_label(receiver_label) end line = "#{escape sender_label} -> #{escape receiver_label}: #{detail}" line = [ line, annotations ].join("\n") unless annotations.nil? add_line line end
rendered()
click to toggle source
# File lib/dogviz/sequence_renderer.rb, line 53 def rendered @rendered_class.new lines end
start_combination(operator, guard)
click to toggle source
# File lib/dogviz/sequence_renderer.rb, line 31 def start_combination(operator, guard) add_line "#{operator} #{escape guard}" @indents += 1 end
Private Instance Methods
add_line(line)
click to toggle source
# File lib/dogviz/sequence_renderer.rb, line 59 def add_line(line) lines << (' ' * @indents + line) end
add_title(title)
click to toggle source
# File lib/dogviz/sequence_renderer.rb, line 63 def add_title(title) add_line "title #{title}" end
escape(s)
click to toggle source
# File lib/dogviz/sequence_renderer.rb, line 81 def escape(s) if (/\s/).match(s) "\"#{s}\"" else s end end
extract_annotations(detail, sender, receiver, process_description)
click to toggle source
# File lib/dogviz/sequence_renderer.rb, line 75 def extract_annotations(detail, sender, receiver, process_description) [ "note right of #{escape receiver}", " #{escape process_description}", 'end note' ].join("\n") end
process_end_label(receiver_label)
click to toggle source
# File lib/dogviz/sequence_renderer.rb, line 71 def process_end_label(receiver_label) "-#{receiver_label}" end
process_start_label(receiver_label)
click to toggle source
# File lib/dogviz/sequence_renderer.rb, line 67 def process_start_label(receiver_label) "+#{receiver_label}" end