class Fcoin::Orders::BaseValidator
Attributes
amount[RW]
price[RW]
side[RW]
states[RW]
symbol[RW]
total[RW]
type[RW]
Public Class Methods
new(params)
click to toggle source
@param params [Hash] Parameter you want to verify including the called method name @option params :symbol [String or Symbol] Transaction pair @option params :side [String or Symbol] Direction of the transaction @option params :price [Float] @option params :total [Float] @option params :amount [Float] @option params :states [String] Order state
# File lib/fcoin/validator/orders/base_validator.rb, line 12 def initialize(params) self.symbol = params[:symbol] self.side = params[:side] self.price = params[:price] self.total = params[:total] self.amount = params[:amount] self.states = params[:states] end
Public Instance Methods
messages()
click to toggle source
Error message when invalid @abstract Subclass and override {#messages} to implement
# File lib/fcoin/validator/orders/base_validator.rb, line 29 def messages raise 'Please be implemented in inheriting.' end
valid?()
click to toggle source
Validate according to method_name @abstract Subclass and override {#valid?} to implement
# File lib/fcoin/validator/orders/base_validator.rb, line 23 def valid? raise 'Please be implemented in inheriting.' end
Private Instance Methods
max(type)
click to toggle source
# File lib/fcoin/validator/orders/base_validator.rb, line 70 def max(type) valid_symbol_setting_exist? ? valid_symbols[symbol][type].to_h[:max] : 0 end
min(type)
click to toggle source
# File lib/fcoin/validator/orders/base_validator.rb, line 66 def min(type) valid_symbol_setting_exist? ? valid_symbols[symbol][type].to_h[:min] : 0 end
valid_amount?()
click to toggle source
# File lib/fcoin/validator/orders/base_validator.rb, line 62 def valid_amount? amount.present? && amount.between?(min(:amount), max(:amount)) end
valid_price?()
click to toggle source
# File lib/fcoin/validator/orders/base_validator.rb, line 54 def valid_price? price.present? && price.between?(min(:price), max(:price)) end
valid_side?()
click to toggle source
# File lib/fcoin/validator/orders/base_validator.rb, line 41 def valid_side? side.to_s.in? valid_sides end
valid_sides()
click to toggle source
# File lib/fcoin/validator/orders/base_validator.rb, line 78 def valid_sides ::Settings.fcoin.validation.params.side end
valid_states()
click to toggle source
# File lib/fcoin/validator/orders/base_validator.rb, line 86 def valid_states ::Settings.fcoin.validation.params.states end
valid_states?()
click to toggle source
# File lib/fcoin/validator/orders/base_validator.rb, line 49 def valid_states? states_arr = states.to_s.gsub(' ','')&.split(',') states_arr.present? && states_arr.map { |state| state.in? valid_states }.all? end
valid_symbol?()
click to toggle source
# File lib/fcoin/validator/orders/base_validator.rb, line 37 def valid_symbol? symbol.present? end
valid_symbol_setting_exist?()
click to toggle source
# File lib/fcoin/validator/orders/base_validator.rb, line 74 def valid_symbol_setting_exist? valid_symbols[symbol].present? end
valid_symbols()
click to toggle source
@abstract Subclass and override {#valid_symbols} to implement
# File lib/fcoin/validator/orders/base_validator.rb, line 91 def valid_symbols raise 'Please be implemented in inheriting.' end
valid_total?()
click to toggle source
# File lib/fcoin/validator/orders/base_validator.rb, line 58 def valid_total? total.present? && total.between?(min(:total), max(:total)) end
valid_type?()
click to toggle source
# File lib/fcoin/validator/orders/base_validator.rb, line 45 def valid_type? type.to_s.in? valid_types end
valid_types()
click to toggle source
# File lib/fcoin/validator/orders/base_validator.rb, line 82 def valid_types ::Settings.fcoin.validation.params.type end