-
Notifications
You must be signed in to change notification settings - Fork 3
/
address.gleam
70 lines (56 loc) · 1.29 KB
/
address.gleam
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import gleam/int
import gleam/string
import blah/locales/fa/address
import blah/utils.{get_random_item}
import blah/fa/string as blah_string
pub fn country() {
get_random_item(address.countries)
}
pub fn province() {
get_random_item(address.provinces)
}
pub fn city() {
get_random_item(address.cities)
}
pub fn street() {
let nonce = int.random(4, 2048)
let prefix = get_random_item(address.street_prefixes)
let street = get_random_item(address.streets)
let street =
[prefix, street]
|> string.join(" ")
case nonce % 2 {
0 -> street
1 -> {
let prefix = get_random_item(address.alley_prefixes)
let alley = get_random_item(address.streets)
let alley =
[prefix, alley]
|> string.join(" ")
[street, alley]
|> string.join("، ")
}
}
}
pub fn postal_code() {
blah_string.with_pattern("%n%d%d%d%d-%n%d%d%d%d")
}
pub fn floor() {
let length = int.random(1, 2)
let floor = blah_string.numeric(length)
["طبقهی", floor]
|> string.join(" ")
}
pub fn unit() {
let length = int.random(1, 3)
let unit = blah_string.numeric(length)
["واحد", unit]
|> string.join(" ")
}
pub fn direction() {
get_random_item(address.directions)
}
pub fn full_address() {
[street(), floor(), unit()]
|> string.join("، ")
}