Class: Erlang::ETF::SmallTuple

Inherits:
Object
  • Object
show all
Includes:
Term
Defined in:
lib/erlang/etf/small_tuple.rb

Overview

1 1 N
104 Arity Elements

SMALL_TUPLE_EXT encodes a tuple. The Arity field is an unsigned byte that determines how many element that follows in the Elements section.

(see SMALL_TUPLE_EXT)

Constant Summary

Constants included from Term

Term::BERT_PREFIX, Term::BIN_LSB_PACK, Term::BIN_MSB_PACK

Instance Method Summary collapse

Methods included from Term

#==, #__erlang_evolve__, #__erlang_type__, included

Constructor Details

#initialize(elements) ⇒ SmallTuple

Returns a new instance of SmallTuple.



37
38
39
# File 'lib/erlang/etf/small_tuple.rb', line 37

def initialize(elements)
  @elements = elements
end

Instance Method Details

#__ruby_evolve__Object



51
52
53
54
55
56
57
# File 'lib/erlang/etf/small_tuple.rb', line 51

def __ruby_evolve__
  if bert?
    ::Erlang::ETF::BERT.evolve(self)
  else
    ::Erlang::Tuple[*elements.map(&:__ruby_evolve__)]
  end
end

#bert?Boolean

Returns:

  • (Boolean)


46
47
48
49
# File 'lib/erlang/etf/small_tuple.rb', line 46

def bert?
  elements[0].respond_to?(:atom_name) &&
  elements[0].atom_name == BERT_PREFIX
end

#serialize_header(buffer) ⇒ Object



41
42
43
44
# File 'lib/erlang/etf/small_tuple.rb', line 41

def serialize_header(buffer)
  serialize_tag(buffer)
  serialize_arity(buffer)
end