class Roby::YARD::EventHandler
Public Instance Methods
process()
click to toggle source
# File lib/roby/yard.rb, line 127 def process name = statement.parameters[0].jump(:tstring_content, :ident).source controlable = false if statement.parameters[1] statement.parameters[1].jump(:assoc).to_a.each_slice(2) do |key, value| if key.source == 'controlable:' || key.source == "command:" controlable = true end end end accessor = YARD::CodeObjects::MethodObject.new(namespace, "#{name}_event") register(accessor) register_group(accessor, "Task Events") accessor.docstring.add_tag( *YARD::Docstring.parser.create_tag("return", "[EventGenerator]")) happened = YARD::CodeObjects::MethodObject.new(namespace, "#{name}?") register(happened) register_group(happened, "Task Events") happened.docstring.add_tag( *YARD::Docstring.parser.create_tag("return", "[Boolean]")) if controlable command = YARD::CodeObjects::MethodObject.new(namespace, "#{name}!") register(command) register_group(command, "Task Events") command.parameters << ['context', 'nil'] end push_state(scope: :class) do event_class = YARD::CodeObjects::ClassObject.new(namespace, "#{name.camelcase(true)}") register(event_class) event_class.docstring.replace( YARD::Docstring.new("Event class used to represent the events emitted by #{namespace}##{name}_event\n\n") + event_class.docstring) end end