Skip to content

Archetylator/goldmine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoldMine

Gem Version

A simple, fortune cookie library for Ruby. GoldMine provides access to the contents of a fortune file. The fortune file is a database which contains fortunes ― funny, offensive, serious and reflective (very rarely) quotes, jokes, or poems. Example.

GoldMine allows to create and read a data file which describes the database. Such a file is called an index. The index always has the same name as the database, but ends with a ".dat" extension. The index created by GoldMine is compatible with a fortune program written by Ken Arnold.

Install

gem install gold_mine

or add this to your Gemfile:

gem "gold_mine"

and run bundle install command.

Getting Started

Create a GoldMine::DB instance that points to a fortune file. After that you have access to that collection via a few methods.

db = GoldMine::DB.new(path: "/home/user/fortunes")
puts db.random # Throws a random fortune
puts db.fortunes # Returns all fortunes

If you don't pass the file path, GoldMine will use default fortunes database which was prepared by Brian M. Clapper.

Options

By passing comments: true option you specify that your fortunes collection includes comments. A comment is identified as a double delimiter at the begging of the line.

You could also define a delimiter by passing delim: "character" option. The default delimiter is a percent sign.

GoldMine::DB.new(path: "/my/fortunes/path", comments: true, delim: "#")

Database with an index

If you need to access the database using the index, use GoldMine::IDB class.

GoldMine::IDB.new(path: "/my/fortunes/path")

You can't pass options to GoldMine::IDB because all options are extracted from the index file.

Fortune

An instance of GoldMine::Fortune class represents a single fortune. Wherever GoldMine returns a single fortune or bundle of them in fact it returns GoldMine::Fortune instances.

fortune = GoldMine::DB.new.random
fortune.content # Returns a body of the fortune
fortune.attribution # Returns an attribution if exists

Create an index

You can pass many options when creating an instance. To learn about all the possibilities, please see the documentation.

writer = GoldMine::IndexWriter.new("/path/to/database")
writer.write

Ideas & bugs

Please submit to issues.

License

"THE BEER-WARE LICENSE" (Revision 42): Marcin "Archetylator" Syngajewski wrote this file. As long as you retain this notice you can do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a beer in return.

About

A simple, fortune cookie library for Ruby

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages