ffaker 2.12.0 → 2.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Changelog.md +28 -0
- data/README.md +8 -1
- data/REFERENCE.md +1365 -1234
- data/Rakefile +0 -6
- data/ffaker.gemspec +14 -5
- data/lib/ffaker.rb +12 -6
- data/lib/ffaker/address_fr.rb +5 -1
- data/lib/ffaker/address_nl.rb +1 -3
- data/lib/ffaker/address_us.rb +22 -2
- data/lib/ffaker/{animals.rb → animal.rb} +0 -0
- data/lib/ffaker/{animals_cn.rb → animal_cn.rb} +0 -0
- data/lib/ffaker/animal_es.rb +12 -0
- data/lib/ffaker/{animals_us.rb → animal_us.rb} +0 -0
- data/lib/ffaker/bank.rb +15 -3
- data/lib/ffaker/code.rb +17 -0
- data/lib/ffaker/color_pl.rb +14 -0
- data/lib/ffaker/company_ja.rb +24 -0
- data/lib/ffaker/data/address_fr/region +27 -0
- data/lib/ffaker/data/address_ja/city +0 -23
- data/lib/ffaker/data/address_us/state_abbr +0 -1
- data/lib/ffaker/data/animal_es/common_names +135 -0
- data/lib/ffaker/data/bank/card_types +12 -0
- data/lib/ffaker/data/book/nouns +2 -2
- data/lib/ffaker/data/color_pl/names_list +122 -0
- data/lib/ffaker/data/filesystem/extension +31 -31
- data/lib/ffaker/data/movie/nouns +2 -2
- data/lib/ffaker/data/name/first_names_female +0 -230
- data/lib/ffaker/data/name/first_names_male +0 -37
- data/lib/ffaker/data/sport_pl/summer +53 -0
- data/lib/ffaker/data/sport_pl/winter +14 -0
- data/lib/ffaker/data/vehicle/color_prefixes +25 -0
- data/lib/ffaker/education.rb +4 -8
- data/lib/ffaker/education_cn.rb +3 -6
- data/lib/ffaker/filesystem.rb +7 -7
- data/lib/ffaker/identification_in.rb +15 -0
- data/lib/ffaker/identification_kr.rb +2 -2
- data/lib/ffaker/identification_mx.rb +1 -1
- data/lib/ffaker/identification_pl.rb +77 -0
- data/lib/ffaker/identification_tw.rb +23 -0
- data/lib/ffaker/internet.rb +4 -6
- data/lib/ffaker/internet_se.rb +1 -1
- data/lib/ffaker/name_mx.rb +2 -2
- data/lib/ffaker/phone_number_br.rb +2 -2
- data/lib/ffaker/product.rb +1 -1
- data/lib/ffaker/sport_pl.rb +25 -0
- data/lib/ffaker/ssn.rb +1 -3
- data/lib/ffaker/string.rb +5 -5
- data/lib/ffaker/unit.rb +9 -10
- data/lib/ffaker/unit_english.rb +18 -19
- data/lib/ffaker/unit_metric.rb +15 -16
- data/lib/ffaker/utils/random_utils.rb +2 -0
- data/lib/ffaker/utils/unique_utils.rb +0 -2
- data/lib/ffaker/vehicle.rb +1 -6
- data/lib/version.rb +5 -0
- data/scripts/benchmark.rb +10 -11
- data/test/helper.rb +35 -0
- data/test/test_address_au.rb +2 -2
- data/test/test_address_br.rb +1 -1
- data/test/test_address_fi.rb +2 -2
- data/test/test_address_fr.rb +1 -1
- data/test/test_address_id.rb +1 -1
- data/test/test_address_ja.rb +1 -1
- data/test/test_address_nl.rb +1 -1
- data/test/test_address_se.rb +2 -2
- data/test/test_address_us.rb +9 -0
- data/test/test_animal_es.rb +17 -0
- data/test/test_array_utils.rb +0 -1
- data/test/test_aws.rb +1 -1
- data/test/test_bank.rb +41 -5
- data/test/test_book.rb +4 -4
- data/test/test_code.rb +22 -1
- data/test/test_color_pl.rb +13 -0
- data/test/test_company_ja.rb +28 -0
- data/test/{test_faker.rb → test_ffaker.rb} +5 -1
- data/test/test_filesystem.rb +11 -3
- data/test/test_geolocation.rb +2 -2
- data/test/test_healthcare_ru.rb +1 -1
- data/test/test_html_ipsum.rb +1 -1
- data/test/test_identification_co.rb +2 -2
- data/test/test_identification_es_cl.rb +1 -1
- data/test/test_identification_in.rb +20 -0
- data/test/test_identification_pl.rb +28 -0
- data/test/test_identification_tw.rb +17 -0
- data/test/test_image.rb +3 -3
- data/test/test_internet.rb +9 -9
- data/test/test_internet_se.rb +1 -1
- data/test/test_job_cn.rb +1 -1
- data/test/test_job_ja.rb +1 -1
- data/test/test_job_kr.rb +1 -1
- data/test/test_job_vn.rb +1 -1
- data/test/test_lorem_cn.rb +6 -6
- data/test/test_lorem_ja.rb +3 -3
- data/test/test_lorem_pl.rb +1 -1
- data/test/test_lorem_ru.rb +1 -1
- data/test/test_lorem_ua.rb +1 -1
- data/test/test_music.rb +4 -4
- data/test/test_name_da.rb +3 -3
- data/test/test_phone_number_se.rb +2 -2
- data/test/test_sport_pl.rb +30 -0
- data/test/test_ssn_se.rb +6 -8
- data/test/test_string.rb +3 -3
- data/test/test_time.rb +13 -6
- data/test/test_tweet.rb +9 -9
- data/test/test_vehicle.rb +2 -2
- metadata +201 -162
- data/lib/ffaker/data/address_jp/city +0 -127
- data/lib/ffaker/data/address_jp/designated_city +0 -20
- data/lib/ffaker/data/address_jp/street +0 -37
- data/lib/ffaker/data/address_jp/tokyo_ward +0 -23
- data/lib/ffaker/data/address_jp/village +0 -183
- data/lib/ffaker/data/address_jp/ward +0 -188
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module FFaker
|
|
4
|
+
module IdentificationTW
|
|
5
|
+
extend ModuleUtils
|
|
6
|
+
extend self
|
|
7
|
+
|
|
8
|
+
AREA_CODE = { a: 10, b: 11, c: 12, d: 13, e: 14, f: 15, g: 16, h: 17, i: 34, j: 18, k: 19, l: 20, m: 21, n: 22, o: 35, p: 23, q: 24, r: 25, s: 26, t: 27, u: 28, v: 29, w: 30, x: 31, y: 32, z: 33 }.freeze
|
|
9
|
+
|
|
10
|
+
# Identity Card Number
|
|
11
|
+
# https://en.wikipedia.org/wiki/National_identification_card_(Taiwan)#Identity_card_number
|
|
12
|
+
def id
|
|
13
|
+
letter = FFaker.letterify('?')
|
|
14
|
+
code = AREA_CODE[letter.to_sym]
|
|
15
|
+
gender = fetch_sample([1, 2])
|
|
16
|
+
serial = FFaker.numerify('#######')
|
|
17
|
+
a, b, c, d, e, f, g, h, i, j = "#{code}#{gender}#{serial}".split(//).map(&:to_i)
|
|
18
|
+
|
|
19
|
+
checksum = (9 * a + b + 2 * c + 3 * d + 4 * e + 5 * f + 6 * g + 7 * h + 8 * i + 9 * j) % 10
|
|
20
|
+
"#{letter.upcase}#{gender}#{serial}#{checksum}"
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
data/lib/ffaker/internet.rb
CHANGED
|
@@ -5,7 +5,7 @@ module FFaker
|
|
|
5
5
|
extend ModuleUtils
|
|
6
6
|
extend self
|
|
7
7
|
|
|
8
|
-
BYTE =
|
|
8
|
+
BYTE = Array('0'..'255').freeze
|
|
9
9
|
HOSTS = %w[gmail.com yahoo.com hotmail.com].freeze
|
|
10
10
|
DISPOSABLE_HOSTS = %w[
|
|
11
11
|
mailinator.com suremail.info spamherelots.com binkmail.com safetymail.info
|
|
@@ -39,7 +39,7 @@ module FFaker
|
|
|
39
39
|
|
|
40
40
|
return sanitize(Name.first_name) if rand(0..1).zero?
|
|
41
41
|
|
|
42
|
-
[Name.first_name, Name.last_name].join(fetch_sample(%w[. _]))
|
|
42
|
+
[sanitize(Name.first_name), sanitize(Name.last_name)].join(fetch_sample(%w[. _]))
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
def domain_name
|
|
@@ -47,9 +47,7 @@ module FFaker
|
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
def domain_word
|
|
50
|
-
|
|
51
|
-
dw.gsub!(/\W/, '')
|
|
52
|
-
dw.downcase
|
|
50
|
+
sanitize(Company.name.split(' ').first)
|
|
53
51
|
end
|
|
54
52
|
|
|
55
53
|
def domain_suffix
|
|
@@ -75,7 +73,7 @@ module FFaker
|
|
|
75
73
|
end
|
|
76
74
|
|
|
77
75
|
def password(min_length = 8, max_length = 16)
|
|
78
|
-
length = min_length > max_length ? min_length : fetch_sample(
|
|
76
|
+
length = min_length > max_length ? min_length : fetch_sample(min_length..max_length)
|
|
79
77
|
String.from_regexp(/\w{#{length}}/)
|
|
80
78
|
end
|
|
81
79
|
|
data/lib/ffaker/internet_se.rb
CHANGED
data/lib/ffaker/name_mx.rb
CHANGED
|
@@ -26,7 +26,7 @@ module FFaker
|
|
|
26
26
|
# Full name with prefix according to gender, possibly with middle_name
|
|
27
27
|
def full_name_prefix(gender = :any)
|
|
28
28
|
case gender
|
|
29
|
-
when :any
|
|
29
|
+
when :any
|
|
30
30
|
case rand(0..8)
|
|
31
31
|
when 0, 3, 6, 8 then "#{female_prefix} #{female_name} #{paternal_last_names}"
|
|
32
32
|
else "#{male_prefix} #{male_name} #{paternal_last_names}"
|
|
@@ -40,7 +40,7 @@ module FFaker
|
|
|
40
40
|
# Full name with no prefix according to gender, possibly with middle_name
|
|
41
41
|
def full_name_no_prefix(gender = :any)
|
|
42
42
|
case gender
|
|
43
|
-
when :any
|
|
43
|
+
when :any
|
|
44
44
|
case rand(0..8)
|
|
45
45
|
when 0, 3, 6, 8 then "#{female_name} #{paternal_last_names}"
|
|
46
46
|
else "#{male_name} #{paternal_last_names}"
|
|
@@ -14,8 +14,8 @@ module FFaker
|
|
|
14
14
|
|
|
15
15
|
COUNTRY_PREFIX = '+55'
|
|
16
16
|
AREA_CODE = [
|
|
17
|
-
|
|
18
|
-
51
|
|
17
|
+
11..19, 21..22, 24, 27..28, 31..35, 37..38, 41..49,
|
|
18
|
+
51, 53..55, 61..69, 71, 73..75, 77, 79, 81..89, 91..99
|
|
19
19
|
].flat_map { |x| Array(x) }.map(&:to_s).freeze
|
|
20
20
|
|
|
21
21
|
HOME_WORK_PHONE_PREFIX = %w[2 3 4 5].freeze
|
data/lib/ffaker/product.rb
CHANGED
|
@@ -14,7 +14,7 @@ module FFaker
|
|
|
14
14
|
def brand
|
|
15
15
|
case rand(0..11)
|
|
16
16
|
when (0..4) then fetch_sample(B1) + fetch_sample(B2)
|
|
17
|
-
when (5..10)
|
|
17
|
+
when (5..10)
|
|
18
18
|
[
|
|
19
19
|
fetch_sample(START), fetch_sample(VOWELS), fetch_sample(SUFFIX),
|
|
20
20
|
rand(0..1).zero? ? fetch_sample(ADDON) : nil
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module FFaker
|
|
4
|
+
# Inspirations:
|
|
5
|
+
# https://pl.wikipedia.org/wiki/Kategoria:Dyscypliny_sportowe
|
|
6
|
+
# https://pl.wikipedia.org/wiki/Igrzyska_olimpijskie
|
|
7
|
+
module SportPL
|
|
8
|
+
extend ModuleUtils
|
|
9
|
+
extend self
|
|
10
|
+
|
|
11
|
+
ALL = SUMMER + WINTER
|
|
12
|
+
|
|
13
|
+
def name
|
|
14
|
+
fetch_sample(ALL)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def summer
|
|
18
|
+
fetch_sample(SUMMER)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def winter
|
|
22
|
+
fetch_sample(WINTER)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
data/lib/ffaker/ssn.rb
CHANGED
data/lib/ffaker/string.rb
CHANGED
|
@@ -8,10 +8,10 @@ module FFaker
|
|
|
8
8
|
BACKSLASH = '\\'
|
|
9
9
|
DASH = '-'
|
|
10
10
|
|
|
11
|
-
LOWERS =
|
|
12
|
-
UPPERS =
|
|
11
|
+
LOWERS = Array('a'..'z').freeze
|
|
12
|
+
UPPERS = Array('A'..'Z').freeze
|
|
13
13
|
LETTERS = LOWERS + UPPERS
|
|
14
|
-
NUMBERS =
|
|
14
|
+
NUMBERS = Array('0'..'9').freeze
|
|
15
15
|
WORD_CHARS = LETTERS + NUMBERS + ['_']
|
|
16
16
|
SPACES = [' ', "\t"].freeze
|
|
17
17
|
ESCAPEABLE_CHARS = ['\\', '/', '.', '(', ')', '[', ']', '{', '}'].freeze
|
|
@@ -34,7 +34,7 @@ module FFaker
|
|
|
34
34
|
while tokens.any?
|
|
35
35
|
token = tokens.shift
|
|
36
36
|
if token == DASH && tokens.first && result.last
|
|
37
|
-
result +=
|
|
37
|
+
result += Array(result.pop..tokens.shift)
|
|
38
38
|
elsif token == BACKSLASH
|
|
39
39
|
result << special(tokens.shift)
|
|
40
40
|
else
|
|
@@ -50,7 +50,7 @@ module FFaker
|
|
|
50
50
|
token = tokens.shift
|
|
51
51
|
|
|
52
52
|
case token
|
|
53
|
-
when '?'
|
|
53
|
+
when '?'
|
|
54
54
|
# TODO: Let ? generate nothing
|
|
55
55
|
'' # We already printed its target
|
|
56
56
|
when '+' then
|
data/lib/ffaker/unit.rb
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'ostruct'
|
|
4
|
-
|
|
5
3
|
module FFaker
|
|
6
4
|
module Unit
|
|
7
5
|
extend ModuleUtils
|
|
@@ -10,9 +8,10 @@ module FFaker
|
|
|
10
8
|
TIME_UNITS = [
|
|
11
9
|
{ name: 'Years', abbreviation: 'yr' },
|
|
12
10
|
{ name: 'Days', abbreviation: 'd' },
|
|
13
|
-
{ name: 'Hours', abbreviation: '
|
|
11
|
+
{ name: 'Hours', abbreviation: 'h' },
|
|
12
|
+
{ name: 'Minutes', abbreviation: 'm' },
|
|
14
13
|
{ name: 'Seconds', abbreviation: 's' },
|
|
15
|
-
{ name: 'Milliseconds', abbreviation: '
|
|
14
|
+
{ name: 'Milliseconds', abbreviation: 'ms' }
|
|
16
15
|
].freeze
|
|
17
16
|
TEMPERATURE_UNITS = [
|
|
18
17
|
{ name: 'Kelvin', abbreviation: 'K' },
|
|
@@ -21,29 +20,29 @@ module FFaker
|
|
|
21
20
|
].freeze
|
|
22
21
|
|
|
23
22
|
def time_name
|
|
24
|
-
time
|
|
23
|
+
time[:name]
|
|
25
24
|
end
|
|
26
25
|
|
|
27
26
|
def time_abbr
|
|
28
|
-
time
|
|
27
|
+
time[:abbreviation]
|
|
29
28
|
end
|
|
30
29
|
|
|
31
30
|
def temperature_name
|
|
32
|
-
temperature
|
|
31
|
+
temperature[:name]
|
|
33
32
|
end
|
|
34
33
|
|
|
35
34
|
def temperature_abbr
|
|
36
|
-
temperature
|
|
35
|
+
temperature[:abbreviation]
|
|
37
36
|
end
|
|
38
37
|
|
|
39
38
|
private
|
|
40
39
|
|
|
41
40
|
def time
|
|
42
|
-
|
|
41
|
+
fetch_sample(TIME_UNITS)
|
|
43
42
|
end
|
|
44
43
|
|
|
45
44
|
def temperature
|
|
46
|
-
|
|
45
|
+
fetch_sample(TEMPERATURE_UNITS)
|
|
47
46
|
end
|
|
48
47
|
end
|
|
49
48
|
end
|
data/lib/ffaker/unit_english.rb
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'ffaker/unit'
|
|
4
|
-
require 'ostruct'
|
|
5
4
|
|
|
6
5
|
module FFaker
|
|
7
6
|
module UnitEnglish
|
|
@@ -15,7 +14,7 @@ module FFaker
|
|
|
15
14
|
{ name: 'foot', abbreviation: 'ft' },
|
|
16
15
|
{ name: 'yard', abbreviation: 'yd' },
|
|
17
16
|
{ name: 'furlong', abbreviation: 'fur' },
|
|
18
|
-
{ name: 'mile', abbreviation: '
|
|
17
|
+
{ name: 'mile', abbreviation: 'mi' }
|
|
19
18
|
].freeze
|
|
20
19
|
MASS_UNITS = [
|
|
21
20
|
{ name: 'grains', abbreviation: 'gr' },
|
|
@@ -36,75 +35,75 @@ module FFaker
|
|
|
36
35
|
{ name: 'cubic yard', abbreviation: 'CY' }
|
|
37
36
|
].freeze
|
|
38
37
|
AREA_UNITS = [
|
|
39
|
-
{ name: 'square inch', abbreviation: 'sq
|
|
38
|
+
{ name: 'square inch', abbreviation: 'sq in' },
|
|
40
39
|
{ name: 'square foot', abbreviation: 'sq ft' },
|
|
41
40
|
{ name: 'square yard', abbreviation: 'sq yd' },
|
|
42
41
|
{ name: 'acre', abbreviation: 'ac' },
|
|
43
42
|
{ name: 'section', abbreviation: 's' },
|
|
44
43
|
{ name: 'square mile', abbreviation: 'sq mi' },
|
|
45
|
-
{ name: 'township', abbreviation: '
|
|
44
|
+
{ name: 'township', abbreviation: 'twp' }
|
|
46
45
|
].freeze
|
|
47
46
|
|
|
48
47
|
def mass_name
|
|
49
|
-
mass
|
|
48
|
+
mass[:name]
|
|
50
49
|
end
|
|
51
50
|
|
|
52
51
|
def mass_abbr
|
|
53
|
-
mass
|
|
52
|
+
mass[:abbreviation]
|
|
54
53
|
end
|
|
55
54
|
|
|
56
55
|
def length_name
|
|
57
|
-
length
|
|
56
|
+
length[:name]
|
|
58
57
|
end
|
|
59
58
|
|
|
60
59
|
def length_abbr
|
|
61
|
-
length
|
|
60
|
+
length[:abbreviation]
|
|
62
61
|
end
|
|
63
62
|
|
|
64
63
|
def liquid_name
|
|
65
|
-
liquid
|
|
64
|
+
liquid[:name]
|
|
66
65
|
end
|
|
67
66
|
|
|
68
67
|
def liquid_abbr
|
|
69
|
-
liquid
|
|
68
|
+
liquid[:abbreviation]
|
|
70
69
|
end
|
|
71
70
|
|
|
72
71
|
def volume_name
|
|
73
|
-
volume
|
|
72
|
+
volume[:name]
|
|
74
73
|
end
|
|
75
74
|
|
|
76
75
|
def volume_abbr
|
|
77
|
-
volume
|
|
76
|
+
volume[:abbreviation]
|
|
78
77
|
end
|
|
79
78
|
|
|
80
79
|
def area_name
|
|
81
|
-
area
|
|
80
|
+
area[:name]
|
|
82
81
|
end
|
|
83
82
|
|
|
84
83
|
def area_abbr
|
|
85
|
-
area
|
|
84
|
+
area[:abbreviation]
|
|
86
85
|
end
|
|
87
86
|
|
|
88
87
|
private
|
|
89
88
|
|
|
90
89
|
def length
|
|
91
|
-
|
|
90
|
+
fetch_sample(LENGTH_UNITS)
|
|
92
91
|
end
|
|
93
92
|
|
|
94
93
|
def mass
|
|
95
|
-
|
|
94
|
+
fetch_sample(MASS_UNITS)
|
|
96
95
|
end
|
|
97
96
|
|
|
98
97
|
def liquid
|
|
99
|
-
|
|
98
|
+
fetch_sample(LIQUID_UNITS)
|
|
100
99
|
end
|
|
101
100
|
|
|
102
101
|
def volume
|
|
103
|
-
|
|
102
|
+
fetch_sample(VOLUME_UNITS)
|
|
104
103
|
end
|
|
105
104
|
|
|
106
105
|
def area
|
|
107
|
-
|
|
106
|
+
fetch_sample(AREA_UNITS)
|
|
108
107
|
end
|
|
109
108
|
end
|
|
110
109
|
end
|
data/lib/ffaker/unit_metric.rb
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'ffaker/unit'
|
|
4
|
-
require 'ostruct'
|
|
5
4
|
|
|
6
5
|
module FFaker
|
|
7
6
|
module UnitMetric
|
|
@@ -37,65 +36,65 @@ module FFaker
|
|
|
37
36
|
].freeze
|
|
38
37
|
|
|
39
38
|
def mass_name
|
|
40
|
-
mass
|
|
39
|
+
mass[:name]
|
|
41
40
|
end
|
|
42
41
|
|
|
43
42
|
def mass_abbr
|
|
44
|
-
mass
|
|
43
|
+
mass[:abbreviation]
|
|
45
44
|
end
|
|
46
45
|
|
|
47
46
|
def length_name
|
|
48
|
-
length
|
|
47
|
+
length[:name]
|
|
49
48
|
end
|
|
50
49
|
|
|
51
50
|
def length_abbr
|
|
52
|
-
length
|
|
51
|
+
length[:abbreviation]
|
|
53
52
|
end
|
|
54
53
|
|
|
55
54
|
def liquid_name
|
|
56
|
-
liquid
|
|
55
|
+
liquid[:name]
|
|
57
56
|
end
|
|
58
57
|
|
|
59
58
|
def liquid_abbr
|
|
60
|
-
liquid
|
|
59
|
+
liquid[:abbreviation]
|
|
61
60
|
end
|
|
62
61
|
|
|
63
62
|
def volume_name
|
|
64
|
-
volume
|
|
63
|
+
volume[:name]
|
|
65
64
|
end
|
|
66
65
|
|
|
67
66
|
def volume_abbr
|
|
68
|
-
volume
|
|
67
|
+
volume[:abbreviation]
|
|
69
68
|
end
|
|
70
69
|
|
|
71
70
|
def area_name
|
|
72
|
-
area
|
|
71
|
+
area[:name]
|
|
73
72
|
end
|
|
74
73
|
|
|
75
74
|
def area_abbr
|
|
76
|
-
area
|
|
75
|
+
area[:abbreviation]
|
|
77
76
|
end
|
|
78
77
|
|
|
79
78
|
private
|
|
80
79
|
|
|
81
80
|
def length
|
|
82
|
-
|
|
81
|
+
fetch_sample(LENGTH_UNITS)
|
|
83
82
|
end
|
|
84
83
|
|
|
85
84
|
def mass
|
|
86
|
-
|
|
85
|
+
fetch_sample(MASS_UNITS)
|
|
87
86
|
end
|
|
88
87
|
|
|
89
88
|
def liquid
|
|
90
|
-
|
|
89
|
+
fetch_sample(LIQUID_UNITS)
|
|
91
90
|
end
|
|
92
91
|
|
|
93
92
|
def volume
|
|
94
|
-
|
|
93
|
+
fetch_sample(VOLUME_UNITS)
|
|
95
94
|
end
|
|
96
95
|
|
|
97
96
|
def area
|
|
98
|
-
|
|
97
|
+
fetch_sample(AREA_UNITS)
|
|
99
98
|
end
|
|
100
99
|
end
|
|
101
100
|
end
|