Class: RBS::DefinitionBuilder::MethodBuilder::Methods::Definition

Inherits:
Struct
  • Object
show all
Defined in:
sig/method_builder.rbs,
lib/rbs/definition_builder/method_builder.rb

Overview

Definition of a method in the type

The Definition object allows invalid method definition so that more than one original definitions may exist.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeDefinition

Returns a new instance of Definition.

Parameters:

  • name: (Symbol)
  • type: (instance_type)
  • originals: (Array[original])
  • overloads: (Array[overloading_definition])
  • accessibilities: (Array[accessibility])


31
# File 'sig/method_builder.rbs', line 31

def initialize: (name: Symbol, type: instance_type, originals: Array[original], overloads: Array[overloading_definition], accessibilities: Array[accessibility]) -> void

Instance Attribute Details

#accessibilitiesObject

Returns the value of attribute accessibilities

Returns:

  • (Object)

    the current value of accessibilities



7
8
9
# File 'lib/rbs/definition_builder/method_builder.rb', line 7

def accessibilities
  @accessibilities
end

#nameObject

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



7
8
9
# File 'lib/rbs/definition_builder/method_builder.rb', line 7

def name
  @name
end

#originalsObject

Returns the value of attribute originals

Returns:

  • (Object)

    the current value of originals



7
8
9
# File 'lib/rbs/definition_builder/method_builder.rb', line 7

def originals
  @originals
end

#overloadsObject

Returns the value of attribute overloads

Returns:

  • (Object)

    the current value of overloads



7
8
9
# File 'lib/rbs/definition_builder/method_builder.rb', line 7

def overloads
  @overloads
end

#typeObject

Returns the value of attribute type

Returns:

  • (Object)

    the current value of type



7
8
9
# File 'lib/rbs/definition_builder/method_builder.rb', line 7

def type
  @type
end

Class Method Details

.empty(name:, type:) ⇒ Definition

Parameters:

  • name: (Symbol)
  • type: (instance_type)

Returns:



22
23
24
# File 'lib/rbs/definition_builder/method_builder.rb', line 22

def self.empty(name:, type:)
  new(type: type, name: name, originals: [], overloads: [], accessibilities: [])
end

Instance Method Details

#accessibilityaccessibility

Returns:



14
15
16
17
18
19
20
# File 'lib/rbs/definition_builder/method_builder.rb', line 14

def accessibility
  if original.is_a?(AST::Members::Alias)
    raise "alias member doesn't have accessibility"
  else
    accessibilities[0] or raise
  end
end

#originaloriginal?

Returns:



10
11
12
# File 'lib/rbs/definition_builder/method_builder.rb', line 10

def original
  originals.first
end