Module: Erlang::ETF

Extended by:
ETF
Included in:
ETF
Defined in:
lib/erlang/etf.rb,
lib/erlang/etf/fun.rb,
lib/erlang/etf/map.rb,
lib/erlang/etf/nil.rb,
lib/erlang/etf/pid.rb,
lib/erlang/etf/atom.rb,
lib/erlang/etf/bert.rb,
lib/erlang/etf/list.rb,
lib/erlang/etf/port.rb,
lib/erlang/etf/term.rb,
lib/erlang/etf/float.rb,
lib/erlang/etf/terms.rb,
lib/erlang/etf/terms.rb,
lib/erlang/etf/binary.rb,
lib/erlang/etf/export.rb,
lib/erlang/etf/string.rb,
lib/erlang/etf/integer.rb,
lib/erlang/etf/new_fun.rb,
lib/erlang/etf/version.rb,
lib/erlang/etf/atom_utf8.rb,
lib/erlang/etf/large_big.rb,
lib/erlang/etf/new_float.rb,
lib/erlang/etf/reference.rb,
lib/erlang/etf/small_big.rb,
lib/erlang/etf/bit_binary.rb,
lib/erlang/etf/compressed.rb,
lib/erlang/etf/extensions.rb,
lib/erlang/etf/extensions.rb,
lib/erlang/etf/extensions.rb,
lib/erlang/etf/small_atom.rb,
lib/erlang/etf/large_tuple.rb,
lib/erlang/etf/small_tuple.rb,
lib/erlang/etf/new_reference.rb,
lib/erlang/etf/small_integer.rb,
lib/erlang/etf/extensions/hash.rb,
lib/erlang/etf/extensions/time.rb,
lib/erlang/etf/small_atom_utf8.rb,
lib/erlang/etf/extensions/array.rb,
lib/erlang/etf/extensions/float.rb,
lib/erlang/etf/extensions/object.rb,
lib/erlang/etf/extensions/regexp.rb,
lib/erlang/etf/extensions/string.rb,
lib/erlang/etf/extensions/symbol.rb,
lib/erlang/etf/extensions/integer.rb,
lib/erlang/etf/extensions/nil_class.rb,
lib/erlang/etf/extensions/erlang-map.rb,
lib/erlang/etf/extensions/erlang-nil.rb,
lib/erlang/etf/extensions/erlang-pid.rb,
lib/erlang/etf/extensions/true_class.rb,
lib/erlang/etf/extensions/big_decimal.rb,
lib/erlang/etf/extensions/erlang-list.rb,
lib/erlang/etf/extensions/false_class.rb,
lib/erlang/etf/extensions/erlang-tuple.rb,
lib/erlang/etf/extensions/erlang-export.rb,
lib/erlang/etf/extensions/erlang-string.rb

Defined Under Namespace

Modules: BERT, Extensions, Term, Terms Classes: Atom, AtomUTF8, Binary, BitBinary, Compressed, Export, Float, Fun, Integer, LargeBig, LargeTuple, List, Map, NewFloat, NewFun, NewReference, Nil, Pid, Port, Reference, SmallAtom, SmallAtomUTF8, SmallBig, SmallInteger, SmallTuple, String

Constant Summary collapse

ERLANG_MAGIC_BYTE =
131.chr.freeze
VERSION =
"1.1.1"

Instance Method Summary collapse

Instance Method Details

#decode(buffer) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/erlang/etf.rb', line 24

def decode(buffer)
  magic = buffer.read(1)
  if magic == ERLANG_MAGIC_BYTE
    Terms.evolve(buffer)
  else
    raise NotImplementedError, "unknown Erlang magic byte #{magic.inspect} (should be #{ERLANG_MAGIC_BYTE.inspect})"
  end
end

#encode(term, buffer = "", options = {}) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/erlang/etf.rb', line 15

def encode(term, buffer = "", options = {})
  buffer << ERLANG_MAGIC_BYTE
  if options[:compressed]
    Compressed.new(term.__erlang_evolve__, options[:compressed]).serialize(buffer)
  else
    term.__erlang_dump__(buffer)
  end
end