ffaker 2.17.0 → 2.18.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.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +10 -0
  3. data/README.md +6 -4
  4. data/REFERENCE.md +1317 -1269
  5. data/Rakefile +3 -3
  6. data/ffaker.gemspec +3 -3
  7. data/lib/ffaker.rb +3 -0
  8. data/lib/ffaker/address_ch.rb +0 -2
  9. data/lib/ffaker/address_ch_de.rb +0 -2
  10. data/lib/ffaker/address_ch_fr.rb +0 -2
  11. data/lib/ffaker/address_ch_it.rb +0 -2
  12. data/lib/ffaker/address_da.rb +0 -2
  13. data/lib/ffaker/address_de.rb +0 -2
  14. data/lib/ffaker/address_fi.rb +0 -2
  15. data/lib/ffaker/address_fr.rb +0 -2
  16. data/lib/ffaker/address_gr.rb +0 -2
  17. data/lib/ffaker/address_id.rb +0 -2
  18. data/lib/ffaker/address_in.rb +0 -2
  19. data/lib/ffaker/address_ja.rb +0 -2
  20. data/lib/ffaker/address_nl.rb +0 -2
  21. data/lib/ffaker/address_ru.rb +0 -2
  22. data/lib/ffaker/address_se.rb +0 -2
  23. data/lib/ffaker/address_sn.rb +0 -2
  24. data/lib/ffaker/address_ua.rb +0 -2
  25. data/lib/ffaker/address_uk.rb +0 -2
  26. data/lib/ffaker/address_us.rb +0 -2
  27. data/lib/ffaker/animal.rb +1 -1
  28. data/lib/ffaker/bacon_ipsum.rb +0 -2
  29. data/lib/ffaker/data/food_pl/diary +14 -0
  30. data/lib/ffaker/data/food_pl/fermented +13 -0
  31. data/lib/ffaker/data/food_pl/fruits +34 -0
  32. data/lib/ffaker/data/food_pl/herbs +20 -0
  33. data/lib/ffaker/data/food_pl/meats +9 -0
  34. data/lib/ffaker/data/food_pl/preserves +10 -0
  35. data/lib/ffaker/data/food_pl/spices +26 -0
  36. data/lib/ffaker/data/food_pl/vegetables +45 -0
  37. data/lib/ffaker/data/freedom_ipsum/freedom_words +161 -0
  38. data/lib/ffaker/data/lorem/words +0 -67
  39. data/lib/ffaker/data/phone_number_ja/four_disit_area_codes +41 -0
  40. data/lib/ffaker/data/phone_number_ja/one_disit_area_codes +3 -0
  41. data/lib/ffaker/data/phone_number_ja/three_disit_area_codes +296 -0
  42. data/lib/ffaker/data/phone_number_ja/two_disit_area_codes +48 -0
  43. data/lib/ffaker/dizzle_ipsum.rb +0 -2
  44. data/lib/ffaker/food_pl.rb +65 -0
  45. data/lib/ffaker/freedom_ipsum.rb +20 -0
  46. data/lib/ffaker/healthcare_ipsum.rb +0 -2
  47. data/lib/ffaker/hipster_ipsum.rb +0 -2
  48. data/lib/ffaker/identification_es_cl.rb +0 -2
  49. data/lib/ffaker/identification_es_co.rb +0 -1
  50. data/lib/ffaker/identification_mx.rb +0 -2
  51. data/lib/ffaker/image.rb +8 -11
  52. data/lib/ffaker/internet_se.rb +0 -2
  53. data/lib/ffaker/lorem_cn.rb +0 -1
  54. data/lib/ffaker/name_cs.rb +0 -2
  55. data/lib/ffaker/name_da.rb +0 -2
  56. data/lib/ffaker/name_de.rb +0 -2
  57. data/lib/ffaker/name_mx.rb +0 -2
  58. data/lib/ffaker/name_nb.rb +0 -2
  59. data/lib/ffaker/name_nl.rb +0 -2
  60. data/lib/ffaker/name_ph.rb +0 -2
  61. data/lib/ffaker/name_ru.rb +0 -2
  62. data/lib/ffaker/name_se.rb +0 -2
  63. data/lib/ffaker/name_ua.rb +0 -2
  64. data/lib/ffaker/phone_number_da.rb +0 -1
  65. data/lib/ffaker/phone_number_ja.rb +88 -0
  66. data/lib/ffaker/unit_english.rb +0 -2
  67. data/lib/ffaker/unit_metric.rb +0 -2
  68. data/lib/version.rb +1 -1
  69. data/test/helper.rb +3 -3
  70. data/test/test_bank.rb +2 -3
  71. data/test/test_food_pl.rb +61 -0
  72. data/test/test_freedom_ipsum.rb +21 -0
  73. data/test/test_image.rb +1 -1
  74. data/test/test_lorem.rb +4 -0
  75. data/test/test_lorem_fr.rb +9 -7
  76. data/test/test_phone_number_ja.rb +63 -0
  77. data/test/test_ssn_se.rb +1 -1
  78. data/test/test_time.rb +2 -3
  79. data/test/test_tweet.rb +1 -1
  80. metadata +177 -155
