here's the handler for state blocks. remember that you need ruby 1.9.
class StateBlockHandler < YARD::Handlers::Ruby::Base
handles method_call(:state)
def process
statement.last.last.each do |stm|
# regexps for expediency. please rethink
if stm.show =~ /(interface (\w+),|(\w+))\s*:(\w+),\s*\[([^]]*)\]\s*(=>\s*\[([^]]+)\])?/
object = YARD::CodeObjects::MethodObject.new(namespace, $4)
register(object)
object.dynamic = true
object.parameters = [["[#{$5}]", nil], [$7, nil]]
object.source = stm.source
str = stm.comments.nil? ? "" : stm.comments + "\n@return [#{$2}]"
object.docstring = YARD::Docstring.new(str, object)
parse_block(stm, :owner => object)
end
end
end
end