class DuckTesting::YARD::MethodObject
Encapsulate ‘YARD::CodeObjects::MethodObject`.
Public Instance Methods
expected_return_types()
click to toggle source
@return [Array<DuckTesting::Type::Base>]
# File lib/duck_testing/yard/method_object.rb, line 53 def expected_return_types return_tag ? DuckTesting::YARD.expected_types(return_tag.types) : [] end
keyword_parameters()
click to toggle source
@return [Array<DuckTesting::YARD::MethodParameter>]
# File lib/duck_testing/yard/method_object.rb, line 43 def keyword_parameters method_parameters.select(&:keyword?) end
method_parameters()
click to toggle source
@return [Array<DuckTesting::YARD::MethodParameter>]
# File lib/duck_testing/yard/method_object.rb, line 23 def method_parameters @method_parameters ||= begin if yard_object.parameters.any? yard_object.parameters.map do |name, default| MethodParameter.new(self, name, default, get_parameter_tag(name)) end elsif parameter_tags.any? # Maybe the method is defined using a DSL and its signature is # declared with "@!method" directive. parameter_tags.map do |tag| MethodParameter.new(self, tag.name, nil, tag) end else # The method does not take any arguments. [] end end end
public_class_method?()
click to toggle source
@return [Boolean]
# File lib/duck_testing/yard/method_object.rb, line 63 def public_class_method? yard_object.scope == :class end
public_instance_method?()
click to toggle source
@return [Boolean]
# File lib/duck_testing/yard/method_object.rb, line 58 def public_instance_method? yard_object.scope == :instance end
return_tag()
click to toggle source
@return [YARD::Tags::Tag]
# File lib/duck_testing/yard/method_object.rb, line 48 def return_tag @return_tag ||= yard_object.tags.find { |tag| tag.tag_name == "return" } end
signature()
click to toggle source
@return [String]
# File lib/duck_testing/yard/method_object.rb, line 18 def signature "#{name}(#{parameters_signature})" end
Private Instance Methods
get_parameter_tag(name)
click to toggle source
@return [YARD::Tags::Tag]
# File lib/duck_testing/yard/method_object.rb, line 75 def get_parameter_tag(name) parameter_tags.find do |tag| name == (name.end_with?(":") ? "#{tag.name}:" : tag.name) end end
parameters_signature()
click to toggle source
@return [String]
# File lib/duck_testing/yard/method_object.rb, line 70 def parameters_signature method_parameters.map(&:to_s).join(", ") end