Improvise generates random words by learning from existing text.
Add this line to your application's Gemfile:
gem 'improvise'
And then execute:
$ bundle
Or install it yourself as:
$ gem install improvise
Require the 'improvise' gem:
require 'improvise'
Create a new dictionary with depth 3:
dict = Improvise::ForwardDictionary.new(3)
Or create a reversed dictionary with depth 3:
dict = Improvise::ReverseDictionary.new(3)
Learn from a list of existing words:
dict.learn!([
'ruby',
'sapphire',
'pearl',
'diamond',
'amethyst',
'topaz',
'emerald'
])
Generate a 6-letter word:
dict.generate_word(6)
Generate a 7-letter word, starting with 'top':
dict.generate_word(7, 'top')
Write a dictionary in Ruby's Marshal format to a file called 'dict.bin':
dict_file = File.open('dict.bin', 'w')
Improvise::IO::DictionaryWriter.write(dict_file, dict)
Write a dictionary in Ruby's Marshal format, gzipped, to a file called 'dict.bin.gz':
dict_file = File.open('dict.bin.gz', 'w')
Improvise::IO::DictionaryWriter.write(dict_file, dict, gzip: true)
Write a dictionary in json format, gzipped, to a file called 'dict.json.gz':
dict_file = File.open('dict.json.gz', 'w')
Improvise::IO::DictionaryWriter.write(dict_file, dict, format: :json, gzip: true)
Note: writing a dictionary closes the passed IO object.
Restore a dictionary from a file called 'dict.bin' in Ruby's Marshal format:
dict_file = File.open('dict.bin', 'r')
dict = Improvise::IO::DictionaryReader.read(dict_file)
Restore a dictionary from a file called 'dict.bin.gz' in Ruby's Marshal format, gzipped:
dict_file = File.open('dict.bin.gz', 'r')
dict = Improvise::IO::DictionaryReader.read(dict_file, gzip: true)
Restore a dictionary from a file called 'dict.json.gz' in json format, gzipped:
dict_file = File.open('dict.json.gz', 'r')
dict = Improvise::IO::DictionaryReader.read(dict_file, format: :json, gzip: true)
Note: reading a dictionary closes the passed IO object.
A command-line interface to the library has been provided under the name 'improvise'.
Run improvise --help
to get a list of available commands.
- Fork
- Branch (
git checkout -b my-new-feature
) - Commit (
git commit -am 'Added some feature'
) - Push (
git push origin my-new-feature
) - Pull request