module Journeyviz::NodeGroup
Public Instance Methods
block(name, &definition)
click to toggle source
# File lib/journeyviz/node_group.rb, line 9 def block(name, &definition) block = Block.new(name, self) @blocks ||= [] if @blocks.any? { |defined_block| block.name == defined_block.name } raise DuplicatedDefinition, "Duplicated block name: #{name}" end @blocks.push(block) definition.call(block) block end
blocks(include_children: false)
click to toggle source
# File lib/journeyviz/node_group.rb, line 22 def blocks(include_children: false) @blocks ||= [] if include_children @blocks.flat_map { |block| [block] + block.blocks(include_children: true) } else @blocks end end
find_screen(qualifier)
click to toggle source
# File lib/journeyviz/node_group.rb, line 50 def find_screen(qualifier) screens.find { |screen| screen.full_qualifier == qualifier } end
inputs()
click to toggle source
# File lib/journeyviz/node_group.rb, line 54 def inputs options = defined?(root_scope) && root_scope ? root_scope.screens : [] external_screens = options - screens self_screens = screens external_screens.select do |screen| screen.actions.any? do |action| self_screens.include?(action.transition) end end end
outputs()
click to toggle source
# File lib/journeyviz/node_group.rb, line 65 def outputs screens .flat_map(&:actions) .map(&:transition) .compact .reject { |screen| screens.include?(screen) } end
screen(name) { |screen| ... }
click to toggle source
# File lib/journeyviz/node_group.rb, line 32 def screen(name) @screens ||= [] screen = Screen.new(name, self) if @screens.any? { |defined_screen| screen.name == defined_screen.name } raise DuplicatedDefinition, "Duplicated screen name: #{name}" end @screens.push(screen) yield screen if block_given? screen end
screens()
click to toggle source
# File lib/journeyviz/node_group.rb, line 45 def screens @screens ||= [] @screens + blocks.flat_map(&:screens) end