class Yoda::Store::Objects::MethodObject

Attributes

overloads[R]

@return [Array<Overload>]

parameters[R]

@return [Array<(String, String)>]

visibility[R]

@return [Symbol]

Public Class Methods

attr_names() click to toggle source

@return [Array<Symbol>]

Calls superclass method Yoda::Store::Objects::Base::attr_names
# File lib/yoda/store/objects/method_object.rb, line 34
def attr_names
  super + %i(parameters visibility overloads)
end
name_of_path(path) click to toggle source

@param path [String] @return [String]

# File lib/yoda/store/objects/method_object.rb, line 23
def name_of_path(path)
  path.slice((path.rindex(/[#.]/) || -1) + 1, path.length)
end
namespace_of_path(path) click to toggle source

@param path [String] @return [String]

# File lib/yoda/store/objects/method_object.rb, line 17
def namespace_of_path(path)
  path.slice(0, (path.rindex(/[#.]/) || 0))
end
new(parameters: [], visibility: :public, overloads: [], **kwargs) click to toggle source

@param path [String] @param document [Document, nil] @param tag_list [TagList, nil] @param visibility [Symbol] @param overloads [Array<Overload>] @param parameters [Array<(String, String)>, nil]

Calls superclass method Yoda::Store::Objects::Base::new
# File lib/yoda/store/objects/method_object.rb, line 45
def initialize(parameters: [], visibility: :public, overloads: [], **kwargs)
  super(kwargs)
  fail ArgumentError, visibility unless %i(public private protected)
  @visibility = visibility.to_sym
  @parameters = parameters
  @overloads = overloads
end
sep_of_path(path) click to toggle source

@param path [String] @return [String]

# File lib/yoda/store/objects/method_object.rb, line 29
def sep_of_path(path)
  path.slice(path.rindex(/[#.]/))
end

Public Instance Methods

kind() click to toggle source
# File lib/yoda/store/objects/method_object.rb, line 68
def kind
  :method
end
name() click to toggle source

@return [String]

# File lib/yoda/store/objects/method_object.rb, line 54
def name
  @name ||= MethodObject.name_of_path(path)
end
namespace_path() click to toggle source

@return [String]

# File lib/yoda/store/objects/method_object.rb, line 64
def namespace_path
  @namespace_path ||= MethodObject.namespace_of_path(path)
end
sep() click to toggle source

@return [String]

# File lib/yoda/store/objects/method_object.rb, line 59
def sep
  @sep ||= MethodObject.sep_of_path(path)
end
to_h() click to toggle source
Calls superclass method Yoda::Store::Objects::Base#to_h
# File lib/yoda/store/objects/method_object.rb, line 72
def to_h
  super.merge(
    parameters: parameters.to_a,
    visibility: visibility,
    overloads: overloads,
  )
end

Private Instance Methods

merge_attributes(another) click to toggle source

@param another [self] @return [Hash]

# File lib/yoda/store/objects/method_object.rb, line 84
def merge_attributes(another)
  super.merge(
    visibility: another.visibility,
    parameters: another.parameters.to_a,
    overloads: overloads + another.overloads,
  )
end