Class: Parlour::RbiGenerator::Constant

Inherits:
RbiObject
  • Object
show all
Defined in:
lib/parlour/rbi_generator/constant.rb

Overview

Represents a constant definition.

Instance Attribute Summary collapse

Attributes inherited from RbiObject

#comments, #generated_by, #generator, #name

Instance Method Summary collapse

Methods inherited from RbiObject

#add_comment

Constructor Details

#initialize(generator, name: '', value: '', eigen_constant: false, &block) ⇒ Constant

Creates a new constant definition.



21
22
23
24
25
26
# File 'lib/parlour/rbi_generator/constant.rb', line 21

def initialize(generator, name: '', value: '', eigen_constant: false, &block)
  super(generator, name)
  @value = value
  @eigen_constant = eigen_constant
  yield_self(&block) if block
end

Instance Attribute Details

#eigen_constantBoolean (readonly)



34
35
36
# File 'lib/parlour/rbi_generator/constant.rb', line 34

def eigen_constant
  @eigen_constant
end

#valueObject (readonly)

Returns the value of attribute value.



30
31
32
# File 'lib/parlour/rbi_generator/constant.rb', line 30

def value
  @value
end

Instance Method Details

#==(other) ⇒ Boolean

Returns true if this instance is equal to another extend.



42
43
44
45
# File 'lib/parlour/rbi_generator/constant.rb', line 42

def ==(other)
  Constant === other && name == other.name && value == other.value \
    && eigen_constant == other.eigen_constant
end

#describeString

Returns a human-readable brief string description of this code.



98
99
100
# File 'lib/parlour/rbi_generator/constant.rb', line 98

def describe
  "Constant (#{name} = #{value})"
end

#generate_rbi(indent_level, options) ⇒ Array<String>

Generates the RBI lines for this constant.



58
59
60
# File 'lib/parlour/rbi_generator/constant.rb', line 58

def generate_rbi(indent_level, options)
  [options.indented(indent_level, "#{name} = #{value}")]
end

#merge_into_self(others) ⇒ void

This method returns an undefined value.

Given an array of Parlour::RbiGenerator::Constant instances, merges them into this one. This particular implementation will simply do nothing, as instances are only mergeable if they are indentical. You MUST ensure that #mergeable? is true for those instances.



90
91
92
# File 'lib/parlour/rbi_generator/constant.rb', line 90

def merge_into_self(others)
  # We don't need to change anything! We only merge identical constants
end

#mergeable?(others) ⇒ Boolean

Given an array of Parlour::RbiGenerator::Constant instances, returns true if they may be merged into this instance using #merge_into_self. This is always false.



73
74
75
# File 'lib/parlour/rbi_generator/constant.rb', line 73

def mergeable?(others)
  others.all? { |other| self == other }
end