class Yoda::Model::Values::InstanceValue
Attributes
class_object[R]
@type ::YARD::CodeObjects::ClassObject | ::YARD::CodeObjects::Proxy
registry[R]
@type Registry
Public Class Methods
new(registry, class_object)
click to toggle source
@param registry [Registry] @param class_object
[::YARD::CodeObjects::ClassObject, ::YARD::CodeObjects::Proxy]
# File lib/yoda/model/values/instance_value.rb, line 13 def initialize(registry, class_object) fail ArgumentError, registry unless registry.is_a?(Registry) fail ArgumentError, class_object unless class_object.is_a?(::YARD::CodeObjects::NamespaceObject) || class_object.is_a?(::YARD::CodeObjects::Proxy) @registry = registry @class_object = class_object end
Public Instance Methods
defined_files()
click to toggle source
@return [Array<[String, Integer]>]
# File lib/yoda/model/values/instance_value.rb, line 42 def defined_files namespace.files end
docstring()
click to toggle source
@param [String]
# File lib/yoda/model/values/instance_value.rb, line 37 def docstring class_object.docstring end
methods(visibility: nil)
click to toggle source
@return [Array<Functions::Base>]
# File lib/yoda/model/values/instance_value.rb, line 21 def methods(visibility: nil) return [] if class_object.type == :proxy opts = { scope: :instance, visibility: visibility }.compact class_object.meths(opts).map { |meth| Functions::Method.new(meth) } + object_methods(visibility: visibility) end
namespace()
click to toggle source
# File lib/yoda/model/values/instance_value.rb, line 32 def namespace class_object end
path()
click to toggle source
@return [String]
# File lib/yoda/model/values/instance_value.rb, line 28 def path namespace.path end
Private Instance Methods
object_methods(visibility: nil)
click to toggle source
@return [Array<Functions::Base>]
# File lib/yoda/model/values/instance_value.rb, line 49 def object_methods(visibility: nil) return [] if class_object.type == :proxy opts = { scope: :instance, visibility: visibility }.compact method_names = Set.new(class_object.meths(opts).map(&:name)) if object = registry.find('::Object') object.meths(opts) .reject { |o| ![visibility].flatten.include?(:private) && o.namespace.name == :Kernel } .reject { |o| method_names.include?(o.name) } .map { |meth| Functions::Method.new(meth) } else [] end end