Module: WOoo::Util::HexUtil

Defined in:
lib/wo_oo/util/hex.rb

Overview

HexUtil convert to HEX 8, 16 or 32

> WOoo::Util::HexUtil.to_hex8(11) “0B”

> WOoo::Util::HexUtil.to_hex8(“11”) “0B”

> WOoo::Util::HexUtil.to_hex8([11, 16, 255])

“0B”, “10”, “FF”

> WOoo::Util::HexUtil.to_i(“0B”) 11

> WOoo::Util::HexUtil.to_i([“0B”, “10”, “FF”])

11, 16, 255

Constant Summary collapse

HEX8 =
0
HEX16 =
1
HEX32 =
2
SPRINTF_CONFIGURATION =
["%.2x", "%.4x", "%.8x"]

Class Method Summary collapse

Class Method Details

.to_hex(value, size = HEX8) ⇒ Object




68
69
70
# File 'lib/wo_oo/util/hex.rb', line 68

def self.to_hex(value, size = HEX8)
  sprintf(SPRINTF_CONFIGURATION[size], value).upcase
end

.to_hex16(values) ⇒ Object




42
43
44
45
46
47
48
49
50
51
# File 'lib/wo_oo/util/hex.rb', line 42

def self.to_hex16(values)
  case values
  when Integer
    to_hex(values, HEX16)
  when Array
    values.map { |value| to_hex16(value) }
  when String
     to_hex(values.to_i, HEX16)
  end
end

.to_hex32(values) ⇒ Object




55
56
57
58
59
60
61
62
63
64
# File 'lib/wo_oo/util/hex.rb', line 55

def self.to_hex32(values)
  case values
  when Integer
    to_hex(values, HEX32)
  when Array
    values.map { |value| to_hex32(value) }
  when String
     to_hex(values.to_i, HEX32)
  end
end

.to_hex8(values) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/wo_oo/util/hex.rb', line 29

def self.to_hex8(values)
  case values
  when Integer
    to_hex(values, HEX8)
  when Array
    values.map { |value| to_hex8(value) }
  when String
     to_hex(values.to_i, HEX8)
  end
end

.to_i(values, size = nil) ⇒ Object




74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/wo_oo/util/hex.rb', line 74

def self.to_i(values, size = nil)
  if !size.nil? && values.kind_of?(String)
    case size
    when HEX8
      formatted_values = values.scan(/\w\w/) if values.size > 2
    when HEX16
      formatted_values = values.scan(/\w\w\w\w/) if values.size > 4
    when HEX32
      formatted_values = values.scan(/\w\w\w\w\w\w\w\w/) if values.size > 8
    end
  else
    formatted_values = values
  end
          
  case formatted_values
  when String
    formatted_values.downcase.to_i(16)
  when Array
    formatted_values.map { |value| to_i(value) }
  end
end