Content Spinning lib for ruby
Ruby
Switch branches/tags
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.gitignore
.rspec
.rubocop.yml
.ruby-version
.travis.yml
Gemfile
Guardfile
LICENSE
README.md
Rakefile
benchmark.rb
content_spinning.gemspec
profile.rb

README.md

Content Spinning

Gem Version Build Status

ContentSpinning is a ruby library made to spin some text. It manages nested spinning.

Example

"Hi {there|you}! I'm {efficient|productive}.".spin
# or
ContentSpinning.spin("Hi {there|you}! I'm {efficient|productive}.")

returns this array :

[
  "Hi there! I'm efficient.",
  "Hi there! I'm productive.",
  "Hi you! I'm efficient.",
  "Hi you! I'm productive."
]

Install

gem install content_spinning

Usage

All spins

Calculating the number of possibilities:

> ContentSpinning.new("Hi {there|you}! I'm {efficient|productive}.").count

4

Generating:

> ContentSpinning.new("Hi {there|you}! I'm {efficient|productive}.").spin

[
  "Hi there! I'm efficient.",
  "Hi there! I'm productive.",
  "Hi you! I'm efficient.",
  "Hi you! I'm productive."
]

Beware, spins being combinatory, generating all the spins could be quite long.

Partial spins

There is no guaranty of unicity among the results returned (this is random). If you ask for a limit greater than the number of possibilities, this returns all the possibilities.

> ContentSpinning.new("Hi {there|you}! I'm {efficient|productive}.").spin(limit: 2)

[
  "Hi there! I'm efficient.",
  "Hi you! I'm productive."
]

> ContentSpinning.new("Hi {there|you}! I'm {efficient|productive}.").spin(limit: 500)

[
  "Hi there! I'm efficient.",
  "Hi there! I'm productive.",
  "Hi you! I'm efficient.",
  "Hi you! I'm productive."
]

Todo

A few things to do :

  • Executable