Method: Stellar::DSL.Asset

Defined in:
lib/stellar/dsl.rb

.Asset(subject = nil) ⇒ Stellar::Asset

Returns instance of the Stellar::Asset.

Parameters:

  • subject (Asset, String, nil) (defaults to: nil)

Returns:

Raises:

  • (TypeError)

    if subject cannot be converted to Stellar::Asset



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/stellar/dsl.rb', line 52

def Asset(subject = nil)
  case subject
  when Asset
    subject
  when Array
    raise TypeError, "Invalid asset type #{subject[0]}" unless [:native, :alphanum4, :alphanum12].include?(subject[0])
    Asset.send(*subject)
  when nil, /^(XLM[-:])?native$/
    Asset.native
  when /^([0-9A-Z]{1,4})[-:](G[A-Z0-9]{55})$/
    Asset.alphanum4($1, KeyPair($2))
  when /^([0-9A-Z]{5,12})[-:](G[A-Z0-9]{55})$/
    Asset.alphanum12($1, KeyPair($2))
  else
    raise TypeError, "Cannot convert #{subject.inspect} to Stellar::Asset"
  end
end