Module: Vydumschik::Address
- Defined in:
- lib/vydumschik/address.rb
Overview
This module generates random addresses
Constant Summary collapse
- MAX_APT =
Maximum number of apartments in building
100
- BUILDING_LIMITS =
Maximum number of buildings for different types of streets
{:street => 50, :alley => 10, :avenue => 120, :square => 10, :other => 20}
- HOUSE_PROBABILITY =
Probability of building without apartments
0.2
- MODIFIER_PROBABILITY =
Probability of building number having a modifier
0.05
- BUILDING_MODIFIERS =
Building number modifiers
%w(а б в г д)
Class Method Summary collapse
-
.apartment ⇒ Object
Returns a random apartment number.
-
.building(limit = BUILDING_LIMITS[:other]) ⇒ Object
Returns a random building number.
-
.street ⇒ Object
Returns a random street name.
-
.street_address ⇒ Object
Returns a random street address.
Class Method Details
.apartment ⇒ Object
Returns a random apartment number
36 37 38 |
# File 'lib/vydumschik/address.rb', line 36 def self.apartment (1+rand(MAX_APT)).to_s end |
.building(limit = BUILDING_LIMITS[:other]) ⇒ Object
Returns a random building number
29 30 31 32 33 |
# File 'lib/vydumschik/address.rb', line 29 def self.building(limit = BUILDING_LIMITS[:other]) bld = (1+rand(limit)).to_s bld+='-'+BUILDING_MODIFIERS[rand BUILDING_MODIFIERS.length] if rand<MODIFIER_PROBABILITY bld end |
.street ⇒ Object
Returns a random street name
24 25 26 |
# File 'lib/vydumschik/address.rb', line 24 def self.street data[:streets][rand data[:streets].length][:name] end |
.street_address ⇒ Object
Returns a random street address
41 42 43 44 45 46 47 48 49 50 |
# File 'lib/vydumschik/address.rb', line 41 def self.street_address street = data[:streets][rand data[:streets].length] bld = building(BUILDING_LIMITS[street[:type]]) if rand>0.5 apt = (rand<HOUSE_PROBABILITY) ? bld : bld+'/'+apartment else apt = (rand<HOUSE_PROBABILITY) ? "д. #{bld}" : "д. #{bld}, кв. #{apartment}" end "#{street[:name]}, #{apt}" end |