@@ -0,0 +1,48 @@
1
+ 11
2
+ 15
3
+ 17
4
+ 18
5
+ 19
6
+ 22
7
+ 23
8
+ 24
9
+ 25
10
+ 26
11
+ 27
12
+ 28
13
+ 29
14
+ 42
15
+ 43
16
+ 44
17
+ 45
18
+ 46
19
+ 47
20
+ 48
21
+ 49
22
+ 52
23
+ 53
24
+ 54
25
+ 55
26
+ 58
27
+ 59
28
+ 72
29
+ 73
30
+ 75
31
+ 76
32
+ 77
33
+ 78
34
+ 79
35
+ 82
36
+ 83
37
+ 84
38
+ 86
39
+ 87
40
+ 88
41
+ 89
42
+ 92
43
+ 93
44
+ 95
45
+ 96
46
+ 97
47
+ 98
48
+ 99
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/lorem'
4
-
5
3
  module FFaker
6
4
  # Thanks to Snoop Dogg
7
5
  module DizzleIpsum
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FFaker
4
+ module FoodPL
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def food
9
+ case rand(0..1)
10
+ when 0 then processed
11
+ when 1 then unprocessed
12
+ end
13
+ end
14
+
15
+ def processed
16
+ case rand(0..2)
17
+ when 0 then fermented
18
+ when 1 then diary
19
+ when 2 then preserves
20
+ end
21
+ end
22
+
23
+ def unprocessed
24
+ case rand(0..4)
25
+ when 0 then vegetable
26
+ when 1 then fruit
27
+ when 2 then herb
28
+ when 3 then spice
29
+ when 4 then meat
30
+ end
31
+ end
32
+
33
+ def vegetable
34
+ fetch_sample(VEGETABLES)
35
+ end
36
+
37
+ def fruit
38
+ fetch_sample(FRUITS)
39
+ end
40
+
41
+ def herb
42
+ fetch_sample(HERBS)
43
+ end
44
+
45
+ def spice
46
+ fetch_sample(SPICES)
47
+ end
48
+
49
+ def meat
50
+ fetch_sample(MEATS)
51
+ end
52
+
53
+ def fermented
54
+ fetch_sample(FERMENTED)
55
+ end
56
+
57
+ def diary
58
+ fetch_sample(DIARY)
59
+ end
60
+
61
+ def preserves
62
+ fetch_sample(PRESERVES)
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'ffaker/lorem'
4
+
5
+ module FFaker
6
+ module FreedomIpsum
7
+ include Lorem
8
+
9
+ extend ModuleUtils
10
+ extend self
11
+
12
+ def word
13
+ fetch_sample(FREEDOM_WORDS)
14
+ end
15
+
16
+ def words(num = 3)
17
+ fetch_sample(FREEDOM_WORDS, count: num)
18
+ end
19
+ end
20
+ end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/lorem'
4
-
5
3
  module FFaker
6
4
  module HealthcareIpsum
7
5
  include Lorem
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/lorem'
4
-
5
3
  module FFaker
6
4
  # thanks to http://hipsteripsum.me
7
5
  module HipsterIpsum
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/identification_es'
4
-
5
3
  module FFaker
6
4
  module IdentificationESCL
7
5
  extend IdentificationES
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/identification_es'
4
3
  require 'date'
5
4
 
6
5
  module FFaker
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/identification_es'
4
-
5
3
  module FFaker
6
4
  module IdentificationMX
7
5
  extend ModuleUtils
data/lib/ffaker/image.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'cgi'
3
4
  require 'tempfile'
4
5
  require 'open-uri'
5
6
 
@@ -18,11 +19,16 @@ module FFaker
18
19
  text_color = FFaker::Color.hex_code if text_color == :random
19
20
  text = CGI.escape(text.to_s)
20
21
 
21
- "https://via.placeholder.com/#{size}/#{bg_color}/#{text_color}.#{format}?text=#{text}"
22
+ "https://dummyimage.com/#{size}/#{bg_color}/#{text_color}.#{format}?text=#{text}"
22
23
  end
23
24
 
24
25
  def file(size = '300x300', format = 'png', bg_color = :random, text_color = :random, text = nil)
25
- download_file(url(size, format, bg_color, text_color, text))
26
+ uri = URI.parse(url(size, format, bg_color, text_color, text))
27
+ file = Tempfile.new('ffaker_image')
28
+ file.binmode
29
+ file << uri.open.read
30
+ file.close
31
+ File.new(file.path)
26
32
  end
27
33
 
28
34
  private
@@ -38,14 +44,5 @@ module FFaker
38
44
 
39
45
  raise ArgumentError, "Supported formats are #{SUPPORTED_FORMATS.join(', ')}"
40
46
  end
41
-
42
- def download_file(url)
43
- file = Tempfile.new('ffaker_image')
44
- file.binmode
45
- file << Kernel.open(url).read
46
- file.close
47
-
48
- File.new(file.path)
49
- end
50
47
  end
51
48
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/internet'
4
-
5
3
  module FFaker
