class Yoda::Model::FunctionSignatures::ParameterList
Attributes
parameters[R]
@return [Array<(String, String)>]
Public Class Methods
new(parameters)
click to toggle source
@param parameters [Array<(String, String)>]
# File lib/yoda/model/function_signatures/parameter_list.rb, line 9 def initialize(parameters) fail ArgumentError, parameters unless parameters.all? { |param| param.is_a?(Array) } @parameters = parameters end
Public Instance Methods
block_parameter()
click to toggle source
@return [String, nil]
# File lib/yoda/model/function_signatures/parameter_list.rb, line 65 def block_parameter parameter_options[:block_parameter] end
each(*args, &proc)
click to toggle source
@return [Enumerator<(String, String)>]
# File lib/yoda/model/function_signatures/parameter_list.rb, line 20 def each(*args, &proc) to_a.each(*args, &proc) end
keyword_rest_parameter()
click to toggle source
@return [String, nil]
# File lib/yoda/model/function_signatures/parameter_list.rb, line 60 def keyword_rest_parameter parameter_options[:keyword_rest_parameter] end
optional_keyword_parameters()
click to toggle source
@return [Array<(String, String)>]
# File lib/yoda/model/function_signatures/parameter_list.rb, line 50 def optional_keyword_parameters parameter_options[:optional_keyword_parameters] end
optional_parameters()
click to toggle source
@return [Array<(String, String)>]
# File lib/yoda/model/function_signatures/parameter_list.rb, line 40 def optional_parameters parameter_options[:optional_parameters] end
parameter_names()
click to toggle source
@return [Array<String>]
# File lib/yoda/model/function_signatures/parameter_list.rb, line 25 def parameter_names parameters.map(&:first) end
parameter_options()
click to toggle source
@return [Hash{ Symbol => Object }]
# File lib/yoda/model/function_signatures/parameter_list.rb, line 70 def parameter_options @parameter_options ||= begin options = { required_parameters: [], optional_parameters: [], rest_parameter: nil, post_parameters: [], required_keyword_parameters: [], optional_keyword_parameters: [], keyword_rest_parameter: nil, block_parameter: nil, } parameters.each_with_object(options) do |(name, default), obj| if name.to_s.start_with?('**') obj[:keyword_rest_parameter] ||= name.to_s.gsub(/\A\*\*/, '') elsif name.to_s.start_with?('*') obj[:rest_parameter] ||= name.to_s.gsub(/\A\*/, '') elsif name.to_s.start_with?('&') obj[:block_parameter] ||= name.to_s.gsub(/\A\&/, '') elsif name.to_s.end_with?(':') if default && !default.empty? obj[:optional_keyword_parameters].push([name.to_s.gsub(/:\Z/, ''), default]) else obj[:required_keyword_parameters].push(name.to_s.gsub(/:\Z/, '')) end elsif default && !default.empty? obj[:optional_parameters].push([name, default]) elsif obj[:rest_parameter] obj[:post_parameters].push(name.to_s) else obj[:required_parameters].push(name.to_s) end end end end
post_parameters()
click to toggle source
@return [Array<String>]
# File lib/yoda/model/function_signatures/parameter_list.rb, line 35 def post_parameters parameter_options[:post_parameters] end
required_keyword_parameters()
click to toggle source
@return [Array<String>]
# File lib/yoda/model/function_signatures/parameter_list.rb, line 45 def required_keyword_parameters parameter_options[:required_keyword_parameters] end
required_parameters()
click to toggle source
@return [Array<String>]
# File lib/yoda/model/function_signatures/parameter_list.rb, line 30 def required_parameters parameter_options[:required_parameters] end
rest_parameter()
click to toggle source
@return [String, nil]
# File lib/yoda/model/function_signatures/parameter_list.rb, line 55 def rest_parameter parameter_options[:rest_parameter] end
to_a()
click to toggle source
@return [Array<(String, String)>]
# File lib/yoda/model/function_signatures/parameter_list.rb, line 15 def to_a parameters end