Sha256: f24308fdf3c2e11f2432e74415193a4cd22ca01776df64aa3125126f4da7082a

Contents?: true

Size: 654 Bytes

Versions: 2

Compression:

Stored size: 654 Bytes

Contents

# frozen_string_literal: true
class Address
  BYTES = {
    address: 22,
    city: 13,
    state: 3,
    country: 2
  }.freeze
  attr_accessor :address, :city, :state, :country
  def initialize(address:, city:, state:, country:)
    @address = address
    @city = city
    @state = state
    @country = country
  end

  def self.serialize(address)
    return if address.nil?
    BYTES.map do |field, bytes|
      address.send(field)[0...bytes].ljust(bytes, " ")
    end.join
  end

  def self.deserialize(string)
    return if string.nil?
    string = string.dup
    new(
      BYTES.transform_values { |bytes| string.slice!(0...bytes) }
    )
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
serdee-0.2.0 examples/address.rb
serdee-0.1.0 examples/address.rb