class Holidays::Definition::Generator::Regions
def call(regions)
def call(regions) validate!(regions) <<-EOF ng: utf-8 olidays S = #{to_array(regions)} _REGION_LOOKUP = #{generate_parent_lookup(regions)} end
def generate_parent_lookup(regions)
def generate_parent_lookup(regions) lookup = {} regions.each do |region, subregions| subregions.each do |subregion| parent_region = NORTH_AMERICA_REGIONS.include?(subregion) ? subregion : region lookup[subregion] = parent_region unless lookup.has_key?(subregion) end end pairs = lookup.map { |k, v| "#{k}: :#{v}" }.join(", ") "{#{pairs}}" end
def to_array(regions)
def to_array(regions) all_regions = [] regions.each do |region, subregions| all_regions << subregions end all_regions.flatten.uniq end
def validate!(regions)
def validate!(regions) raise ArgumentError.new("regions cannot be missing") if regions.nil? raise ArgumentError.new("regions must be a hash") unless regions.is_a?(Hash) raise ArgumentError.new("regions cannot be empty") if regions.empty? end