Class: Inch::Language::Ruby::Provider::YARD::Object::MethodParameterObject

Inherits:
Object
  • Object
show all
Defined in:
lib/inch/language/ruby/provider/yard/object/method_parameter_object.rb

Overview

Proxy class for method parameters

Constant Summary collapse

IGNORE_NAME =
"_"
BAD_NAME_EXCEPTIONS =
[IGNORE_NAME, "id"]
BAD_NAME_THRESHOLD =
3

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(method, name, in_signature, tag) ⇒ MethodParameterObject



17
18
19
20
21
22
# File 'lib/inch/language/ruby/provider/yard/object/method_parameter_object.rb', line 17

def initialize(method, name, in_signature, tag)
  @method = method
  @name = name
  @tag = tag
  @in_signature = in_signature
end

Instance Attribute Details

#nameString (readonly)



9
10
11
# File 'lib/inch/language/ruby/provider/yard/object/method_parameter_object.rb', line 9

def name
  @name
end

Instance Method Details

#bad_name?Boolean



30
31
32
33
# File 'lib/inch/language/ruby/provider/yard/object/method_parameter_object.rb', line 30

def bad_name?
  return false if BAD_NAME_EXCEPTIONS.include?(name)
  name.size < BAD_NAME_THRESHOLD || name =~ /[0-9]$/
end

#block?Boolean



36
37
38
# File 'lib/inch/language/ruby/provider/yard/object/method_parameter_object.rb', line 36

def block?
  @in_signature.to_s =~ /^\&/
end

#described?Boolean



41
42
43
# File 'lib/inch/language/ruby/provider/yard/object/method_parameter_object.rb', line 41

def described?
  described_by_tag? || described_by_docstring? || ignore?
end

#mentioned?Boolean



47
48
49
# File 'lib/inch/language/ruby/provider/yard/object/method_parameter_object.rb', line 47

def mentioned?
  !!@tag || mentioned_by_docstring? || ignore?
end

#splat?Boolean



52
53
54
# File 'lib/inch/language/ruby/provider/yard/object/method_parameter_object.rb', line 52

def splat?
  @in_signature.to_s =~ /^\*/
end

#typed?Boolean



57
58
59
# File 'lib/inch/language/ruby/provider/yard/object/method_parameter_object.rb', line 57

def typed?
  (@tag && @tag.types && !@tag.types.empty?) || ignore?
end

#wrongly_mentioned?Boolean



63
64
65
# File 'lib/inch/language/ruby/provider/yard/object/method_parameter_object.rb', line 63

def wrongly_mentioned?
  mentioned? && !@in_signature
end