Module: ByteOrder

Defined in:
lib/mega/byteorder.rb

Overview

:title: ByteOrder

ByteOrder module makes it possible to determine your systems byte order, either big or little endian.

Usage

ByteOrder.byteorder => :LittleEndian

Author(s)

  • Michael Neumann

Constant Summary collapse

Native =
:Native
BigEndian =
Big = Network = :BigEndian
LittleEndian =
Little = :LittleEndian

Class Method Summary collapse

Class Method Details

.big?Boolean

Returns:

  • (Boolean)


59
60
61
# File 'lib/mega/byteorder.rb', line 59

def big_endian?
  byte_order == BigEndian
end

.big_endian?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/mega/byteorder.rb', line 54

def big_endian?
  byte_order == BigEndian
end

.byte_orderObject

examines the byte order of the underlying machine



40
41
42
43
44
45
46
# File 'lib/mega/byteorder.rb', line 40

def byte_order
  if [0x12345678].pack("L") == "\x12\x34\x56\x78"
    BigEndian
  else
    LittleEndian
  end
end

.byteorderObject

examines the byte order of the underlying machine



48
49
50
51
52
53
54
# File 'lib/mega/byteorder.rb', line 48

def byte_order
  if [0x12345678].pack("L") == "\x12\x34\x56\x78"
    BigEndian
  else
    LittleEndian
  end
end

.little?Boolean

Returns:

  • (Boolean)


58
59
60
# File 'lib/mega/byteorder.rb', line 58

def little_endian?
  byte_order == LittleEndian
end

.little_endian?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/mega/byteorder.rb', line 50

def little_endian?
  byte_order == LittleEndian
end

.network?Boolean

Returns:

  • (Boolean)


60
61
62
# File 'lib/mega/byteorder.rb', line 60

def big_endian?
  byte_order == BigEndian
end