Class: String
- Inherits:
-
Object
- Object
- String
- Defined in:
- lib/tapyrus.rb
Instance Method Summary collapse
-
#bth ⇒ Object
binary convert to hex string.
-
#bti ⇒ Object
binary convert to integer.
-
#htb ⇒ Object
hex string convert to binary.
-
#opcode ⇒ Object
get opcode.
- #opcode? ⇒ Boolean
- #push_opcode? ⇒ Boolean
-
#pushdata? ⇒ Boolean
whether data push only?.
- #pushed_data ⇒ Object
-
#rhex ⇒ Object
reverse hex string endian.
-
#valid_hex? ⇒ Boolean
whether value is hex or not hex.
Instance Method Details
#bth ⇒ Object
binary convert to hex string
106 107 108 |
# File 'lib/tapyrus.rb', line 106 def bth unpack("H*").first end |
#bti ⇒ Object
binary convert to integer
116 117 118 |
# File 'lib/tapyrus.rb', line 116 def bti bth.to_i(16) end |
#htb ⇒ Object
hex string convert to binary
111 112 113 |
# File 'lib/tapyrus.rb', line 111 def htb [self].pack("H*") end |
#opcode ⇒ Object
get opcode
126 127 128 |
# File 'lib/tapyrus.rb', line 126 def opcode force_encoding(Encoding::ASCII_8BIT).ord end |
#opcode? ⇒ Boolean
130 131 132 |
# File 'lib/tapyrus.rb', line 130 def opcode? !pushdata? end |
#push_opcode? ⇒ Boolean
134 135 136 |
# File 'lib/tapyrus.rb', line 134 def push_opcode? [Tapyrus::Opcodes::OP_PUSHDATA1, Tapyrus::Opcodes::OP_PUSHDATA2, Tapyrus::Opcodes::OP_PUSHDATA4].include?(opcode) end |
#pushdata? ⇒ Boolean
whether data push only?
139 140 141 |
# File 'lib/tapyrus.rb', line 139 def pushdata? opcode <= Tapyrus::Opcodes::OP_PUSHDATA4 && opcode > Tapyrus::Opcodes::OP_0 end |
#pushed_data ⇒ Object
143 144 145 146 147 148 149 150 151 152 153 154 155 |
# File 'lib/tapyrus.rb', line 143 def pushed_data return nil unless pushdata? offset = 1 case opcode when Tapyrus::Opcodes::OP_PUSHDATA1 offset += 1 when Tapyrus::Opcodes::OP_PUSHDATA2 offset += 2 when Tapyrus::Opcodes::OP_PUSHDATA4 offset += 4 end self[offset..-1] end |
#rhex ⇒ Object
reverse hex string endian
121 122 123 |
# File 'lib/tapyrus.rb', line 121 def rhex htb.reverse.bth end |
#valid_hex? ⇒ Boolean
whether value is hex or not hex
159 160 161 |
# File 'lib/tapyrus.rb', line 159 def valid_hex? !self[/\H/] end |