deterministic_random_username 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2776d7065566bee4587e26775c466d75f7314781
4
+ data.tar.gz: b9f6964d29b8104789bddddf8c9bcf5705a7562f
5
+ SHA512:
6
+ metadata.gz: bc39dedb8086072fa4cc73c985f803f2866678c96c2deb73b3c76a6146a732bba35a2d1baa18b8baa70eaf176d3684a9854e124718edef6e711b226887fc024c
7
+ data.tar.gz: 7ca739d5c642e6124787d7b0a71ac288570621f9700fb496c3c5997e3491ed7820b7b10c314ca629db79443da1774aaa166fccec295e294ea104572824240ae8
@@ -0,0 +1,34 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /test/tmp/
9
+ /test/version_tmp/
10
+ /tmp/
11
+
12
+ ## Specific to RubyMotion:
13
+ .dat*
14
+ .repl_history
15
+ build/
16
+
17
+ ## Documentation cache and generated files:
18
+ /.yardoc/
19
+ /_yardoc/
20
+ /doc/
21
+ /rdoc/
22
+
23
+ ## Environment normalisation:
24
+ /.bundle/
25
+ /lib/bundler/man/
26
+
27
+ # for a library or gem, you might want to ignore these files since the code is
28
+ # intended to run in multiple environments; otherwise, check them in:
29
+ Gemfile.lock
30
+ .ruby-version
31
+ .ruby-gemset
32
+
33
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
34
+ .rvmrc
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 Poll Everywhere
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,50 @@
1
+ # RandomUsername
2
+
3
+ A random Heroku-style name generator.
4
+
5
+ # Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem "random_username"
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install random_username
18
+
19
+ ## Usage
20
+
21
+ ```
22
+ RandomUsername.username
23
+ => "hollowlight"
24
+ => "legitsunrise"
25
+ => "earthyleaf"
26
+
27
+ RandomUsername.username(:min_length => 6, :max_length => 8)
28
+ => "fitcow"
29
+ => "boldhero"
30
+ => "topchip"
31
+
32
+ RandomUsername.noun
33
+ => "sunrise"
34
+ => "prize"
35
+ => "sage"
36
+
37
+ RandomUsername.adjective
38
+ => "heroic"
39
+ => "worthy"
40
+ => "enigmatic"
41
+ ```
42
+
43
+ ## Contributing
44
+
45
+ 1. Fork it
46
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
47
+ 3. Include tests with your changes (run `rake` to test)
48
+ 4. Commit your changes (`git commit -am 'Add some feature'`)
49
+ 5. Push to the branch (`git push origin my-new-feature`)
50
+ 6. Create new Pull Request
@@ -0,0 +1,8 @@
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs << "test"
6
+ end
7
+
8
+ task :default => :test
@@ -0,0 +1,31 @@
1
+ require "random_username/version"
2
+
3
+ module RandomUsername
4
+ RandomUsername::Error = Class.new(StandardError)
5
+
6
+ def self.adjective(options = {})
7
+ get_item("adjectives", options)
8
+ end
9
+
10
+ def self.noun(options = {})
11
+ get_item("nouns", options)
12
+ end
13
+
14
+ def self.username(options = {})
15
+ options[:max_length] /= 2 if options[:max_length]
16
+ options[:min_length] /= 2 if options[:min_length]
17
+ adjective(options) + noun(options)
18
+ end
19
+
20
+ def self.get_item(filename, options = {})
21
+ items = items_from_file(filename)
22
+ items.select!{ |item| item.length <= options[:max_length] } if options[:max_length]
23
+ items.select!{ |item| item.length >= options[:min_length] } if options[:min_length]
24
+ items.sample(random: options[:random] || Random.new) || fail(RandomUsername::Error, "No words found")
25
+ end
26
+
27
+ def self.items_from_file(filename)
28
+ filepath = File.expand_path("../random_username/#{filename}.txt", __FILE__)
29
+ File.read(filepath).split("\n")
30
+ end
31
+ end
@@ -0,0 +1,366 @@
1
+ able
2
+ action
3
+ active
4
+ actual
5
+ adept
6
+ adored
7
+ adroit
8
+ affectionate
9
+ agile
10
+ airy
11
+ alert
12
+ alive
13
+ alter
14
+ amiable
15
+ ample
16
+ and
17
+ anima
18
+ apt
19
+ ardent
20
+ are
21
+ astute
22
+ august
23
+ avid
24
+ awake
25
+ aware
26
+ balmy
27
+ benevolent
28
+ big
29
+ billowing
30
+ blessed
31
+ bold
32
+ boss
33
+ brainy
34
+ brave
35
+ brawny
36
+ breezy
37
+ brief
38
+ bright
39
+ brisk
40
+ busy
41
+ calm
42
+ can
43
+ canny
44
+ cared
45
+ caring
46
+ casual
47
+ celestial
48
+ charming
49
+ chic
50
+ chief
51
+ choice
52
+ chosen
53
+ chummy
54
+ civic
55
+ civil
56
+ classy
57
+ clean
58
+ clear
59
+ clever
60
+ close
61
+ cogent
62
+ composed
63
+ cool
64
+ cosmic
65
+ cozy
66
+ cuddly
67
+ cute
68
+ dainty
69
+ dandy
70
+ dapper
71
+ daring
72
+ dear
73
+ decent
74
+ deep
75
+ deft
76
+ deluxe
77
+ devout
78
+ direct
79
+ divine
80
+ doted
81
+ doting
82
+ dreamy
83
+ driven
84
+ dry
85
+ earthy
86
+ easy
87
+ elated
88
+ energized
89
+ enigmatic
90
+ equal
91
+ exact
92
+ exotic
93
+ expert
94
+ exuberant
95
+ fair
96
+ famed
97
+ famous
98
+ fancy
99
+ fast
100
+ fiery
101
+ fine
102
+ fit
103
+ flashy
104
+ fleek
105
+ fleet
106
+ flowing
107
+ fluent
108
+ fluffy
109
+ fluttering
110
+ flying
111
+ fond
112
+ frank
113
+ free
114
+ fresh
115
+ full
116
+ fun
117
+ funny
118
+ fuscia
119
+ genial
120
+ gentle
121
+ giddy
122
+ gifted
123
+ giving
124
+ glad
125
+ gnarly
126
+ gold
127
+ golden
128
+ good
129
+ goodly
130
+ graceful
131
+ grand
132
+ great
133
+ green
134
+ groovy
135
+ guided
136
+ gutsy
137
+ haloed
138
+ happy
139
+ hardy
140
+ harmonious
141
+ hearty
142
+ heroic
143
+ high
144
+ hip
145
+ hollow
146
+ holy
147
+ honest
148
+ huge
149
+ humane
150
+ humble
151
+ hunky
152
+ icy
153
+ ideal
154
+ immune
155
+ indigo
156
+ inquisitive
157
+ jazzed
158
+ jazzy
159
+ jolly
160
+ jovial
161
+ joyful
162
+ joyous
163
+ jubilant
164
+ juicy
165
+ just
166
+ keen
167
+ khaki
168
+ kind
169
+ kingly
170
+ large
171
+ lavish
172
+ lawful
173
+ left
174
+ legal
175
+ legit
176
+ light
177
+ like
178
+ liked
179
+ likely
180
+ limber
181
+ limitless
182
+ lively
183
+ loved
184
+ lovely
185
+ loyal
186
+ lucid
187
+ lucky
188
+ lush
189
+ main
190
+ major
191
+ master
192
+ mature
193
+ max
194
+ maxed
195
+ mellow
196
+ merciful
197
+ merry
198
+ mighty
199
+ mint
200
+ mirthful
201
+ modern
202
+ modest
203
+ money
204
+ moonlit
205
+ moral
206
+ moving
207
+ mucho
208
+ mutual
209
+ mysterious
210
+ native
211
+ natural
212
+ near
213
+ neat
214
+ needed
215
+ new
216
+ nice
217
+ nifty
218
+ nimble
219
+ noble
220
+ normal
221
+ noted
222
+ novel
223
+ okay
224
+ open
225
+ outrageous
226
+ overt
227
+ pacific
228
+ parched
229
+ peachy
230
+ peppy
231
+ pithy
232
+ placid
233
+ pleasant
234
+ plucky
235
+ plum
236
+ poetic
237
+ poised
238
+ polite
239
+ posh
240
+ potent
241
+ pretty
242
+ prime
243
+ primo
244
+ prized
245
+ pro
246
+ prompt
247
+ proper
248
+ proud
249
+ pumped
250
+ punchy
251
+ pure
252
+ purring
253
+ quaint
254
+ quick
255
+ quiet
256
+ rad
257
+ radioactive
258
+ rapid
259
+ rare
260
+ ready
261
+ real
262
+ regal
263
+ resilient
264
+ rich
265
+ right
266
+ robust
267
+ rooted
268
+ rosy
269
+ rugged
270
+ safe
271
+ sassy
272
+ saucy
273
+ savvy
274
+ scenic
275
+ secret
276
+ seemly
277
+ serene
278
+ sharp
279
+ showy
280
+ shrewd
281
+ simple
282
+ sleek
283
+ slick
284
+ smart
285
+ smiley
286
+ smooth
287
+ snappy
288
+ snazzy
289
+ snowy
290
+ snugly
291
+ social
292
+ sole
293
+ solitary
294
+ sound
295
+ spacial
296
+ spicy
297
+ spiffy
298
+ spry
299
+ stable
300
+ star
301
+ stark
302
+ steady
303
+ stoic
304
+ strong
305
+ stunning
306
+ sturdy
307
+ suave
308
+ subtle
309
+ sunny
310
+ sunset
311
+ super
312
+ superb
313
+ sure
314
+ swank
315
+ sweet
316
+ swell
317
+ swift
318
+ talented
319
+ teal
320
+ the
321
+ thriving
322
+ tidy
323
+ timely
324
+ top
325
+ tops
326
+ tough
327
+ touted
328
+ tranquil
329
+ trim
330
+ tropical
331
+ true
332
+ trusty
333
+ undisturbed
334
+ unique
335
+ united
336
+ unsightly
337
+ unwavering
338
+ upbeat
339
+ uplifting
340
+ urbane
341
+ usable
342
+ useful
343
+ utmost
344
+ valid
345
+ vast
346
+ vestal
347
+ viable
348
+ vital
349
+ vivid
350
+ vocal
351
+ vogue
352
+ voiceless
353
+ volant
354
+ wandering
355
+ wanted
356
+ warm
357
+ wealthy
358
+ whispering
359
+ whole
360
+ winged
361
+ wired
362
+ wise
363
+ witty
364
+ wooden
365
+ worthy
366
+ zealous
@@ -0,0 +1,185 @@
1
+ abyss
2
+ animal
3
+ apple
4
+ atoll
5
+ aurora
6
+ autumn
7
+ bacon
8
+ badlands
9
+ ball
10
+ banana
11
+ bath
12
+ beach
13
+ bear
14
+ bed
15
+ bee
16
+ bike
17
+ bird
18
+ boat
19
+ book
20
+ bowl
21
+ branch
22
+ bread
23
+ breeze
24
+ briars
25
+ brook
26
+ brush
27
+ bunny
28
+ candy
29
+ canopy
30
+ canyon
31
+ car
32
+ cat
33
+ cave
34
+ cavern
35
+ cereal
36
+ chair
37
+ chasm
38
+ chip
39
+ cliff
40
+ coal
41
+ coast
42
+ cookie
43
+ cove
44
+ cow
45
+ crater
46
+ creek
47
+ darkness
48
+ dawn
49
+ desert
50
+ dew
51
+ dog
52
+ door
53
+ dove
54
+ drylands
55
+ duck
56
+ dusk
57
+ earth
58
+ fall
59
+ farm
60
+ fern
61
+ field
62
+ firefly
63
+ fish
64
+ fjord
65
+ flood
66
+ flower
67
+ flowers
68
+ fog
69
+ foliage
70
+ forest
71
+ freeze
72
+ frog
73
+ fu
74
+ galaxy
75
+ garden
76
+ geyser
77
+ gift
78
+ glass
79
+ grove
80
+ guide
81
+ guru
82
+ hat
83
+ hug
84
+ hero
85
+ hill
86
+ horse
87
+ house
88
+ hurricane
89
+ ice
90
+ iceberg
91
+ island
92
+ juice
93
+ lagoon
94
+ lake
95
+ land
96
+ lawn
97
+ leaf
98
+ leaves
99
+ light
100
+ lion
101
+ marsh
102
+ meadow
103
+ milk
104
+ mist
105
+ moon
106
+ moss
107
+ mountain
108
+ mouse
109
+ nature
110
+ oasis
111
+ ocean
112
+ pants
113
+ peak
114
+ pebble
115
+ pine
116
+ pilot
117
+ plane
118
+ planet
119
+ plant
120
+ plateau
121
+ pond
122
+ prize
123
+ rabbit
124
+ rain
125
+ range
126
+ reef
127
+ reserve
128
+ resonance
129
+ river
130
+ rock
131
+ sage
132
+ salute
133
+ sanctuary
134
+ sand
135
+ sands
136
+ shark
137
+ shelter
138
+ shirt
139
+ shoe
140
+ silence
141
+ sky
142
+ smokescreen
143
+ snowflake
144
+ socks
145
+ soil
146
+ soul
147
+ soup
148
+ sparrow
149
+ spoon
150
+ spring
151
+ star
152
+ stone
153
+ storm
154
+ stream
155
+ summer
156
+ summit
157
+ sun
158
+ sunrise
159
+ sunset
160
+ sunshine
161
+ surf
162
+ swamp
163
+ table
164
+ teacher
165
+ temple
166
+ thorns
167
+ tiger
168
+ tigers
169
+ towel
170
+ train
171
+ tree
172
+ truck
173
+ tsunami
174
+ tundra
175
+ valley
176
+ volcano
177
+ water
178
+ waterfall
179
+ waves
180
+ wild
181
+ willow
182
+ window
183
+ winds
184
+ winter
185
+ zebra
@@ -0,0 +1,3 @@
1
+ module RandomUsername
2
+ VERSION = "1.0.0"
3
+ end
@@ -0,0 +1,18 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/random_username/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.name = "deterministic_random_username"
6
+ gem.version = RandomUsername::VERSION
7
+ gem.license = "MIT"
8
+ gem.authors = ["Michael Foley", "Brian Glusman"]
9
+ gem.email = ["mike@polleverywhere.com"]
10
+ gem.description = %q{Generate random or deterministic Heroku-style names}
11
+ gem.summary = %q{Generate random or deterministic Heroku-style names}
12
+ gem.homepage = "https://github.com/stellaservice/random_username"
13
+
14
+ gem.files = `git ls-files`.split("\n")
15
+ gem.executables = []
16
+ gem.test_files = `git ls-files -- test/*`.split("\n")
17
+ gem.require_paths = ["lib"]
18
+ end
@@ -0,0 +1,100 @@
1
+ require "minitest/autorun"
2
+ require "random_username"
3
+
4
+ class TestRandomUsername < Minitest::Test
5
+ def all_adjectives
6
+ @all_adjectives ||= RandomUsername.items_from_file("adjectives")
7
+ end
8
+
9
+ def all_nouns
10
+ @all_nouns ||= RandomUsername.items_from_file("nouns")
11
+ end
12
+
13
+ def test_adjective
14
+ adjective = RandomUsername.adjective
15
+ refute_empty adjective
16
+ assert_includes all_adjectives, adjective
17
+ end
18
+
19
+ def test_adjective_max_length
20
+ adjective = RandomUsername.adjective(:max_length => 4)
21
+ assert adjective.length <= 4
22
+ end
23
+
24
+ def test_adjective_invalid_max_length
25
+ assert_raises RandomUsername::Error do
26
+ RandomUsername.adjective(:max_length => 1)
27
+ end
28
+ end
29
+
30
+ def test_adjective_min_length
31
+ adjective = RandomUsername.adjective(:min_length => 8)
32
+ assert adjective.length >= 8
33
+ end
34
+
35
+ def test_adjective_invalid_min_length
36
+ assert_raises RandomUsername::Error do
37
+ RandomUsername.adjective(:min_length => 100)
38
+ end
39
+ end
40
+
41
+ def test_noun
42
+ noun = RandomUsername.noun
43
+ refute_empty noun
44
+ assert_includes all_nouns, noun
45
+ end
46
+
47
+ def test_noun_max_length
48
+ noun = RandomUsername.noun(:max_length => 4)
49
+ assert noun.length <= 4
50
+ end
51
+
52
+ def test_noun_invalid_max_length
53
+ assert_raises RandomUsername::Error do
54
+ RandomUsername.noun(:max_length => 1)
55
+ end
56
+ end
57
+
58
+ def test_noun_min_length
59
+ noun = RandomUsername.noun(:min_length => 8)
60
+ assert noun.length >= 8
61
+ end
62
+
63
+ def test_noun_invalid_min_length
64
+ assert_raises RandomUsername::Error do
65
+ RandomUsername.noun(:min_length => 100)
66
+ end
67
+ end
68
+
69
+ def test_username
70
+ username = RandomUsername.username
71
+ refute_empty username
72
+ anchor = (2..username.length).detect do |i|
73
+ all_adjectives.include?(username[0..i])
74
+ end
75
+ assert_includes all_adjectives, username[0..anchor]
76
+ assert_includes all_nouns, username[anchor+1..-1]
77
+ end
78
+
79
+ def test_username_max_length
80
+ username = RandomUsername.username(:max_length => 10)
81
+ assert username.length <= 10
82
+ end
83
+
84
+ def test_username_invalid_max_length
85
+ assert_raises RandomUsername::Error do
86
+ RandomUsername.username(:max_length => 2)
87
+ end
88
+ end
89
+
90
+ def test_username_min_length
91
+ username = RandomUsername.username(:min_length => 10)
92
+ assert username.length >= 10
93
+ end
94
+
95
+ def test_username_invalid_min_length
96
+ assert_raises RandomUsername::Error do
97
+ RandomUsername.username(:min_length => 100)
98
+ end
99
+ end
100
+ end
metadata ADDED
@@ -0,0 +1,56 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: deterministic_random_username
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Michael Foley
8
+ - Brian Glusman
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2016-12-05 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Generate random or deterministic Heroku-style names
15
+ email:
16
+ - mike@polleverywhere.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - ".gitignore"
22
+ - LICENSE
23
+ - README.md
24
+ - Rakefile
25
+ - lib/random_username.rb
26
+ - lib/random_username/adjectives.txt
27
+ - lib/random_username/nouns.txt
28
+ - lib/random_username/version.rb
29
+ - random_username.gemspec
30
+ - test/test_random_username.rb
31
+ homepage: https://github.com/stellaservice/random_username
32
+ licenses:
33
+ - MIT
34
+ metadata: {}
35
+ post_install_message:
36
+ rdoc_options: []
37
+ require_paths:
38
+ - lib
39
+ required_ruby_version: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ required_rubygems_version: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ requirements: []
50
+ rubyforge_project:
51
+ rubygems_version: 2.6.8
52
+ signing_key:
53
+ specification_version: 4
54
+ summary: Generate random or deterministic Heroku-style names
55
+ test_files:
56
+ - test/test_random_username.rb