crazipsum 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,150 @@
1
+ Abarth
2
+ Ac
3
+ Acura
4
+ Alfa Romeo
5
+ Allard
6
+ Alpina
7
+ Alpine
8
+ Alvis
9
+ Amc
10
+ Ariel
11
+ Armstrong Siddeley
12
+ Ascari
13
+ Aston Martin
14
+ Audi
15
+ Austin
16
+ Austin-Healey
17
+ Autobianchi
18
+ Auverland
19
+ Avanti
20
+ Beijing
21
+ Bentley
22
+ Berkeley
23
+ Bitter
24
+ Bizzarrini
25
+ Bmw
26
+ Brilliance
27
+ Bristol
28
+ Bugatti
29
+ Buick
30
+ Cadillac
31
+ Caterham
32
+ Checker
33
+ Chevrolet
34
+ Citroen
35
+ Dacia
36
+ Daewoo
37
+ Daf
38
+ Daihatsu
39
+ Daimler
40
+ Datsun
41
+ De Tomaso
42
+ Dkw
43
+ Dodge
44
+ Donkervoort
45
+ Eagle
46
+ Fairthorpe
47
+ Ferrari
48
+ Fisker
49
+ Ford
50
+ Gaz
51
+ Ginetta
52
+ Gmc
53
+ Holden
54
+ Hudson
55
+ Humber
56
+ Hummer
57
+ Hyundai
58
+ Infiniti
59
+ Innocenti
60
+ Isuzu
61
+ Italdesign
62
+ Jaguar
63
+ Jeep
64
+ Kia
65
+ Koenigsegg
66
+ Lada
67
+ Lamborghini
68
+ Lancia
69
+ Land Rover
70
+ Lexus
71
+ Lincoln
72
+ Lotec
73
+ Lotus
74
+ Luxgen
75
+ Mahindra
76
+ Marcos
77
+ Maserati
78
+ Matra-Simca
79
+ Maybach
80
+ Mazda
81
+ Mcc
82
+ Mclaren
83
+ Mercedes-Benz
84
+ Mercury
85
+ Mg
86
+ Mini
87
+ Mitsubishi
88
+ Monteverdi
89
+ Moretti
90
+ Morgan
91
+ Morris
92
+ Nissan
93
+ Noble
94
+ Nsu
95
+ Oldsmobile
96
+ Opel
97
+ Packard
98
+ Pagani
99
+ Panoz
100
+ Peugeot
101
+ Pininfarina
102
+ Plymouth
103
+ Pontiac
104
+ Porsche
105
+ Proton
106
+ Reliant
107
+ Renault
108
+ Riley
109
+ Rolls-Royce
110
+ Rover
111
+ Saab
112
+ Saleen
113
+ Samsung
114
+ Saturn
115
+ Scion
116
+ Seat
117
+ Simca
118
+ Singer
119
+ Skoda
120
+ Smart
121
+ Spyker
122
+ Ssangyong
123
+ Ssc
124
+ Steyr
125
+ Studebaker
126
+ Subaru
127
+ Sunbeam
128
+ Suzuki
129
+ Talbot
130
+ Tata
131
+ Tatra
132
+ Tesla
133
+ Toyota
134
+ Trabant
135
+ Triumph
136
+ Tvr
137
+ Vauxhall
138
+ Vector
139
+ Venturi
140
+ Volkswagen
141
+ Volvo
142
+ Wartburg
143
+ Westfield
144
+ Willys-Overland
145
+ Xedos
146
+ Zagato
147
+ Zastava
148
+ Zaz
149
+ Zenvo
150
+ Zil
@@ -0,0 +1,88 @@
1
+ Andromeda
2
+ Antlia
3
+ Apus
4
+ Aquarius
5
+ Aquila
6
+ Ara
7
+ Aries
8
+ Auriga
9
+ Boötes
10
+ Caelum
11
+ Camelopardalis
12
+ Cancer
13
+ Canes Venatici
14
+ Canis Major
15
+ Canis Minor
16
+ Capricornus
17
+ Carina
18
+ Cassiopeia
19
+ Centaurus
20
+ Cepheus
21
+ Cetus
22
+ Chamaeleon
23
+ Circinus
24
+ Columba
25
+ Coma Berenices
26
+ Corona Austrina
27
+ Corona Borealis
28
+ Corvus
29
+ Crater
30
+ Crux
31
+ Cygnus
32
+ Delphinus
33
+ Dorado
34
+ Draco
35
+ Equuleus
36
+ Eridanus
37
+ Fornax
38
+ Gemini
39
+ Grus
40
+ Hercules
41
+ Horologium
42
+ Hydra
43
+ Hydrus
44
+ Indus
45
+ Lacerta
46
+ Leo
47
+ Leo Minor
48
+ Lepus
49
+ Libra
50
+ Lupus
51
+ Lynx
52
+ Lyra
53
+ Mensa
54
+ Microscopium
55
+ Monoceros
56
+ Musca
57
+ Norma
58
+ Octans
59
+ Ophiuchus
60
+ Orion
61
+ Pavo
62
+ Pegasus
63
+ Perseus
64
+ Phoenix
65
+ Pictor
66
+ Pisces
67
+ Piscis Austrinus
68
+ Puppis
69
+ Pyxis
70
+ Reticulum
71
+ Sagitta
72
+ Sagittarius
73
+ Scorpius
74
+ Sculptor
75
+ Scutum
76
+ Serpens
77
+ Sextans
78
+ Taurus
79
+ Telescopium
80
+ Triangulum
81
+ Triangulum Australe
82
+ Tucana
83
+ Ursa Major
84
+ Ursa Minor
85
+ Vela
86
+ Virgo
87
+ Volans
88
+ Vulpecula
@@ -0,0 +1,196 @@
1
+ Afghanistan
2
+ Albania
3
+ Algeria
4
+ Andorra
5
+ Angola
6
+ Antigua & Deps
7
+ Argentina
8
+ Armenia
9
+ Australia
10
+ Austria
11
+ Azerbaijan
12
+ Bahamas
13
+ Bahrain
14
+ Bangladesh
15
+ Barbados
16
+ Belarus
17
+ Belgium
18
+ Belize
19
+ Benin
20
+ Bhutan
21
+ Bolivia
22
+ Bosnia Herzegovina
23
+ Botswana
24
+ Brazil
25
+ Brunei
26
+ Bulgaria
27
+ Burkina
28
+ Burundi
29
+ Cambodia
30
+ Cameroon
31
+ Canada
32
+ Cape Verde
33
+ Central African Rep
34
+ Chad
35
+ Chile
36
+ China
37
+ Colombia
38
+ Comoros
39
+ Congo
40
+ Costa Rica
41
+ Croatia
42
+ Cuba
43
+ Cyprus
44
+ Czech Republic
45
+ Democratic Republic of the Congo
46
+ Denmark
47
+ Djibouti
48
+ Dominica
49
+ Dominican Republic
50
+ East Timor
51
+ Ecuador
52
+ Egypt
53
+ El Salvador
54
+ Equatorial Guinea
55
+ Eritrea
56
+ Estonia
57
+ Ethiopia
58
+ Fiji
59
+ Finland
60
+ France
61
+ Gabon
62
+ Gambia
63
+ Georgia
64
+ Germany
65
+ Ghana
66
+ Greece
67
+ Grenada
68
+ Guatemala
69
+ Guinea
70
+ Guinea-Bissau
71
+ Guyana
72
+ Haiti
73
+ Honduras
74
+ Hungary
75
+ Iceland
76
+ India
77
+ Indonesia
78
+ Iran
79
+ Iraq
80
+ Ireland
81
+ Israel
82
+ Italy
83
+ Ivory Coast
84
+ Jamaica
85
+ Japan
86
+ Jordan
87
+ Kazakhstan
88
+ Kenya
89
+ Kiribati
90
+ Korea North
91
+ Korea South
92
+ Kosovo
93
+ Kuwait
94
+ Kyrgyzstan
95
+ Laos
96
+ Latvia
97
+ Lebanon
98
+ Lesotho
99
+ Liberia
100
+ Libya
101
+ Liechtenstein
102
+ Lithuania
103
+ Luxembourg
104
+ Macedonia
105
+ Madagascar
106
+ Malawi
107
+ Malaysia
108
+ Maldives
109
+ Mali
110
+ Malta
111
+ Marshall Islands
112
+ Mauritania
113
+ Mauritius
114
+ Mexico
115
+ Micronesia
116
+ Moldova
117
+ Monaco
118
+ Mongolia
119
+ Montenegro
120
+ Morocco
121
+ Mozambique
122
+ Myanmar
123
+ Namibia
124
+ Nauru
125
+ Nepal
126
+ Netherlands
127
+ New Zealand
128
+ Nicaragua
129
+ Niger
130
+ Nigeria
131
+ Norway
132
+ Oman
133
+ Pakistan
134
+ Palau
135
+ Panama
136
+ Papua New Guinea
137
+ Paraguay
138
+ Peru
139
+ Philippines
140
+ Poland
141
+ Portugal
142
+ Qatar
143
+ Romania
144
+ Russian Federation
145
+ Rwanda
146
+ St Kitts & Nevis
147
+ St Lucia
148
+ Saint Vincent & the Grenadines
149
+ Samoa
150
+ San Marino
151
+ Sao Tome & Principe
152
+ Saudi Arabia
153
+ Senegal
154
+ Serbia
155
+ Seychelles
156
+ Sierra Leone
157
+ Singapore
158
+ Slovakia
159
+ Slovenia
160
+ Solomon Islands
161
+ Somalia
162
+ South Africa
163
+ South Sudan
164
+ Spain
165
+ Sri Lanka
166
+ Sudan
167
+ Suriname
168
+ Swaziland
169
+ Sweden
170
+ Switzerland
171
+ Syria
172
+ Taiwan
173
+ Tajikistan
174
+ Tanzania
175
+ Thailand
176
+ Togo
177
+ Tonga
178
+ Trinidad & Tobago
179
+ Tunisia
180
+ Turkey
181
+ Turkmenistan
182
+ Tuvalu
183
+ Uganda
184
+ Ukraine
185
+ United Arab Emirates
186
+ United Kingdom
187
+ United States
188
+ Uruguay
189
+ Uzbekistan
190
+ Vanuatu
191
+ Vatican City
192
+ Venezuela
193
+ Vietnam
194
+ Yemen
195
+ Zambia
196
+ Zimbabwe
@@ -1,86 +1,57 @@
1
- require 'crazipsum/version'
2
-
3
- class Crazipsum
4
- REGISTER = Hash.new { Crazipsum.new([], fillers: false) }
5
-
6
- class << self
7
- def register(type, path, opts = {})
8
- fillers = opts[:fillers]
9
- opts[:fillers] = parse_dictionnary(local_dictionnary_path(:fillers)) if fillers.nil? || fillers
10
- words = parse_dictionnary(path)
11
- REGISTER[type] = new(words, opts)
12
- end
13
-
14
- private
15
-
16
- def parse_dictionnary(path_or_array)
17
- return path_or_array if path_or_array.is_a?(Array)
18
- file_content = File.read(path_or_array)
19
- file_content.split("\n")
20
- end
21
-
22
- def register_from_gem(type)
23
- register(type, local_dictionnary_path(type))
24
- end
25
-
26
- def local_dictionnary_path(type)
27
- File.expand_path("../../data/#{type}.txt", __FILE__)
28
- end
29
- end
30
-
31
- def sentence(opts = {})
32
- quantity = opts[:word_count] || rand(7..15)
33
- quantity = 0 if quantity < 0
34
- sentence_fillers = opts[:fillers]
35
- sentence_fillers = fillers if sentence_fillers.nil?
36
- dict = dictionnary
37
- words = (0...quantity).map do
38
- next dict.sample unless sentence_fillers
39
- rand(3) == 0 ? dict.sample : sentence_fillers.sample
40
- end
41
- return '' if words.empty?
42
- words[0] = words[0].capitalize
43
- words = words.join(' ')
44
- "#{words}."
45
- end
46
-
47
- def paragraph(opts = {})
48
- quantity = opts[:sentence_count] || rand(4..7)
49
- paragraph = []
50
- quantity.times do
51
- s = sentence(opts)
52
- paragraph << s unless s.empty?
53
- end
54
- paragraph.join(' ')
55
- end
56
- alias sentences paragraph
1
+ # frozen_string_literal: true
57
2
 
