Sha256: 94704861108625c6bcdf875750371aecf68aa997c58987f9e0ad54743e03e54f
Contents?: true
Size: 1.35 KB
Versions: 1
Compression:
Stored size: 1.35 KB
Contents
require 'inch/language/elixir/provider/reader/object/function_parameter_object' module Inch module Language module Elixir module Provider module Reader module Object # Proxy class for functions class FunctionObject < Base def name @hash['id'] end def fullname @hash['module_id'] + '.' + @hash['id'] end def method? true end def parameters names = FunctionSignature.new(name, @hash['signature']).parameter_names names.map do |name| FunctionParameterObject.new(self, name) end end private class FunctionSignature < Struct.new(:fun_name, :signature) def parameter_names base_name = fun_name.split('/').first signature.gsub(/^(#{base_name}\()/, '').gsub(/(\))$/, '') .gsub( /\([^\)]+\)/, '' ) .split(',') .map do |param| name = param.split("\\\\").first name && name.strip end.compact end end end end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
inch-0.5.0.rc9 | lib/inch/language/elixir/provider/reader/object/function_object.rb |