class Yoda::Model::FunctionSignatures::Formatter
Attributes
signature[R]
@return [FunctionSignatures::Base]
Public Class Methods
new(signature)
click to toggle source
@param signature [FunctionSignatures::Base]
# File lib/yoda/model/function_signatures/formatter.rb, line 9 def initialize(signature) @signature = signature end
Public Instance Methods
to_s()
click to toggle source
# File lib/yoda/model/function_signatures/formatter.rb, line 13 def to_s "#{signature.name}#{function_signature}" end
Private Instance Methods
all_parameters()
click to toggle source
# File lib/yoda/model/function_signatures/formatter.rb, line 24 def all_parameters [ required_parameters, optional_parameters, rest_parameter, post_parameters, required_keyword_parameters, optional_keyword_parameters, keyword_rest_parameter, block_parameter ].flatten.compact end
block_parameter()
click to toggle source
# File lib/yoda/model/function_signatures/formatter.rb, line 65 def block_parameter signature.parameters.block_parameter ? "#{type_of(signature.parameters.block_parameter)} **#{signature.parameters.block_parameter}" : nil end
function_signature()
click to toggle source
# File lib/yoda/model/function_signatures/formatter.rb, line 19 def function_signature params = all_parameters (params.empty? ? ': ' : "(#{params.join(', ')}): ") + "#{signature.type.return_type}" end
keyword_rest_parameter()
click to toggle source
# File lib/yoda/model/function_signatures/formatter.rb, line 61 def keyword_rest_parameter signature.parameters.keyword_rest_parameter ? "#{type_of(signature.parameters.keyword_rest_parameter)} **#{signature.parameters.keyword_rest_parameter}" : nil end
optional_keyword_parameters()
click to toggle source
# File lib/yoda/model/function_signatures/formatter.rb, line 53 def optional_keyword_parameters signature.parameters.required_keyword_parameters.map { |(param, value)| "#{type_of(param)} #{param}: #{value}" } end
optional_parameters()
click to toggle source
# File lib/yoda/model/function_signatures/formatter.rb, line 41 def optional_parameters signature.parameters.optional_parameters.map { |(param, value)| triple_to_s(param, type_of(param), value) } end
post_parameters()
click to toggle source
# File lib/yoda/model/function_signatures/formatter.rb, line 45 def post_parameters signature.parameters.post_parameters.map { |param| triple_to_s(param, type_of(param)) } end
required_keyword_parameters()
click to toggle source
# File lib/yoda/model/function_signatures/formatter.rb, line 49 def required_keyword_parameters signature.parameters.required_keyword_parameters.map { |param| "#{type_of(param)} #{param}:" } end
required_parameters()
click to toggle source
# File lib/yoda/model/function_signatures/formatter.rb, line 37 def required_parameters signature.parameters.required_parameters.map { |param| triple_to_s(param, type_of(param)) } end
rest_parameter()
click to toggle source
# File lib/yoda/model/function_signatures/formatter.rb, line 57 def rest_parameter signature.parameters.rest_parameter ? "#{type_of(signature.parameters.rest_parameter)} *#{signature.parameters.rest_parameter}" : nil end
triple_to_s(name, type, default_value = nil)
click to toggle source
@param name [String] @param type [Base] @param default_value [String, nil]
# File lib/yoda/model/function_signatures/formatter.rb, line 72 def triple_to_s(name, type, default_value = nil) "#{type} #{name}" + (default_value ? " = #{ default_value }" : '') end
type_of(param)
click to toggle source
# File lib/yoda/model/function_signatures/formatter.rb, line 76 def type_of(param) signature.parameter_type_of(param) end