class Stattleship::Validators::BaseValidator

Attributes

class_name[R]
key[R]
params[R]

Public Class Methods

new(key:, params:, class_name:) click to toggle source
# File lib/stattleship/validators/base_validator.rb, line 4
def initialize(key:, params:, class_name:)
  @class_name = class_name
  @key = key
  @params = params
end

Public Instance Methods

validate() click to toggle source
# File lib/stattleship/validators/base_validator.rb, line 10
def validate
  raise 'Validator subclass must implement validate method'
end
validates_date() click to toggle source
# File lib/stattleship/validators/base_validator.rb, line 14
def validates_date
  if value.is_a?(Date)
    return
  else
    fail ArgumentError.new("expected #{key} to be a Date")
  end
end
validates_league_prefix() click to toggle source
# File lib/stattleship/validators/base_validator.rb, line 38
def validates_league_prefix
  if blank?(value)
    return
  elsif blank?(league_prefix)
    return
  else
    if value.start_with?("#{league_prefix}-")
      return
    end
  end

  fail ArgumentError.
    new("expected #{key} to start with '#{league_prefix}'")
end
validates_positive_integer() click to toggle source
# File lib/stattleship/validators/base_validator.rb, line 30
def validates_positive_integer
  if value.is_a?(Integer) && value > 0
    return
  else
    fail ArgumentError.new("expected #{key} to be an integer > 0")
  end
end
validates_positive_or_zero_integer() click to toggle source
# File lib/stattleship/validators/base_validator.rb, line 22
def validates_positive_or_zero_integer
  if value.is_a?(Integer) && value >= 0
    return
  else
    fail ArgumentError.new("expected #{key} to be an integer >= 0")
  end
end
validates_sport_prefix() click to toggle source
# File lib/stattleship/validators/base_validator.rb, line 53
def validates_sport_prefix
  if blank?(value)
    return
  elsif blank?(sport_prefix)
    return
  else
    if value.start_with?("#{sport_prefix}") || value.start_with?("#{sport_prefix}_")
      return
    end
  end

  fail ArgumentError.
    new("expected #{key} to start with '#{sport_prefix}'")
end

Private Instance Methods

blank?(value) click to toggle source
# File lib/stattleship/validators/base_validator.rb, line 72
def blank?(value)
  value.to_s.strip == ''
end
league_prefix() click to toggle source
# File lib/stattleship/validators/base_validator.rb, line 88
def league_prefix
  if query_parameter_class.start_with?('Baseball')
    'mlb'
  elsif query_parameter_class.start_with?('Basketball')
    'nba'
  elsif query_parameter_class.start_with?('Football')
    'nfl'
  elsif query_parameter_class.start_with?('Hockey')
    'nhl'
  else
    ''
  end
end
present?(value) click to toggle source
# File lib/stattleship/validators/base_validator.rb, line 76
def present?(value)
  !blank?(value)
end
query_parameter_class() click to toggle source
# File lib/stattleship/validators/base_validator.rb, line 84
def query_parameter_class
  class_name.split('::').last
end
sport_prefix() click to toggle source
# File lib/stattleship/validators/base_validator.rb, line 102
def sport_prefix
  if query_parameter_class.start_with?('Baseball')
    'baseball'
  elsif query_parameter_class.start_with?('Basketball')
    'basketball'
  elsif query_parameter_class.start_with?('Football')
    'football'
  elsif query_parameter_class.start_with?('Hockey')
    'hockey'
  else
    ''
  end
end
value() click to toggle source
# File lib/stattleship/validators/base_validator.rb, line 80
def value
  params[key]
end