class Fcoin::Orders::CreateOrderLimitValidator
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 :amount [Float]
# File lib/fcoin/validator/orders/create_order_limit_validator.rb, line 14 def initialize(params) self.symbol = params[:symbol] self.side = params[:side] self.price = params[:price] self.amount = params[:amount] end
Public Instance Methods
messages()
click to toggle source
Error message when invalid
# File lib/fcoin/validator/orders/create_order_limit_validator.rb, line 31 def messages return {} if valid? results = [] results << presence_error_message(symbol, :symbol) unless valid_symbol? results << includes_error_message(side, :side, valid_sides) unless valid_side? if valid_symbol_setting_exist? results << between_error_message(price, :price, min(:price), max(:price)) unless valid_price? results << between_error_message(amount, :amount, min(:amount), max(:amount)) unless valid_amount? end results.compact&.each_with_object({}) { |message, data| data.merge!(message) } end
valid?()
click to toggle source
Validate according to method_name
# File lib/fcoin/validator/orders/create_order_limit_validator.rb, line 22 def valid? if valid_symbol_setting_exist? valid_price? && valid_amount? else valid_symbol? && valid_side? end end
Private Instance Methods
valid_symbols()
click to toggle source
# File lib/fcoin/validator/orders/create_order_limit_validator.rb, line 46 def valid_symbols return HashWithIndifferentAccess.new unless valid_side? ::Settings.fcoin.validation.limit[side].to_h.values.flatten.compact.each_with_object(HashWithIndifferentAccess.new) do |setting, data| data[setting.symbol] = setting end end