class Belka::Address

Constants

ApartmentFormats
BuildingFormats

Public Class Methods

address() click to toggle source
# File lib/belka/address.rb, line 50
def address
  building  = Belka.pick(1..200)
  apartment = Belka.pick(1..300)
  separator = Belka.pick([' ', ', '])

  street + separator +
    if rand(10) < 2
      "#{building}-#{apartment}"
    else
      formatter = lambda do |fmts, num|
        Belka.weighted_pick(fmts).gsub('#', num.to_s).gsub('?', Belka.pick(1..9).to_s)
      end

      building  = formatter.call(BuildingFormats, building)
      apartment = formatter.call(ApartmentFormats, apartment)

      "#{building}#{separator}#{apartment}"
    end
end
city() click to toggle source
# File lib/belka/address.rb, line 9
def city
  Belka.pick(Data::AllCities).gsub('_', ' ')
end
full_city() click to toggle source
# File lib/belka/address.rb, line 13
def full_city
  cty = Belka.pick(Data::AllCities)
  h_cty = cty.gsub('_', ' ')

  region = Belka.pick(Data::RegionByCities[cty])

  if Data::CitiesByRegion[region].first == cty
    "г. #{h_cty}"
  else
    "#{region}, г. #{h_cty}"
  end
end
index() click to toggle source
# File lib/belka/address.rb, line 5
def index
  Belka.pick(220000...224033)
end
postal() click to toggle source
# File lib/belka/address.rb, line 70
def postal
  "#{index}, #{full_city}, #{address}"
end
street() click to toggle source
# File lib/belka/address.rb, line 26
def street
  Belka.pick(Data::StreetNames)
end