Sha256: 120c1718e77220b2471db8a8e03fb3da6357ca9fb9dacc07cfe5a5414f09a64e
Contents?: true
Size: 1.44 KB
Versions: 2
Compression:
Stored size: 1.44 KB
Contents
# encoding: UTF-8 # Copyright 2012 Twitter, Inc # http://www.apache.org/licenses/LICENSE-2.0 module TwitterCldr module Shared class InvalidTerritoryError < StandardError; end class PostalCodes class << self def territories resource.keys end def for_territory(territory) key = territory.to_s.downcase.to_sym if res = resource[key] territory_cache[key] ||= begin new( territory, res[:regex], TwitterCldr::Utils::RegexpAst.load(res[:ast]) ) end else raise InvalidTerritoryError, "invalid territory" end end private def territory_cache @territory_cache ||= {} end def resource @resource ||= TwitterCldr.get_resource(:shared, :postal_codes) end end attr_reader :territory, :regexp, :ast def initialize(territory, regexp, ast) @territory = territory @regexp = regexp @ast = ast end def valid?(postal_code) !!(regexp && regexp =~ postal_code) end def sample(sample_size = 1) generator.sample(sample_size) end private def generator generator_cache[territory] ||= PostalCodeGenerator.new(ast) end def generator_cache @@generator_cache ||= {} end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
twitter_cldr-3.0.3 | lib/twitter_cldr/shared/postal_codes.rb |
twitter_cldr-3.0.2 | lib/twitter_cldr/shared/postal_codes.rb |