diff options
Diffstat (limited to 'lib/yard')
| -rw-r--r-- | lib/yard/mruby/code_objects/function_object.rb | 11 | ||||
| -rw-r--r-- | lib/yard/mruby/handlers/c/header/function_handler.rb | 9 |
2 files changed, 14 insertions, 6 deletions
diff --git a/lib/yard/mruby/code_objects/function_object.rb b/lib/yard/mruby/code_objects/function_object.rb index ecf7dd5..35b8e4f 100644 --- a/lib/yard/mruby/code_objects/function_object.rb +++ b/lib/yard/mruby/code_objects/function_object.rb @@ -22,6 +22,17 @@ module YARD::MRuby::CodeObjects '' end + def return_type + obj.tag(:return).types.first + end + + def return_type=(type) + return if type == 'void' + add_tag(YARD::Tags::Tag.new(:return,"", "")) unless has_tag?(:return) + tag(:return).types = [type] + end + + # Returns all alias names of the object # @return [Array<Symbol>] the alias names def aliases diff --git a/lib/yard/mruby/handlers/c/header/function_handler.rb b/lib/yard/mruby/handlers/c/header/function_handler.rb index 11f8efc..079f114 100644 --- a/lib/yard/mruby/handlers/c/header/function_handler.rb +++ b/lib/yard/mruby/handlers/c/header/function_handler.rb @@ -3,9 +3,9 @@ module YARD::MRuby::Handlers::C::Header MATCH = / MRB_(API|INLINE)\s+ ((struct\s+)?\w+(\s*\*)?)\s* - ((\w+\s+)+)?(\w+)\s*\( + ((\w+\s+)+)?(\w+)\s* + \(([\w\s\*,])*\) /mx - #\(([\w\*,]*)\) handles MATCH statement_class ToplevelStatement @@ -25,10 +25,7 @@ module YARD::MRuby::Handlers::C::Header register_docstring(obj, statement.comments.source, statement) end - if retype != 'void' - obj.add_tag(YARD::Tags::Tag.new(:return,"", "")) unless obj.has_tag?(:return) - obj.tag(:return).types = [retype] - end + obj.return_type = retype end end |
