Module: Wallets::HasWallets

Extended by:
ActiveSupport::Concern
Defined in:
lib/wallets/models/concerns/has_wallets.rb

Overview

Adds multi-wallet ownership to an Active Record model. One owner can have one wallet per asset code, with a default “main wallet” exposed via ‘owner.wallet` and `owner.main_wallet`.

Instance Method Summary collapse

Instance Method Details

#find_wallet(asset_code = nil) ⇒ Object



55
56
57
58
# File 'lib/wallets/models/concerns/has_wallets.rb', line 55

def find_wallet(asset_code = nil)
  normalized_asset_code = normalize_asset_code(asset_code || wallet_options[:default_asset])
  wallets.find_by(asset_code: normalized_asset_code)
end

#main_walletObject



51
52
53
# File 'lib/wallets/models/concerns/has_wallets.rb', line 51

def main_wallet
  wallet(wallet_options[:default_asset])
end

#wallet(asset_code = nil) ⇒ Object



43
44
45
# File 'lib/wallets/models/concerns/has_wallets.rb', line 43

def wallet(asset_code = nil)
  ensure_wallet(asset_code || wallet_options[:default_asset])
end

#wallet?(asset_code = nil) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/wallets/models/concerns/has_wallets.rb', line 47

def wallet?(asset_code = nil)
  find_wallet(asset_code || wallet_options[:default_asset]).present?
end

#wallet_optionsObject



39
40
41
# File 'lib/wallets/models/concerns/has_wallets.rb', line 39

def wallet_options
  self.class.wallet_options
end