/well_read_faker

A replacement for various lorem ipsum generators. Returns random fragments of Iliad or any other book.

Primary LanguageRubyMIT LicenseMIT

Well Read Faker

Version Build Status Code Climate Test Coverage

Basic usage

Call WellReadFaker.paragraph to get a random paragraph. For example, following piece of code:

puts WellReadFaker.paragraph

Could print (without newlines):

Thus they prayed, but not as yet would Jove grant them their prayer.
Then Priam, descendant of Dardanus, spoke, saying, "Hear me, Trojans
and Achaeans, I will now go back to the wind-beaten city of Ilius: I
dare not with my own eyes witness this fight between my son and
Menelaus, for Jove and the other immortals alone know which shall fall."

Custom sources

Well Read Faker comes with "Iliad" bundled as a default source. However, custom sources can be used:

WellReadFaker.add_source :book_in_my_language, "path/to/book", {}
WellReadFaker[:book_in_my_language].paragraph
WellReadFaker.default_source = :book_in_my_language
WellReadFaker.paragraph
WellReadFaker[:iliad].paragraph # Iliad can be still accessed

The second argument passed to WellReadFaker::add_source can be a string containing a file path, or any object which responds to #read, like File instance.

The third argument is optional but can be used to supply additional options, for example to skip book descriptor or legal notes. See lib/well_read_faker/load_bundled_sources.rb for examples.

In the source text, paragraphs must be separated with blank lines.

Note about randomness quality

For given text source, the paragraphs are returned in a random order, but will not be repeated (in the sense of String#== equality) until all unique paragraphs from that text are returned exactly once. After that, they are returned once again in the same order.

Therefore it is guaranteed that if given source text contains n unique paragraphs, then n subsequent calls of #paragraph method will return unique values.

For your information, The Iliad contains over 1000 unique paragraphs.

License

The gem is available as open source under the terms of the MIT License.

The gem includes "Iliad", a classical masterpiece by Homer, translated to English by Samuel Butler. A work is in public domain in USA and in almost whole world (if not whole world) as the translator has died over 100 years ago (not to mention the original author). It has been downloaded from Project Gutenberg, more details about the work can be found there.