Class: EnumTypeDef

Inherits:
TypeDef show all
Defined in:
lib/runtime.rb,
lib/generators/scala_server_generator.rb,
lib/generators/unity_client_generator.rb,
lib/generators/elixir_server_generator.rb

Instance Attribute Summary collapse

Attributes inherited from TypeDef

#name

Attributes inherited from Def

#ast

Instance Method Summary collapse

Constructor Details

#initialize(ast) ⇒ EnumTypeDef

Returns a new instance of EnumTypeDef.



43
44
45
46
47
# File 'lib/runtime.rb', line 43

def initialize ast
	super ast, ast.name
	@doc = ast.doc
	@elements = {}
end

Instance Attribute Details

#docObject (readonly)

Returns the value of attribute doc.



41
42
43
# File 'lib/runtime.rb', line 41

def doc
  @doc
end

#elementsObject (readonly)

Returns the value of attribute elements.



41
42
43
# File 'lib/runtime.rb', line 41

def elements
  @elements
end

Instance Method Details

#add_element(element_def) ⇒ Object



49
50
51
# File 'lib/runtime.rb', line 49

def add_element element_def
	@elements[element_def.name] = element_def
end

#elixir_nameObject



5
6
7
# File 'lib/generators/elixir_server_generator.rb', line 5

def elixir_name
    @name.underscore
end

#elixir_readObject



17
18
19
# File 'lib/generators/elixir_server_generator.rb', line 17

def elixir_read
    "#{self.elixir_read_name}(data)"
end

#elixir_read_nameObject



9
10
11
# File 'lib/generators/elixir_server_generator.rb', line 9

def elixir_read_name
    "read_#{self.elixir_name}"
end

#elixir_readerObject



25
26
27
# File 'lib/generators/elixir_server_generator.rb', line 25

def elixir_reader
    "#{self.elixir_read_name}/1"
end

#elixir_typeObject



33
34
35
# File 'lib/generators/elixir_server_generator.rb', line 33

def elixir_type
    @elements.values.map { |e| e.elixir_name } .join ' | '
end

#elixir_write(member_name) ⇒ Object



21
22
23
# File 'lib/generators/elixir_server_generator.rb', line 21

def elixir_write member_name
    "#{self.elixir_write_name}(data, #{member_name})"
end

#elixir_write_nameObject



13
14
15
# File 'lib/generators/elixir_server_generator.rb', line 13

def elixir_write_name
    "write_#{self.elixir_name}"
end

#elixir_writerObject



29
30
31
# File 'lib/generators/elixir_server_generator.rb', line 29

def elixir_writer
    "#{self.elixir_write_name}/2"
end

#scalaObject



20
21
22
# File 'lib/generators/scala_server_generator.rb', line 20

def scala
	@name + '.Value'
end

#unityObject



36
37
38
# File 'lib/generators/unity_client_generator.rb', line 36

def unity
	@name
end