Class: SchwabRb::DataObjects::OrderPreview::CommissionAndFee
- Inherits:
-
Object
- Object
- SchwabRb::DataObjects::OrderPreview::CommissionAndFee
- Defined in:
- lib/schwab_rb/data_objects/order_preview.rb
Instance Attribute Summary collapse
-
#commission ⇒ Object
readonly
Returns the value of attribute commission.
-
#commissions ⇒ Object
readonly
Returns the value of attribute commissions.
-
#fee ⇒ Object
readonly
Returns the value of attribute fee.
-
#fees ⇒ Object
readonly
Returns the value of attribute fees.
-
#true_commission ⇒ Object
readonly
Returns the value of attribute true_commission.
Instance Method Summary collapse
- #commission_total ⇒ Object
- #commission_value ⇒ Object
- #fee_total ⇒ Object
- #fee_value ⇒ Object
-
#initialize(attrs) ⇒ CommissionAndFee
constructor
A new instance of CommissionAndFee.
- #to_h ⇒ Object
- #true_commission_value ⇒ Object
Constructor Details
#initialize(attrs) ⇒ CommissionAndFee
Returns a new instance of CommissionAndFee.
148 149 150 151 152 153 154 |
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 148 def initialize(attrs) @commission = attrs[:commission]&.to_f @commissions = attrs[:commissions] || [] @fee = attrs[:fee]&.to_f @fees = attrs[:fees] || [] @true_commission = attrs[:trueCommission]&.to_f end |
Instance Attribute Details
#commission ⇒ Object (readonly)
Returns the value of attribute commission.
146 147 148 |
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 146 def commission @commission end |
#commissions ⇒ Object (readonly)
Returns the value of attribute commissions.
146 147 148 |
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 146 def commissions @commissions end |
#fee ⇒ Object (readonly)
Returns the value of attribute fee.
146 147 148 |
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 146 def fee @fee end |
#fees ⇒ Object (readonly)
Returns the value of attribute fees.
146 147 148 |
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 146 def fees @fees end |
#true_commission ⇒ Object (readonly)
Returns the value of attribute true_commission.
146 147 148 |
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 146 def true_commission @true_commission end |
Instance Method Details
#commission_total ⇒ Object
156 157 158 |
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 156 def commission_total calculate_total_from_legs(@commissions, "COMMISSION") end |
#commission_value ⇒ Object
160 161 162 |
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 160 def commission_value @commission || commission_total end |
#fee_total ⇒ Object
164 165 166 |
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 164 def fee_total calculate_total_from_legs(@fees, %w[OPT_REG_FEE INDEX_OPTION_FEE]) end |
#fee_value ⇒ Object
168 169 170 |
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 168 def fee_value @fee || fee_total end |
#to_h ⇒ Object
176 177 178 179 180 181 182 183 184 |
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 176 def to_h { commission: @commission, fee: @fee, trueCommission: @true_commission, commissions: @commissions, fees: @fees } end |
#true_commission_value ⇒ Object
172 173 174 |
# File 'lib/schwab_rb/data_objects/order_preview.rb', line 172 def true_commission_value @true_commission || (commission_total * 2) end |