class TwitterCldr::Shared::PostalCodeGenerator

Constants

SAMPLE_MULTIPLIER

Public Class Methods

new(regexp_ast) click to toggle source
# File lib/twitter_cldr/shared/postal_code_generator.rb, line 14
def initialize(regexp_ast)
  @regexp_generator = TwitterCldr::Utils::RegexpSampler.new(regexp_ast)
end

Public Instance Methods

generate() click to toggle source
# File lib/twitter_cldr/shared/postal_code_generator.rb, line 18
def generate
  clean_result(@regexp_generator.generate)
end
sample(sample_size = 1) click to toggle source
# File lib/twitter_cldr/shared/postal_code_generator.rb, line 22
def sample(sample_size = 1)
  sample_set = Set.new
  counter = 1

  until sample_set.size == sample_size
    sample = generate
    sample_set << sample unless sample.empty?
    counter += 1

    # Stop if the number of attempted generations is
    # n times more than requested. Some territories only
    # have one postal code, so if the user asks for 10
    # they'll get an infinite loop.
    break if counter > sample_size * SAMPLE_MULTIPLIER
  end

  sample_set.to_a
end

Private Instance Methods

clean_result(str) click to toggle source

remove spaces that trail a dash

# File lib/twitter_cldr/shared/postal_code_generator.rb, line 44
def clean_result(str)
  str.gsub(/- /, '-')
end