ffaker 2.17.0 → 2.18.0

Sign up to get free protection for your applications and to get access to all the features.
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