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
38 39 40 |
# File 'lib/vydumschik/address.rb', line 38 def self.apartment (1+rand(MAX_APT)).to_s end |
.building(limit = BUILDING_LIMITS[:other]) ⇒ Object
Returns a random building number
31 32 33 34 35 |
# File 'lib/vydumschik/address.rb', line 31 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
26 27 28 |
# File 'lib/vydumschik/address.rb', line 26 def self.street data[:streets][rand data[:streets].length][:name] end |
.street_address ⇒ Object
Returns a random street address
43 44 45 46 47 48 49 50 51 52 |
# File 'lib/vydumschik/address.rb', line 43 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 |