Module: Amount::Serialization::ClassMethods

Defined in:
lib/amount/serialization.rb

Overview

Class-level methods automatically extended onto any class that does ‘include Serialization`.

Instance Method Summary collapse

Instance Method Details

#load(payload) ⇒ Amount

Examples:

Amount.load(v: 1, atomic: "1500000", symbol: "USDC")

Parameters:

  • payload (Hash)

Returns:

Raises:



24
25
26
27
28
29
30
31
# File 'lib/amount/serialization.rb', line 24

def load(payload)
  payload = payload.transform_keys(&:to_sym)
  validate_serialization_version!(payload[:v])

  Amount.new(payload.fetch(:atomic), payload.fetch(:symbol), from: :atomic)
rescue KeyError => e
  raise Amount::InvalidInput, "amount payload missing key: #{e.key}"
end