Module: SnapTrade::Instrument

Defined in:
lib/snaptrade/models/instrument.rb

Overview

Instrument metadata for a V2 position. Use ‘kind` to determine which schema is present.

Class Method Summary collapse

Class Method Details

.build(data) ⇒ Object

Builds the object

Parameters:

  • Data (Mixed)

    to be matched against the list of oneOf items

Returns:

  • (Object)

    Returns the model or the data itself



49
50
51
52
53
54
55
56
57
# File 'lib/snaptrade/models/instrument.rb', line 49

def build(data)
  discriminator_value = data[openapi_discriminator_name]
  return nil if discriminator_value.nil?

  klass = openapi_discriminator_mapping[discriminator_value.to_s.to_sym]
  return nil unless klass

  SnapTrade.const_get(klass).build_from_hash(data)
end

.openapi_discriminator_mappingObject

Discriminator’s mapping (OpenAPI v3)



35
36
37
38
39
40
41
42
43
44
# File 'lib/snaptrade/models/instrument.rb', line 35

def openapi_discriminator_mapping
  {
    :'crypto' => :'CryptoInstrument',
    :'etf' => :'EtfInstrument',
    :'future' => :'FutureInstrument',
    :'option' => :'OptionInstrument',
    :'other' => :'OtherInstrument',
    :'stock' => :'StockInstrument'
  }
end

.openapi_discriminator_nameObject

Discriminator’s property name (OpenAPI v3)



30
31
32
# File 'lib/snaptrade/models/instrument.rb', line 30

def openapi_discriminator_name
  :'kind'
end

.openapi_one_ofObject

List of class defined in oneOf (OpenAPI v3)



18
19
20
21
22
23
24
25
26
27
# File 'lib/snaptrade/models/instrument.rb', line 18

def openapi_one_of
  [
    :'CryptoInstrument',
    :'EtfInstrument',
    :'FutureInstrument',
    :'OptionInstrument',
    :'OtherInstrument',
    :'StockInstrument'
  ]
end