Class: Amount::Serializer

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

Overview

Converts amounts to and from the versioned hash payload.

Constant Summary collapse

VERSION =
1

Class Method Summary collapse

Class Method Details

.dump(amount) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/amount/serializer.rb', line 8

def self.dump(amount)
  {
    v: VERSION,
    atomic: amount.atomic.to_s,
    symbol: amount.symbol.to_s
  }
end

.load(payload) ⇒ Object



16
17
18
19
20
21
22
23
24
25
# File 'lib/amount/serializer.rb', line 16

def self.load(payload)
  version = payload[:v] || payload["v"]
  validate_version!(version)

  Amount.new(
    payload.fetch(:atomic) { payload.fetch("atomic") },
    payload.fetch(:symbol) { payload.fetch("symbol") },
    from: :atomic
  )
end