Class: String

Inherits:
Object
  • Object
show all
Defined in:
lib/tapyrus.rb

Instance Method Summary collapse

Instance Method Details

#bthObject

binary convert to hex string



106
107
108
# File 'lib/tapyrus.rb', line 106

def bth
  unpack("H*").first
end

#btiObject

binary convert to integer



116
117
118
# File 'lib/tapyrus.rb', line 116

def bti
  bth.to_i(16)
end

#htbObject

hex string convert to binary



111
112
113
# File 'lib/tapyrus.rb', line 111

def htb
  [self].pack("H*")
end

#opcodeObject

get opcode



126
127
128
# File 'lib/tapyrus.rb', line 126

def opcode
  force_encoding(Encoding::ASCII_8BIT).ord
end

#opcode?Boolean

Returns:

  • (Boolean)


130
131
132
# File 'lib/tapyrus.rb', line 130

def opcode?
  !pushdata?
end

#push_opcode?Boolean

Returns:

  • (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?

Returns:

  • (Boolean)


139
140
141
# File 'lib/tapyrus.rb', line 139

def pushdata?
  opcode <= Tapyrus::Opcodes::OP_PUSHDATA4 && opcode > Tapyrus::Opcodes::OP_0
end

#pushed_dataObject



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

#rhexObject

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

Returns:

  • (Boolean)

    return true if data is hex



159
160
161
# File 'lib/tapyrus.rb', line 159

def valid_hex?
  !self[/\H/]
end