58
- def paragraphs(opts = {})
59
- quantity = opts[:paragraph_count] || rand(3..5)
60
- paragraphs = []
61
- quantity.times do
62
- p = paragraph(opts)
63
- paragraphs << p unless p.empty?
64
- end
65
- paragraphs.join(opts[:seperator] || "\n\n")
3
+ require 'crazipsum/version'
4
+ require 'crazipsum/registry'
5
+
6
+ data_dir = File.expand_path('../data', __dir__)
7
+ DEFAULT_FILLERS = File.read(File.join(data_dir, 'fillers.txt')).split("\n")
8
+
9
+ # Ever wanted some dumber, crazier (fancier?) lorem ipsum? Here you go!
10
+ module Crazipsum
11
+ module_function
12
+
13
+ # Registers a new type of Dictionnary that can later be retrieved with Crazipsum().
14
+ #
15
+ # @param [String,Symbol] type a name for that dictionnary. This type will be
16
+ # used later when calling `Crazipsum(type)`.
17
+ # @param [Array<String>] words a list of words used when generating the lorem ipsum.
18
+ # @param [Array<String>] fillers a list of words used to fill in the sentences when generating the lorem ipsum.
19
+ def register(type, words, fillers: DEFAULT_FILLERS)
20
+ Crazipsum::Registry.instance.register(type, words, fillers: fillers)
66
21
  end
