class Pingdom::Validator

Attributes

input[RW]

Public Instance Methods

validate(input: , permit: , params: @input= input.first || {}) click to toggle source
# File lib/pingdom/validator.rb, line 6
def validate input: , permit: , params:
  @input= input.first || {}
  @permit=permit
  @params=params

  params.merge(format)
end

Private Instance Methods

filter() click to toggle source
# File lib/pingdom/validator.rb, line 16
def filter
  input.select do |k,v|
    permit.keys.include?k and !v.nil?
  end
end
format() click to toggle source
# File lib/pingdom/validator.rb, line 28
def format
  validate_all.each_pair.map do |key, value|
    value=value.to_i if permit[key]==:valid_time?
    value=value.to_s if permit[key]==:valid_boolean?
    [key, value]
  end.to_h
end
valid_boolean?(bool) click to toggle source
# File lib/pingdom/validator.rb, line 52
def valid_boolean? bool
  bool.is_a?(TrueClass) || bool.is_a?(FalseClass)
end
valid_int_list?(int_list) click to toggle source
# File lib/pingdom/validator.rb, line 56
def valid_int_list? int_list

  list=int_list.split(',')
  raise 'Not valid list' if list.empty?

  list.each do |i|
    raise "Not valid Integer" if Integer(i)!=i.to_i
  end

  true
rescue
  false
end
valid_order?(order) click to toggle source
# File lib/pingdom/validator.rb, line 44
def valid_order? order
  ['asc','desc'].include? order
end
valid_positive_int?(value) click to toggle source
# File lib/pingdom/validator.rb, line 40
def valid_positive_int? value
  value.is_a? Integer and value>=0
end
valid_resolution?(resolution) click to toggle source
# File lib/pingdom/validator.rb, line 48
def valid_resolution? resolution
  %q(hour day week).include? resolution
end
valid_str_list?(str_list) click to toggle source
# File lib/pingdom/validator.rb, line 70
def valid_str_list? str_list

  list=str_list.split(',')
  raise 'Not valid list' if list.empty? || str_list.count(' ')>0

  true
rescue
  false
end
valid_time?(time) click to toggle source
# File lib/pingdom/validator.rb, line 36
def valid_time? time
  time.is_a? Time
end
validate_all() click to toggle source
# File lib/pingdom/validator.rb, line 22
def validate_all
  filter.each_pair do |key, value|
    raise "'#{key}' param with value: '#{value}', cannot pass the '#{permit[key]}' validation" unless send(permit[key], value)
  end
end