Skip to content
No description or website provided.
Find file
Pull request Compare This branch is even with openlogic:master.
Latest commit e8ba268 Jul 29, 2013 @eweidner eweidner Updating Copyright
Failed to load latest commit information.
lib Update version, history and readme for the exclude list feature Jan 12, 2012
spec Added exclude_list so that words or regexs can be skipped Jan 9, 2012
Gemfile Updating Copyright Jul 29, 2013
HISTORY.markdown Update version, history and readme for the exclude list feature Jan 12, 2012
LICENSE.txt Updating Copyright Jul 29, 2013



A random word generator intended for use in test data factories. This library uses a large list (the wordnet corpus) of english words and provides an enumerator interface to that corpus that will return the words in a random order without repeats.


You can get a random word any where you need one. Just request the next of which ever word flavor you prefer.  #=> "pugnacious" #=> "audience"

Factory Girl

This library was first developed to use in factories. It can be used with Factory Girl like this.

Factory.define(:user) do |u|  "#{} User" {|u| "#{ +/, '.')}"

Factory(:user) #=> ...


For Machinist a #sw (short for serial word) method is provided. It works exactly like #sn but it returns a string instead of a number.

User.blueprint do 
  name  { "#{sw.capitalize} User" }
  email { "#{sw}" }


Words may be excluded by pattern, or exact match. To do this just add an object that responds to #=== to the exclude list.

RandomWord.exclude_list << /fo+/
RandomWord.exclude_list << 'bar'

This will prevent the return of the exact string "bar" and any word which matches the regex /fo+/.

Contributing to random-word

  • Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
  • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
  • Fork the project
  • Start a feature/bugfix branch
  • Commit and push until you are happy with your contribution
  • Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
  • Update history
  • Update version (remember to use semantic versioning)
  • Commit and push
  • Send me a pull request. Bonus points for topic branches.


Copyright (c) 2011 OpenLogic, Inc. See LICENSE.txt for further details.

Something went wrong with that request. Please try again.