class Holidays::Definition::Validator::Region

Attributes

regions_repo[R]

Public Class Methods

new(regions_repo) click to toggle source
# File lib/holidays/definition/validator/region.rb, line 5
def initialize(regions_repo)
  @regions_repo = regions_repo
end

Public Instance Methods

valid?(r) click to toggle source
# File lib/holidays/definition/validator/region.rb, line 9
def valid?(r)
  return false unless r.is_a?(Symbol)

  region = find_wildcard_base(r)

  (region == :any ||
   regions_repo.exists?(region) ||
   region_in_static_definitions?(region))
end

Private Instance Methods

find_wildcard_base(region) click to toggle source

Ex: :gb_ transformed to :gb

# File lib/holidays/definition/validator/region.rb, line 24
def find_wildcard_base(region)
  r = region.to_s

  if r =~ /_$/
    base = r.split('_').first
  else
    base = r
  end

  base.to_sym
end
region_in_static_definitions?(region) click to toggle source
# File lib/holidays/definition/validator/region.rb, line 36
def region_in_static_definitions?(region)
  static_regions_definition = "#{DEFINITIONS_PATH}/REGIONS.rb"
  require static_regions_definition

  Holidays::REGIONS.include?(region)
end