22
+ end
67
23
 
68
- private
69
-
70
- attr_reader :dictionnary, :fillers
24
+ # Returns a lorem ipsum generator which will generate lorem ipsums of the given
25
+ # type.
26
+ #
27
+ # There are a few default types registered:
28
+ # * `car_make`
29
+ # * `phobia`
30
+ # * `programming_language`
31
+ # * `animal`
32
+ # * `fruit`
33
+ # * `constellation`
34
+ # * `mineral`
35
+ # * `religion`
36
+ # * `country`
37
+ #
38
+ # You can register new types of lorem ipsum via `Crazipsum.register(type, words, fillers: fillers)`.
39
+ #
40
+ # @param type [Symbol,String] the type of lorem ipsum you'd like to generate.
41
+ # @return [Crazipsum::Generator] a funky lorem ipsum generator.
42
+ def Crazipsum(type) # rubocop:disable Naming/MethodName
43
+ dictionnary = Crazipsum::Registry.instance[type]
44
+ raise ArgumentError, 'unregistered ipsum type' if dictionnary.nil?
45
+
46
+ Crazipsum::Generator.new(dictionnary)
47
+ end
71
48
 
72
- def initialize(words, opts = {})
73
- @fillers = opts[:fillers]
74
- @dictionnary = words
75
- end
49
+ Dir[File.join(data_dir, '*')].each do |file|
50
+ type = File.basename(file, '.txt')
51
+ next if type == 'fillers'
76
52
 
77
- register_from_gem(:phobia)
78
- register_from_gem(:religion)
79
- register_from_gem(:fruit)
80
- register_from_gem(:mineral)
81
- register_from_gem(:programming_language)
82
- end
53
+ file_content = File.read(file)
54
+ words = file_content.split("\n")
83
55
 
84
- def Crazipsum(type)
85
- Crazipsum::REGISTER[type]
56
+ Crazipsum.register(type, words)
86
57
  end