mnemonic_word_list 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +22 -0
- data/.rspec +2 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +22 -0
- data/README.md +78 -0
- data/Rakefile +2 -0
- data/lib/mnemonic_word_list.rb +21 -0
- data/lib/mnemonic_word_list/version.rb +3 -0
- data/lib/mnemonic_word_list/wordlist.txt +273 -0
- data/mnemonic_word_list.gemspec +22 -0
- data/spec/mnemonic_word_list_spec.rb +23 -0
- data/spec/spec_helper.rb +91 -0
- metadata +86 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4b9d5b6e84f1260b958110817322542da8d5bfa1
|
4
|
+
data.tar.gz: f89e3b8bba97aedcecb0eda0960bd7066c53a827
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: fb0e97bc81533e8087b8f69ded27e71dc559fc8a36380c99e9c332cde539fe1159a566b72761d74660df2e2eef5f5a3f572b1ab9c91b05fe34159760c90e74a3
|
7
|
+
data.tar.gz: d0302c45b7bc51f6d39fb03c37059f20b68283ecc0f203cccd33bffaf1f1820b2390db69a60e6e8c86ec6574ac100ff77f9557e728637fa95838a59b6be8706d
|
data/.gitignore
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
5
|
+
.yardoc
|
6
|
+
Gemfile.lock
|
7
|
+
InstalledFiles
|
8
|
+
_yardoc
|
9
|
+
coverage
|
10
|
+
doc/
|
11
|
+
lib/bundler/man
|
12
|
+
pkg
|
13
|
+
rdoc
|
14
|
+
spec/reports
|
15
|
+
test/tmp
|
16
|
+
test/version_tmp
|
17
|
+
tmp
|
18
|
+
*.bundle
|
19
|
+
*.so
|
20
|
+
*.o
|
21
|
+
*.a
|
22
|
+
mkmf.log
|
data/.rspec
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Ivan Vanderbyl
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
# Mnemonic Word List
|
2
|
+
|
3
|
+
An exhaustive list of 1633 mnemonic words resurrected from Web Archive.
|
4
|
+
|
5
|
+
### Word Selection Criteria
|
6
|
+
|
7
|
+
- The wordlist contains 1633 words.
|
8
|
+
- All words are between 4 and 7 letters long.
|
9
|
+
- No word in the list is a prefix of another word (e.g. visit, visitor).
|
10
|
+
- Five letter prefixes of words are sufficient to be unique.
|
11
|
+
- 7 extra words with 3 letters each are used for encoding 24 bit remainders i.e. when the encoded data length is 3 modulu 4.
|
12
|
+
|
13
|
+
## Installation
|
14
|
+
|
15
|
+
Add this line to your application's Gemfile:
|
16
|
+
|
17
|
+
gem 'mnemonic_word_list'
|
18
|
+
|
19
|
+
And then execute:
|
20
|
+
|
21
|
+
$ bundle
|
22
|
+
|
23
|
+
Or install it yourself as:
|
24
|
+
|
25
|
+
$ gem install mnemonic_word_list
|
26
|
+
|
27
|
+
## Usage
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
MnemonicWordList.all
|
31
|
+
# => ["acrobat", "africa", "alaska", "albert", "albino", ...]
|
32
|
+
|
33
|
+
MnemonicWordList.random_pair
|
34
|
+
# => "atlanta-mega"
|
35
|
+
|
36
|
+
MnemonicWordList.random_pair(' ')
|
37
|
+
# => "atlanta mega"
|
38
|
+
# => "salmon cupid"
|
39
|
+
# => "prime piano"
|
40
|
+
# => "helena byte"
|
41
|
+
# => "action mask"
|
42
|
+
```
|
43
|
+
|
44
|
+
### Origins
|
45
|
+
|
46
|
+
This word list was first published on [tothink.com/mnemonic](http://web.archive.org/web/20090918202746/http://tothink.com/mnemonic/wordlist.html).
|
47
|
+
|
48
|
+
The word list hasn't been updated since around 2009, so I've taken the original word list file (untouched) and parsed it to something useful for projects needing easy to remember name generation.
|
49
|
+
|
50
|
+
**From the original readme:**
|
51
|
+
|
52
|
+
The words should be usable by people all over the world. The list is far from perfect in that respect. It is heavily biased towards western culture and English in particular. The international vocabulary is simply not big enough. One can argue that even words like "hotel" or "radio" are not truly international. You will find many English words in the list but I have tried to limit them to words that are part of a beginner's vocabulary or words that have close relatives in other european languages. In some cases a word has a different meaning in another language or is pronounced very differently but for the purpose of the encoding it is still ok - I assume that when the encoding is used for spoken communication both sides speak the same language.
|
53
|
+
|
54
|
+
The words should have more than one syllable. This makes them easier to recognize when spoken, especially over a phone line. Again, you will find many exceptions. For one syllable words I have tried to use words with 3 or more consonants or words with diphthongs, making for a longer and more distinct pronounciation. As a result of this requirement the average word length has increased. I do not consider this to be a problem since my goal in limiting the word length was not to reduce the average length of encoded data but to limit the maximum length to fit in fixed-size fields or a terminal line width.
|
55
|
+
|
56
|
+
No two words on the list should sound too much alike. Soundalikes such as "sweet" and "suite" are ruled out. One of the two is chosen and the other should be accepted by the decoder's soundalike matching code or using explicit aliases for some words.
|
57
|
+
|
58
|
+
No offensive words. The rule was to avoid words that I would not like to be printed on my business card. I have extended this to words that by themselves are not offensive but are too likely to create combinations that someone may find embarrassing or offensive. This includes words dealing with religion such as "church" or "jewish" and some words with negative meanings like "problem" or "fiasco". I am sure that a creative mind (or a random number generator) can find plenty of embarrasing or offensive word combinations using only words in the list but I have tried to avoid the more obvious ones. One of my tools for this was simply a generator of random word combinations - the problematic ones stick out like a sore thumb.
|
59
|
+
|
60
|
+
Avoid words with tricky spelling or pronounciation. Even if the receiver of the message can probably spell the word close enough for the soundalike matcher to recognize it correctly I prefer avoiding such words. I believe this will help users feel more comfortable using the system, increase the level of confidence and decrease the overall error rate. Most words in the list can be spelled more or less correctly from hearing, even without knowing the word.
|
61
|
+
|
62
|
+
The word should feel right for the job. I know, this one is very subjective but some words would meet all the criteria and still not feel right for the purpose of mnemonic encoding. The word should feel like one of the words in the radio phonetic alphabets (alpha, bravo, charlie, delta etc).
|
63
|
+
Notes:
|
64
|
+
|
65
|
+
When checking for soundalikes I have found that the standard soundex algorithms are far too liberal and find too many words that supposedly sound similar. It may be true that all vowels are pronounced as schwa in certain cases, but completely eliminating vowels from the soundex comparison is going a little too far . The consonant groups in the soundex algorithm are too general while at the same time ignoring consonants that sound alike over a limited bandwidth channel such as "F" and "S".
|
66
|
+
|
67
|
+
If you need a shorter wordlist for any purpose please use words from the beginning of the list. It is sorted according to my ranking for word quality.
|
68
|
+
|
69
|
+
The phonetic pronunciation database in the Moby wordlist has been particularly useful in finding soundalikes by comparing the distance between the phonetic representations rather than the standard spelling.
|
70
|
+
Actually, not all words are 4 to 7 letters long.
|
71
|
+
|
72
|
+
## Contributing
|
73
|
+
|
74
|
+
1. Fork it ( https://github.com/ivanvanderbyl/mnemonic_word_list/fork )
|
75
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
76
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
77
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
78
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require "mnemonic_word_list/version"
|
2
|
+
|
3
|
+
module MnemonicWordList
|
4
|
+
def self.all
|
5
|
+
File.open(word_list_path) do |file|
|
6
|
+
file.reduce([]) do |list, line|
|
7
|
+
words = line.split(/\s+/).map { |word| word.strip unless word.empty? }.compact
|
8
|
+
list.concat(words)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.random_pair(separator = '-')
|
14
|
+
list = all
|
15
|
+
[list.sample, list.sample].join(separator)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.word_list_path
|
19
|
+
File.expand_path("../mnemonic_word_list/wordlist.txt", __FILE__)
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,273 @@
|
|
1
|
+
acrobat africa alaska albert albino album
|
2
|
+
alcohol alex alpha amadeus amanda amazon
|
3
|
+
america analog animal antenna antonio apollo
|
4
|
+
april aroma artist aspirin athlete atlas
|
5
|
+
banana bandit banjo bikini bingo bonus
|
6
|
+
camera canada carbon casino catalog cinema
|
7
|
+
citizen cobra comet compact complex context
|
8
|
+
credit critic crystal culture david delta
|
9
|
+
dialog diploma doctor domino dragon drama
|
10
|
+
extra fabric final focus forum galaxy
|
11
|
+
gallery global harmony hotel humor index
|
12
|
+
japan kilo lemon liter lotus mango
|
13
|
+
melon menu meter metro mineral model
|
14
|
+
music object piano pirate plastic radio
|
15
|
+
report signal sport studio subject super
|
16
|
+
tango taxi tempo tennis textile tokyo
|
17
|
+
total tourist video visa academy alfred
|
18
|
+
atlanta atomic barbara bazaar brother budget
|
19
|
+
cabaret cadet candle capsule caviar channel
|
20
|
+
chapter circle cobalt comrade condor crimson
|
21
|
+
cyclone darwin declare denver desert divide
|
22
|
+
dolby domain double eagle echo eclipse
|
23
|
+
editor educate edward effect electra emerald
|
24
|
+
emotion empire eternal evening exhibit expand
|
25
|
+
explore extreme ferrari forget freedom friday
|
26
|
+
fuji galileo genesis gravity habitat hamlet
|
27
|
+
harlem helium holiday hunter ibiza iceberg
|
28
|
+
imagine infant isotope jackson jamaica jasmine
|
29
|
+
java jessica kitchen lazarus letter license
|
30
|
+
lithium loyal lucky magenta manual marble
|
31
|
+
maxwell mayor monarch monday money morning
|
32
|
+
mother mystery native nectar nelson network
|
33
|
+
nikita nobel nobody nominal norway nothing
|
34
|
+
number october office oliver opinion option
|
35
|
+
order outside package pandora panther papa
|
36
|
+
pattern pedro pencil people phantom philips
|
37
|
+
pioneer pluto podium portal potato process
|
38
|
+
proxy pupil python quality quarter quiet
|
39
|
+
rabbit radical radius rainbow ramirez ravioli
|
40
|
+
raymond respect respond result resume richard
|
41
|
+
river roger roman rondo sabrina salary
|
42
|
+
salsa sample samuel saturn savage scarlet
|
43
|
+
scorpio sector serpent shampoo sharon silence
|
44
|
+
simple society sonar sonata soprano sparta
|
45
|
+
spider sponsor abraham action active actor
|
46
|
+
adam address admiral adrian agenda agent
|
47
|
+
airline airport alabama aladdin alarm algebra
|
48
|
+
alibi alice alien almond alpine amber
|
49
|
+
amigo ammonia analyze anatomy angel annual
|
50
|
+
answer apple archive arctic arena arizona
|
51
|
+
armada arnold arsenal arthur asia aspect
|
52
|
+
athena audio august austria avenue average
|
53
|
+
axiom aztec bagel baker balance ballad
|
54
|
+
ballet bambino bamboo baron basic basket
|
55
|
+
battery belgium benefit berlin bermuda bernard
|
56
|
+
bicycle binary biology bishop blitz block
|
57
|
+
blonde bonjour boris boston bottle boxer
|
58
|
+
brandy bravo brazil bridge british bronze
|
59
|
+
brown bruce bruno brush burger burma
|
60
|
+
cabinet cactus cafe cairo calypso camel
|
61
|
+
campus canal cannon canoe cantina canvas
|
62
|
+
canyon capital caramel caravan career cargo
|
63
|
+
carlo carol carpet cartel cartoon castle
|
64
|
+
castro cecilia cement center century ceramic
|
65
|
+
chamber chance change chaos charlie charm
|
66
|
+
charter cheese chef chemist cherry chess
|
67
|
+
chicago chicken chief china cigar circus
|
68
|
+
city clara classic claudia clean client
|
69
|
+
climax clinic clock club cockpit coconut
|
70
|
+
cola collect colombo colony color combat
|
71
|
+
comedy command company concert connect consul
|
72
|
+
contact contour control convert copy corner
|
73
|
+
corona correct cosmos couple courage cowboy
|
74
|
+
craft crash cricket crown cuba dallas
|
75
|
+
dance daniel decade decimal degree delete
|
76
|
+
deliver delphi deluxe demand demo denmark
|
77
|
+
derby design detect develop diagram diamond
|
78
|
+
diana diego diesel diet digital dilemma
|
79
|
+
direct disco disney distant dollar dolphin
|
80
|
+
donald drink driver dublin duet dynamic
|
81
|
+
earth east ecology economy edgar egypt
|
82
|
+
elastic elegant element elite elvis email
|
83
|
+
empty energy engine english episode equator
|
84
|
+
escape escort ethnic europe everest evident
|
85
|
+
exact example exit exotic export express
|
86
|
+
factor falcon family fantasy fashion fiber
|
87
|
+
fiction fidel fiesta figure film filter
|
88
|
+
finance finish finland first flag flash
|
89
|
+
florida flower fluid flute folio ford
|
90
|
+
forest formal formula fortune forward fragile
|
91
|
+
france frank fresh friend frozen future
|
92
|
+
gabriel gamma garage garcia garden garlic
|
93
|
+
gemini general genetic genius germany gloria
|
94
|
+
gold golf gondola gong good gordon
|
95
|
+
gorilla grand granite graph green group
|
96
|
+
guide guitar guru hand happy harbor
|
97
|
+
harvard havana hawaii helena hello henry
|
98
|
+
hilton history horizon house human icon
|
99
|
+
idea igloo igor image impact import
|
100
|
+
india indigo input insect instant iris
|
101
|
+
italian jacket jacob jaguar janet jargon
|
102
|
+
jazz jeep john joker jordan judo
|
103
|
+
jumbo june jungle junior jupiter karate
|
104
|
+
karma kayak kermit king koala korea
|
105
|
+
labor lady lagoon laptop laser latin
|
106
|
+
lava lecture left legal level lexicon
|
107
|
+
liberal libra lily limbo limit linda
|
108
|
+
linear lion liquid little llama lobby
|
109
|
+
lobster local logic logo lola london
|
110
|
+
lucas lunar machine macro madam madonna
|
111
|
+
madrid maestro magic magnet magnum mailbox
|
112
|
+
major mama mambo manager manila marco
|
113
|
+
marina market mars martin marvin mary
|
114
|
+
master matrix maximum media medical mega
|
115
|
+
melody memo mental mentor mercury message
|
116
|
+
metal meteor method mexico miami micro
|
117
|
+
milk million minimum minus minute miracle
|
118
|
+
mirage miranda mister mixer mobile modem
|
119
|
+
modern modular moment monaco monica monitor
|
120
|
+
mono monster montana morgan motel motif
|
121
|
+
motor mozart multi museum mustang natural
|
122
|
+
neon nepal neptune nerve neutral nevada
|
123
|
+
news next ninja nirvana normal nova
|
124
|
+
novel nuclear numeric nylon oasis observe
|
125
|
+
ocean octopus olivia olympic omega opera
|
126
|
+
optic optimal orange orbit organic orient
|
127
|
+
origin orlando oscar oxford oxygen ozone
|
128
|
+
pablo pacific pagoda palace pamela panama
|
129
|
+
pancake panda panel panic paradox pardon
|
130
|
+
paris parker parking parody partner passage
|
131
|
+
passive pasta pastel patent patient patriot
|
132
|
+
patrol pegasus pelican penguin pepper percent
|
133
|
+
perfect perfume period permit person peru
|
134
|
+
phone photo picasso picnic picture pigment
|
135
|
+
pilgrim pilot pixel pizza planet plasma
|
136
|
+
plaza pocket poem poetic poker polaris
|
137
|
+
police politic polo polygon pony popcorn
|
138
|
+
popular postage precise prefix premium present
|
139
|
+
price prince printer prism private prize
|
140
|
+
product profile program project protect proton
|
141
|
+
public pulse puma pump pyramid queen
|
142
|
+
radar ralph random rapid rebel record
|
143
|
+
recycle reflex reform regard regular relax
|
144
|
+
reptile reverse ricardo right ringo risk
|
145
|
+
ritual robert robot rocket rodeo romeo
|
146
|
+
royal russian safari salad salami salmon
|
147
|
+
salon salute samba sandra santana sardine
|
148
|
+
school scoop scratch screen script scroll
|
149
|
+
second secret section segment select seminar
|
150
|
+
senator senior sensor serial service shadow
|
151
|
+
sharp sheriff shock short shrink sierra
|
152
|
+
silicon silk silver similar simon single
|
153
|
+
siren slang slogan smart smoke snake
|
154
|
+
social soda solar solid solo sonic
|
155
|
+
source soviet special speed sphere spiral
|
156
|
+
spirit spring static status stereo stone
|
157
|
+
stop street strong student style sultan
|
158
|
+
susan sushi suzuki switch symbol system
|
159
|
+
tactic tahiti talent tarzan telex texas
|
160
|
+
theory thermos tiger titanic tomato topic
|
161
|
+
tornado toronto torpedo totem tractor traffic
|
162
|
+
transit trapeze travel tribal trick trident
|
163
|
+
trilogy tripod tropic trumpet tulip tuna
|
164
|
+
turbo twist ultra uniform union uranium
|
165
|
+
vacuum valid vampire vanilla vatican velvet
|
166
|
+
ventura venus vertigo veteran victor vienna
|
167
|
+
viking village vincent violet violin virtual
|
168
|
+
virus vision visitor visual vitamin viva
|
169
|
+
vocal vodka volcano voltage volume voyage
|
170
|
+
water weekend welcome western window winter
|
171
|
+
wizard wolf world xray yankee yoga
|
172
|
+
yogurt yoyo zebra zero zigzag zipper
|
173
|
+
zodiac zoom acid adios agatha alamo
|
174
|
+
alert almanac aloha andrea anita arcade
|
175
|
+
aurora avalon baby baggage balloon bank
|
176
|
+
basil begin biscuit blue bombay botanic
|
177
|
+
brain brenda brigade cable calibre carmen
|
178
|
+
cello celtic chariot chrome citrus civil
|
179
|
+
cloud combine common cool copper coral
|
180
|
+
crater cubic cupid cycle depend door
|
181
|
+
dream dynasty edison edition enigma equal
|
182
|
+
eric event evita exodus extend famous
|
183
|
+
farmer food fossil frog fruit geneva
|
184
|
+
gentle george giant gilbert gossip gram
|
185
|
+
greek grille hammer harvest hazard heaven
|
186
|
+
herbert heroic hexagon husband immune inca
|
187
|
+
inch initial isabel ivory jason jerome
|
188
|
+
joel joshua journal judge juliet jump
|
189
|
+
justice kimono kinetic leonid leopard lima
|
190
|
+
maze medusa member memphis michael miguel
|
191
|
+
milan mile miller mimic mimosa mission
|
192
|
+
monkey moral moses mouse nancy natasha
|
193
|
+
nebula nickel nina noise orchid oregano
|
194
|
+
origami orinoco orion othello paper paprika
|
195
|
+
prelude prepare pretend promise prosper provide
|
196
|
+
puzzle remote repair reply rival riviera
|
197
|
+
robin rose rover rudolf saga sahara
|
198
|
+
scholar shelter ship shoe sigma sister
|
199
|
+
sleep smile spain spark split spray
|
200
|
+
square stadium star storm story strange
|
201
|
+
stretch stuart subway sugar sulfur summer
|
202
|
+
survive sweet swim table taboo target
|
203
|
+
teacher telecom temple tibet ticket tina
|
204
|
+
today toga tommy tower trivial tunnel
|
205
|
+
turtle twin uncle unicorn unique update
|
206
|
+
valery vega version voodoo warning william
|
207
|
+
wonder year yellow young absent absorb
|
208
|
+
absurd accent alfonso alias ambient anagram
|
209
|
+
andy anvil appear apropos archer ariel
|
210
|
+
armor arrow austin avatar axis baboon
|
211
|
+
bahama bali balsa barcode bazooka beach
|
212
|
+
beast beatles beauty before benny betty
|
213
|
+
between beyond billy bison blast bless
|
214
|
+
bogart bonanza book border brave bread
|
215
|
+
break broken bucket buenos buffalo bundle
|
216
|
+
button buzzer byte caesar camilla canary
|
217
|
+
candid carrot cave chant child choice
|
218
|
+
chris cipher clarion clark clever cliff
|
219
|
+
clone conan conduct congo costume cotton
|
220
|
+
cover crack current danube data decide
|
221
|
+
deposit desire detail dexter dinner donor
|
222
|
+
druid drum easy eddie enjoy enrico
|
223
|
+
epoxy erosion except exile explain fame
|
224
|
+
fast father felix field fiona fire
|
225
|
+
fish flame flex flipper float flood
|
226
|
+
floor forbid forever fractal frame freddie
|
227
|
+
front fuel gallop game garbo gate
|
228
|
+
gelatin gibson ginger giraffe gizmo glass
|
229
|
+
goblin gopher grace gray gregory grid
|
230
|
+
griffin ground guest gustav gyro hair
|
231
|
+
halt harris heart heavy herman hippie
|
232
|
+
hobby honey hope horse hostel hydro
|
233
|
+
imitate info ingrid inside invent invest
|
234
|
+
invite ivan james jester jimmy join
|
235
|
+
joseph juice julius july kansas karl
|
236
|
+
kevin kiwi ladder lake laura learn
|
237
|
+
legacy legend lesson life light list
|
238
|
+
locate lopez lorenzo love lunch malta
|
239
|
+
mammal margin margo marion mask match
|
240
|
+
mayday meaning mercy middle mike mirror
|
241
|
+
modest morph morris mystic nadia nato
|
242
|
+
navy needle neuron never newton nice
|
243
|
+
night nissan nitro nixon north oberon
|
244
|
+
octavia ohio olga open opus orca
|
245
|
+
oval owner page paint palma parent
|
246
|
+
parlor parole paul peace pearl perform
|
247
|
+
phoenix phrase pierre pinball place plate
|
248
|
+
plato plume pogo point polka poncho
|
249
|
+
powder prague press presto pretty prime
|
250
|
+
promo quest quick quiz quota race
|
251
|
+
rachel raja ranger region remark rent
|
252
|
+
reward rhino ribbon rider road rodent
|
253
|
+
round rubber ruby rufus sabine saddle
|
254
|
+
sailor saint salt scale scuba season
|
255
|
+
secure shake shallow shannon shave shelf
|
256
|
+
sherman shine shirt side sinatra sincere
|
257
|
+
size slalom slow small snow sofia
|
258
|
+
song sound south speech spell spend
|
259
|
+
spoon stage stamp stand state stella
|
260
|
+
stick sting stock store sunday sunset
|
261
|
+
support supreme sweden swing tape tavern
|
262
|
+
think thomas tictac time toast tobacco
|
263
|
+
tonight torch torso touch toyota trade
|
264
|
+
tribune trinity triton truck trust type
|
265
|
+
under unit urban urgent user value
|
266
|
+
vendor venice verona vibrate virgo visible
|
267
|
+
vista vital voice vortex waiter watch
|
268
|
+
wave weather wedding wheel whiskey wisdom
|
269
|
+
android annex armani cake confide deal
|
270
|
+
define dispute genuine idiom impress include
|
271
|
+
ironic null nurse obscure prefer prodigy
|
272
|
+
ego fax jet job rio ski
|
273
|
+
yes
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'mnemonic_word_list/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "mnemonic_word_list"
|
8
|
+
spec.version = MnemonicWordList::VERSION
|
9
|
+
spec.authors = ["Ivan Vanderbyl"]
|
10
|
+
spec.email = ["ivanvanderbyl@me.com"]
|
11
|
+
spec.summary = %q{An exhaustive list of 1633 mnemonic words resurrected from Web Archive.}
|
12
|
+
spec.homepage = "https://github.com/ivanvanderbyl/mnemonic_word_list"
|
13
|
+
spec.license = "MIT"
|
14
|
+
|
15
|
+
spec.files = `git ls-files -z`.split("\x0")
|
16
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
+
spec.require_paths = ["lib"]
|
19
|
+
|
20
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
21
|
+
spec.add_development_dependency "rake"
|
22
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Word List" do
|
4
|
+
describe ".all" do
|
5
|
+
subject(:all) { MnemonicWordList.all }
|
6
|
+
it "returns an array of all words" do
|
7
|
+
expect(all).to be_a(Array)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "contains all the words" do
|
11
|
+
expect(all.size).to eq 1633
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe ".random_pair" do
|
16
|
+
subject { MnemonicWordList.random_pair }
|
17
|
+
|
18
|
+
it "returns a random two word string" do
|
19
|
+
expect(subject.split(' ').size).to eq 2
|
20
|
+
subject.split(' ').each { |word| expect(word).to be_a String }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
require "mnemonic_word_list"
|
2
|
+
|
3
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
4
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
5
|
+
# The generated `.rspec` file contains `--require spec_helper` which will cause this
|
6
|
+
# file to always be loaded, without a need to explicitly require it in any files.
|
7
|
+
#
|
8
|
+
# Given that it is always loaded, you are encouraged to keep this file as
|
9
|
+
# light-weight as possible. Requiring heavyweight dependencies from this file
|
10
|
+
# will add to the boot time of your test suite on EVERY test run, even for an
|
11
|
+
# individual file that may not need all of that loaded. Instead, consider making
|
12
|
+
# a separate helper file that requires the additional dependencies and performs
|
13
|
+
# the additional setup, and require it from the spec files that actually need it.
|
14
|
+
#
|
15
|
+
# The `.rspec` file also contains a few flags that are not defaults but that
|
16
|
+
# users commonly want.
|
17
|
+
#
|
18
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
19
|
+
RSpec.configure do |config|
|
20
|
+
# rspec-expectations config goes here. You can use an alternate
|
21
|
+
# assertion/expectation library such as wrong or the stdlib/minitest
|
22
|
+
# assertions if you prefer.
|
23
|
+
config.expect_with :rspec do |expectations|
|
24
|
+
# This option will default to `true` in RSpec 4. It makes the `description`
|
25
|
+
# and `failure_message` of custom matchers include text for helper methods
|
26
|
+
# defined using `chain`, e.g.:
|
27
|
+
# be_bigger_than(2).and_smaller_than(4).description
|
28
|
+
# # => "be bigger than 2 and smaller than 4"
|
29
|
+
# ...rather than:
|
30
|
+
# # => "be bigger than 2"
|
31
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
32
|
+
end
|
33
|
+
|
34
|
+
# rspec-mocks config goes here. You can use an alternate test double
|
35
|
+
# library (such as bogus or mocha) by changing the `mock_with` option here.
|
36
|
+
config.mock_with :rspec do |mocks|
|
37
|
+
# Prevents you from mocking or stubbing a method that does not exist on
|
38
|
+
# a real object. This is generally recommended, and will default to
|
39
|
+
# `true` in RSpec 4.
|
40
|
+
mocks.verify_partial_doubles = true
|
41
|
+
end
|
42
|
+
|
43
|
+
# The settings below are suggested to provide a good initial experience
|
44
|
+
# with RSpec, but feel free to customize to your heart's content.
|
45
|
+
=begin
|
46
|
+
# These two settings work together to allow you to limit a spec run
|
47
|
+
# to individual examples or groups you care about by tagging them with
|
48
|
+
# `:focus` metadata. When nothing is tagged with `:focus`, all examples
|
49
|
+
# get run.
|
50
|
+
config.filter_run :focus
|
51
|
+
config.run_all_when_everything_filtered = true
|
52
|
+
|
53
|
+
# Limits the available syntax to the non-monkey patched syntax that is recommended.
|
54
|
+
# For more details, see:
|
55
|
+
# - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
|
56
|
+
# - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
|
57
|
+
# - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching
|
58
|
+
config.disable_monkey_patching!
|
59
|
+
|
60
|
+
# This setting enables warnings. It's recommended, but in some cases may
|
61
|
+
# be too noisy due to issues in dependencies.
|
62
|
+
config.warnings = true
|
63
|
+
|
64
|
+
# Many RSpec users commonly either run the entire suite or an individual
|
65
|
+
# file, and it's useful to allow more verbose output when running an
|
66
|
+
# individual spec file.
|
67
|
+
if config.files_to_run.one?
|
68
|
+
# Use the documentation formatter for detailed output,
|
69
|
+
# unless a formatter has already been configured
|
70
|
+
# (e.g. via a command-line flag).
|
71
|
+
config.default_formatter = 'doc'
|
72
|
+
end
|
73
|
+
|
74
|
+
# Print the 10 slowest examples and example groups at the
|
75
|
+
# end of the spec run, to help surface which specs are running
|
76
|
+
# particularly slow.
|
77
|
+
config.profile_examples = 10
|
78
|
+
|
79
|
+
# Run specs in random order to surface order dependencies. If you find an
|
80
|
+
# order dependency and want to debug it, you can fix the order by providing
|
81
|
+
# the seed, which is printed after each run.
|
82
|
+
# --seed 1234
|
83
|
+
config.order = :random
|
84
|
+
|
85
|
+
# Seed global randomization in this process using the `--seed` CLI option.
|
86
|
+
# Setting this allows you to use `--seed` to deterministically reproduce
|
87
|
+
# test failures related to randomization by passing the same `--seed` value
|
88
|
+
# as the one that triggered the failure.
|
89
|
+
Kernel.srand config.seed
|
90
|
+
=end
|
91
|
+
end
|
metadata
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mnemonic_word_list
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ivan Vanderbyl
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-09-19 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.6'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.6'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description:
|
42
|
+
email:
|
43
|
+
- ivanvanderbyl@me.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- ".gitignore"
|
49
|
+
- ".rspec"
|
50
|
+
- Gemfile
|
51
|
+
- LICENSE.txt
|
52
|
+
- README.md
|
53
|
+
- Rakefile
|
54
|
+
- lib/mnemonic_word_list.rb
|
55
|
+
- lib/mnemonic_word_list/version.rb
|
56
|
+
- lib/mnemonic_word_list/wordlist.txt
|
57
|
+
- mnemonic_word_list.gemspec
|
58
|
+
- spec/mnemonic_word_list_spec.rb
|
59
|
+
- spec/spec_helper.rb
|
60
|
+
homepage: https://github.com/ivanvanderbyl/mnemonic_word_list
|
61
|
+
licenses:
|
62
|
+
- MIT
|
63
|
+
metadata: {}
|
64
|
+
post_install_message:
|
65
|
+
rdoc_options: []
|
66
|
+
require_paths:
|
67
|
+
- lib
|
68
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '0'
|
73
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
requirements: []
|
79
|
+
rubyforge_project:
|
80
|
+
rubygems_version: 2.2.2
|
81
|
+
signing_key:
|
82
|
+
specification_version: 4
|
83
|
+
summary: An exhaustive list of 1633 mnemonic words resurrected from Web Archive.
|
84
|
+
test_files:
|
85
|
+
- spec/mnemonic_word_list_spec.rb
|
86
|
+
- spec/spec_helper.rb
|