Module: Scale::Types::Set::ClassMethods
- Defined in:
- lib/scale/base.rb
Instance Method Summary collapse
- #decode(scale_bytes) ⇒ Object
-
#items(items, bytes_length = 1) ⇒ Object
items is a hash: { “TransactionPayment” => 0b00000001, “Transfer” => 0b00000010, “Reserve” => 0b00000100, … }.
Instance Method Details
#decode(scale_bytes) ⇒ Object
358 359 360 361 362 363 364 365 366 |
# File 'lib/scale/base.rb', line 358 def decode(scale_bytes) puts " BEGIN " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true value = "Scale::Types::U#{self::BYTE_LENGTH * 8}".constantize2.decode(scale_bytes).value return new [] unless value || value <= 0 result = self::ITEMS.select { |_, mask| value & mask > 0 }.keys puts " END " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true new result end |
#items(items, bytes_length = 1) ⇒ Object
items is a hash:
{
"TransactionPayment" => 0b00000001,
"Transfer" => 0b00000010,
"Reserve" => 0b00000100,
...
}
375 376 377 378 379 |
# File 'lib/scale/base.rb', line 375 def items(items, bytes_length = 1) raise "byte length is wrong: #{bytes_length}" unless [1, 2, 4, 8, 16].include?(bytes_length) const_set(:ITEMS, items) const_set(:BYTE_LENGTH, bytes_length) end |