Class: EnumStatement

Inherits:
Node
  • Object
show all
Defined in:
lib/steamd/nodes/enum_statement_node.rb

Overview

Represents an Enum statement

Examples:

Enum Statement

enum Test { Invalid = 1; }

Instance Method Summary collapse

Instance Method Details

#flags?Bool

Returns true if this enum uses bitmask flags

Returns:

  • (Bool)


24
25
26
# File 'lib/steamd/nodes/enum_statement_node.rb', line 24

def flags?
  type == 'flags'
end

#nameString

The name of the enum

Returns:



10
11
12
# File 'lib/steamd/nodes/enum_statement_node.rb', line 10

def name
  enum_name.text_value
end

#to_hashObject

Hash representation of this Enum



42
43
44
45
46
47
48
49
# File 'lib/steamd/nodes/enum_statement_node.rb', line 42

def to_hash
  {
    name: name,
    type: type,
    flags: flags?,
    variables: variables
  }
end

#typeString

The type of the enum

Returns:



17
18
19
# File 'lib/steamd/nodes/enum_statement_node.rb', line 17

def type
  enum_type.type.text_value if enum_type.respond_to?(:type)
end

#variablesObject

Returns a list of EnumVariable objects

Returns:

  • Array



31
32
33
34
35
36
37
38
39
# File 'lib/steamd/nodes/enum_statement_node.rb', line 31

def variables
  declerations = [first_var] + other.elements.map(&:enum_decleration)

  variables = declerations.select do |node|
    node.is_a?(EnumVariable)
  end

  variables.map!(&:to_hash)
end