module Solargraph::YardMap::ToMethod::InnerMethods
Public Instance Methods
arg_name(a)
click to toggle source
@param a [Array] @return [String]
# File lib/solargraph/yard_map/to_method.rb, line 31 def arg_name a a[0].gsub(/[^a-z0-9_]/i, '') end
arg_type(a)
click to toggle source
@param a [Array] @return [::Symbol]
# File lib/solargraph/yard_map/to_method.rb, line 37 def arg_type a if a[0].start_with?('**') :kwrestarg elsif a[0].start_with?('*') :restarg elsif a[0].start_with?('&') :blockarg elsif a[0].end_with?(':') a[1] ? :kwoptarg : :kwarg elsif a[1] :optarg else :arg end end
get_parameters(code_object, location, comments)
click to toggle source
@param code_object [YARD::CodeObjects::Base] @return [Array<Solargraph::Pin::Parameter>]
# File lib/solargraph/yard_map/to_method.rb, line 11 def get_parameters code_object, location, comments return [] unless code_object.is_a?(YARD::CodeObjects::MethodObject) # HACK: Skip `nil` and `self` parameters that are sometimes emitted # for methods defined in C # See https://github.com/castwide/solargraph/issues/345 code_object.parameters.select { |a| a[0] && a[0] != 'self' }.map do |a| Solargraph::Pin::Parameter.new( location: location, closure: self, comments: comments, name: arg_name(a), presence: nil, decl: arg_type(a), asgn_code: a[1] ) end end