Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
README.markdown

random-word

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.

Usage

You can get a random word any where you need one. Just request the next of which ever word flavor you prefer.

RandomWord.adjs.next  #=> "pugnacious"
RandomWord.nouns.next #=> "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|
  u.name  "#{RandomWord.adjs.next} User"
  u.email {|u| "#{u.name.gsub(/ +/, '.')}@example.com"
end

Factory(:user) #=> ...

Machinist

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}.user@example.com" }
end

Exclusion

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

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

Something went wrong with that request. Please try again.