class ProgrammingIpsum::Base

Public Class Methods

new(phrases, context) click to toggle source
# File lib/programming_ipsum/base.rb, line 6
def initialize(phrases, context)
  @phrases = phrases
  @render_context = RenderContext.new(context)
end

Public Instance Methods

all_phrases() click to toggle source

For debugging purposes only - not optimized for general use

# File lib/programming_ipsum/base.rb, line 18
def all_phrases
  width = @phrases.length.to_s.length

  # twice as fast as string concat!
  input = @phrases.each_with_index.map do |phrase, i|
    i.to_s.rjust(width) + ": " + phrase
  end.join("\n")

  render(input)
end
sequence(count = 3) click to toggle source

Render a sequence of phrases for this ipsum Does not guarantee a number of sentences, just phrases.

# File lib/programming_ipsum/base.rb, line 13
def sequence(count = 3)
  render @phrases.sample(count).join(" ")
end

Private Instance Methods

render(input) click to toggle source
# File lib/programming_ipsum/base.rb, line 30
def render(input)
  ERB.new(input).result @render_context.binding
end