Class: SchwabRb::DataObjects::OrderPreview::CommissionAndFee

Inherits:
Object
  • Object
show all
Defined in:
lib/schwab_rb/data_objects/order_preview.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attrs) ⇒ CommissionAndFee

Returns a new instance of CommissionAndFee.



164
165
166
167
168
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 164

def initialize(attrs)
  @commissions = attrs[:commission][:commissionLegs] || []
  @fees = attrs[:fee][:feeLegs] || []
  @true_commission_legs = attrs[:trueCommission][:commissionLegs] || []
end

Instance Attribute Details

#commissionsObject (readonly)

Returns the value of attribute commissions.



162
163
164
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 162

def commissions
  @commissions
end

#feesObject (readonly)

Returns the value of attribute fees.



162
163
164
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 162

def fees
  @fees
end

#true_commission_legsObject (readonly)

Returns the value of attribute true_commission_legs.



162
163
164
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 162

def true_commission_legs
  @true_commission_legs
end

Instance Method Details

#commissionObject



170
171
172
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 170

def commission
  calculate_total_from_legs(@commissions, "COMMISSION")
end

#feeObject



174
175
176
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 174

def fee
  calculate_total_from_legs(@fees, %w[OPT_REG_FEE INDEX_OPTION_FEE])
end

#to_hObject



182
183
184
185
186
187
188
189
190
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 182

def to_h
  {
    commission: commission,
    fee: fee,
    trueCommission: true_commission,
    commissions: @commissions,
    fees: @fees
  }
end

#true_commissionObject



178
179
180
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 178

def true_commission
  calculate_total_from_legs(@true_commission_legs, "COMMISSION")
end