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
-
.to_hex(value, size = HEX8) ⇒ Object
—————————————————————-.
-
.to_hex16(values) ⇒ Object
—————————————————————-.
-
.to_hex32(values) ⇒ Object
—————————————————————-.
- .to_hex8(values) ⇒ Object
-
.to_i(values, size = nil) ⇒ Object
—————————————————————-.
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 |