Class: Yoda::Model::FunctionSignatures::Overload

Inherits:
Base
  • Object
show all
Defined in:
lib/yoda/model/function_signatures/overload.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#to_s, #wrap

Constructor Details

#initialize(method_object, overload) ⇒ Overload



13
14
15
16
17
18
# File 'lib/yoda/model/function_signatures/overload.rb', line 13

def initialize(method_object, overload)
  fail ArgumentError, method_object unless method_object.is_a?(Store::Objects::MethodObject)
  fail ArgumentError, overload unless overload.is_a?(Store::Objects::Overload)
  @method_object = method_object
  @overload = overload
end

Instance Attribute Details

#method_objectStore::Objects::MethodObject (readonly)



6
7
8
# File 'lib/yoda/model/function_signatures/overload.rb', line 6

def method_object
  @method_object
end

#overloadStore::Objects::Overload (readonly)



9
10
11
# File 'lib/yoda/model/function_signatures/overload.rb', line 9

def overload
  @overload
end

Instance Method Details

#documentString



36
37
38
# File 'lib/yoda/model/function_signatures/overload.rb', line 36

def document
  overload.document || method_object.document
end

#nameString



26
27
28
# File 'lib/yoda/model/function_signatures/overload.rb', line 26

def name
  method_object.name
end

#namespace_pathString

This method is abstract.


68
69
70
# File 'lib/yoda/model/function_signatures/overload.rb', line 68

def namespace_path
  method_object.namespace_path
end

#parameter_type_of(param) ⇒ Object



82
83
84
# File 'lib/yoda/model/function_signatures/overload.rb', line 82

def parameter_type_of(param)
  type_builder.type_of(param)
end

#parametersParameterList



78
79
80
# File 'lib/yoda/model/function_signatures/overload.rb', line 78

def parameters
  @parameters ||= ParameterList.new(overload.parameters)
end

#primary_source(String, Integer, Integer)?



73
74
75
# File 'lib/yoda/model/function_signatures/overload.rb', line 73

def primary_source
  overload.primary_source || method_object.primary_source
end

#rbs_type(env) ⇒ RBS::MethodType



52
53
54
55
56
57
58
59
# File 'lib/yoda/model/function_signatures/overload.rb', line 52

def rbs_type(env)
  RBS::MethodType.new(
    type_params: [],
    type: type.to_rbs_type(env),
    block: nil,
    location: nil,
  )
end

#sepString



31
32
33
# File 'lib/yoda/model/function_signatures/overload.rb', line 31

def sep
  method_object.sep
end

#sourcesArray<(String, Integer, Integer)>



62
63
64
# File 'lib/yoda/model/function_signatures/overload.rb', line 62

def sources
  method_object.sources
end

#tagsArray<Store::Objects::Tag>



41
42
43
# File 'lib/yoda/model/function_signatures/overload.rb', line 41

def tags
  overload.tag_list || method_object.tag_list
end

#typeTypeExpressions::FunctionType



46
47
48
# File 'lib/yoda/model/function_signatures/overload.rb', line 46

def type
  @type = type_builder.type
end

#visibilitySymbol



21
22
23
# File 'lib/yoda/model/function_signatures/overload.rb', line 21

def visibility
  method_object.visibility
end