1
0
Fork 0
mirror of https://github.com/haml/haml.git synced 2022-11-09 12:33:31 -05:00
haml--haml/yard/callbacks.rb
Joe Van Dyk 245813a328 Removed warnings
Closes issue #409

Signed-off-by: Norman Clarke <norman@njclarke.com>
2012-04-26 19:09:10 -03:00

29 lines
817 B
Ruby

class CallbacksHandler < YARD::Handlers::Ruby::Legacy::Base
handles(/\Adefine_callback(\s|\()/)
def process
callback_name = tokval(statement.tokens[2])
attr_index = statement.comments.each_with_index {|c, i| break i if c[0] == ?@}
if attr_index.is_a?(Fixnum)
docstring = statement.comments[0...attr_index]
attrs = statement.comments[attr_index..-1]
else
docstring = statement.comments
attrs = []
end
yieldparams = ""
attrs.reject! do |a|
next unless a =~ /^@yield *(\[.*?\])/
yieldparams = $1
true
end
o = register(MethodObject.new(namespace, "on_#{callback_name}", scope))
o.docstring = docstring + [
"@return [void]",
"@yield #{yieldparams} When the callback is run"
] + attrs
o.signature = true
end
end