From a2ce558f0243077d152c6a703e737a68f9a3f301 Mon Sep 17 00:00:00 2001 From: Seba Gamboa Date: Tue, 29 Sep 2015 15:05:35 -0300 Subject: Support variadic arguments in functions --- lib/yard/mruby/code_objects/function_object.rb | 4 ++-- lib/yard/mruby/handlers/c/header/function_handler.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'lib/yard/mruby') diff --git a/lib/yard/mruby/code_objects/function_object.rb b/lib/yard/mruby/code_objects/function_object.rb index 4609a21..725428e 100644 --- a/lib/yard/mruby/code_objects/function_object.rb +++ b/lib/yard/mruby/code_objects/function_object.rb @@ -37,7 +37,7 @@ module YARD::MRuby::CodeObjects # @return [Array] a list of parameter names followed # by their default values (or nil) def parameters - parameter_types.map{|t| [t.name, nil] } + parameter_types.map{|t| [(t.type == '...' ? '...' : t.name), nil] } end def parameter_types @@ -49,7 +49,7 @@ module YARD::MRuby::CodeObjects return if parameters.match /^\s*void\s*$/ parameters.split(',').each do |parameter| - parameter.scan(/((?:const\s+)?(?:struct\s+)?\w+(?:\s*\*)?)\s*(\w+)?/) do |type,name| + parameter.scan(/((?:const\s+)?(?:struct\s+)?(?:\w+|\.\.\.)(?:\s*\*)?)\s*(\w+)?/) do |type,name| @parameter_types << ParameterType.new(type,name) end end diff --git a/lib/yard/mruby/handlers/c/header/function_handler.rb b/lib/yard/mruby/handlers/c/header/function_handler.rb index 3d401a8..52ce583 100644 --- a/lib/yard/mruby/handlers/c/header/function_handler.rb +++ b/lib/yard/mruby/handlers/c/header/function_handler.rb @@ -4,7 +4,7 @@ module YARD::MRuby::Handlers::C::Header MRB_(API|INLINE)\s+ ((struct\s+)?\w+(\s*\*)?)\s* ((\w+\s+)+)?(\w+)\s* - \(([\w\s\*,]*)\) + \(([\w\s\*,\.]*)\) /mx handles MATCH -- cgit v1.2.3