Class: Gobstones::Lang::VarTuple

Inherits:
Object
  • Object
show all
Includes:
EqualityDefinition
Defined in:
lib/gobstones/lang/definitions/var_tuple.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from EqualityDefinition

#==

Constructor Details

#initialize(variables) ⇒ VarTuple

Returns a new instance of VarTuple.



19
20
21
# File 'lib/gobstones/lang/definitions/var_tuple.rb', line 19

def initialize(variables)
  @variables = variables
end

Instance Attribute Details

#variablesObject (readonly)

Returns the value of attribute variables.



9
10
11
# File 'lib/gobstones/lang/definitions/var_tuple.rb', line 9

def variables
  @variables
end

Class Method Details

.emptyObject



11
12
13
# File 'lib/gobstones/lang/definitions/var_tuple.rb', line 11

def self.empty
  new([])
end

.with_names(var_names) ⇒ Object



15
16
17
# File 'lib/gobstones/lang/definitions/var_tuple.rb', line 15

def self.with_names(var_names)
  new(var_names.map(&:to_var_name))
end

Instance Method Details

#equality_attributesObject



23
24
25
# File 'lib/gobstones/lang/definitions/var_tuple.rb', line 23

def equality_attributes
  %i[variables]
end

#lengthObject



27
28
29
# File 'lib/gobstones/lang/definitions/var_tuple.rb', line 27

def length
  variables.length
end

#variable_at(index) ⇒ Object



31
32
33
# File 'lib/gobstones/lang/definitions/var_tuple.rb', line 31

def variable_at(index)
  variables[index]
end