6
4
  module InternetSE
7
5
  include Internet
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FFaker
4
- # Based on Perl's Text::Lorem
5
4
  module LoremCN
6
5
  extend ModuleUtils
7
6
  extend self
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/name'
4
-
5
3
  module FFaker
6
4
  module NameCS
7
5
  include FFaker::Name
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/name'
4
-
5
3
  module FFaker
6
4
  module NameDA
7
5
  include FFaker::Name
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/name'
4
-
5
3
  module FFaker
6
4
  module NameDE
7
5
  include FFaker::Name
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/name'
4
-
5
3
  module FFaker
6
4
  # guapolo github.com/guapolo
7
5
  module NameMX
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/name'
4
-
5
3
  module FFaker
6
4
  module NameNB
7
5
  include FFaker::Name
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/name'
4
-
5
3
  module FFaker
6
4
  module NameNL
7
5
  include FFaker::Name
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/name'
4
-
5
3
  module FFaker
6
4
  # Philippine names based on http://en.wikipedia.org/wiki/Philippine_name
7
5
  module NamePH
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/name'
4
-
5
3
  module FFaker
6
4
  module NameRU
7
5
  extend ModuleUtils
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/name'
4
-
5
3
  module FFaker
6
4
  module NameSE
7
5
  include FFaker::Name
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/name'
4
-
5
3
  module FFaker
6
4
  module NameUA
7
5
  extend ModuleUtils
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FFaker
4
- # Based on information from http://en.wikipedia.org/wiki/Telephone_numbers_in_Australia
5
4
  module PhoneNumberDA
6
5
  extend ModuleUtils
7
6
  extend self
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ # sourse: https://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/number_shitei.html#kotei-denwa
4
+
5
+ module FFaker
6
+ module PhoneNumberJA
7
+ extend ModuleUtils
8
+ extend self
9
+
10
+ JAPAN_PREFIX = '0'
11
+ JAPAN_COUNTRY_CODE = '+81'
12
+
13
+ ONE_DISIT_FORMAT = '%s #### ####'
14
+ TWO_DISIT_FORMAT = '%s ### ####'
15
+ THREE_DISIT_FORMAT = '%s ## ####'
16
+ FOUR_DISIT_FORMAT = '%s # ####'
17
+
18
+ MOBILE_PHONE_PREFIXES = %w[90 80 70].freeze
19
+ IP_PHONE_PREFIX = '50'
20
+ MOBILE_NUMBER_FORMAT = '%s #### ####'
21
+
22
+ def home_phone_number
23
+ disit = rand(1..4)
24
+ FFaker.numerify("#{JAPAN_PREFIX}#{home_phone_number_format(disit)}")
25
+ end
26
+
27
+ def mobile_phone_number
28
+ FFaker.numerify("#{JAPAN_PREFIX}#{mobile_phone_number_format}")
29
+ end
30
+
31
+ def phone_number
32
+ case rand(0..1)
33
+ when 0 then home_phone_number
34
+ when 1 then mobile_phone_number
35
+ end
36
+ end
37
+
38
+ def international_home_phone_number
39
+ disit = rand(1..4)
40
+ FFaker.numerify("#{JAPAN_COUNTRY_CODE} #{home_phone_number_format(disit)}")
41
+ end
42
+
43
+ def international_mobile_phone_number
44
+ FFaker.numerify("#{JAPAN_COUNTRY_CODE} #{mobile_phone_number_format}")
45
+ end
46
+
47
+ def international_phone_number
48
+ case rand(0..1)
49
+ when 0 then international_mobile_phone_number
50
+ when 1 then international_home_phone_number
51
+ end
52
+ end
53
+
54
+ def home_phone_prefix(disit = nil)
55
+ case disit
56
+ when 1 then fetch_sample(ONE_DISIT_AREA_CODES)
57
+ when 2 then fetch_sample(TWO_DISIT_AREA_CODES)
58
+ when 3 then fetch_sample(THREE_DISIT_AREA_CODES)
59
+ when 4 then fetch_sample(FOUR_DISIT_AREA_CODES)
60
+ end
61
+ end
62
+
63
+ def home_phone_number_format(disit)
64
+ prefix = home_phone_prefix(disit)
65
+ select_home_phone_format(disit) % prefix
66
+ end
67
+
68
+ def mobile_prefix
69
+ fetch_sample(MOBILE_PHONE_PREFIXES)
70
+ end
71
+
72
+ def mobile_phone_number_format
73
+ prefix = mobile_prefix
74
+ MOBILE_NUMBER_FORMAT % prefix
75
+ end
76
+
77
+ private
78
+
79
+ def select_home_phone_format(disit)
80
+ case disit
81
+ when 1 then ONE_DISIT_FORMAT
82
+ when 2 then TWO_DISIT_FORMAT
83
+ when 3 then THREE_DISIT_FORMAT
84
+ when 4 then FOUR_DISIT_FORMAT
85
+ end
86
+ end
87
+ end
88
+ end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffaker/unit'
4
-
5
3
  module FFaker
6
4
  module UnitEnglish
7
5
  include FFaker::Unit