class DogeIpsum::Wow

Constants

OPTIONS

Public Class Methods

generate(opts = {}) click to toggle source
# File lib/dogeipsum/wow.rb, line 7
def self.generate(opts = {})
  new opts
end
method_missing(name, *args) click to toggle source
Calls superclass method
# File lib/dogeipsum/wow.rb, line 11
def self.method_missing(name, *args)
  if name.to_s.index('many_') == 0
    generate(name.to_s.split('many_').last.to_sym => args.first)
  else
    super
  end
end
new(opts) click to toggle source
# File lib/dogeipsum/wow.rb, line 25
def initialize(opts)
  @lorem = ""

  if opts.empty?
    @lorem = get_paragraph
  else
    opts.keys.sort do |a, b|
      -(a <=> b)
    end
    .map do |key|
      if OPTIONS.include?(key)
        add_to_lorem = opts[key].times.inject("") {|sum, time| [sum, get(key)].reject(&:empty?).join(' ')}
        @lorem = [@lorem, add_to_lorem].join(' ')
      end 
    end
  end
end

Public Instance Methods

to_s() click to toggle source
# File lib/dogeipsum/wow.rb, line 19
def to_s
  @lorem
end

Private Instance Methods

get(key) click to toggle source
# File lib/dogeipsum/wow.rb, line 60
def get(key)
  self.send("get_"+key.to_s.chop)
end
get_line() click to toggle source
# File lib/dogeipsum/wow.rb, line 49
def get_line
  4.times.inject("") do |sum, time|
    sum = [sum, get_word].reject(&:empty?).join(', ')
  end
  .concat "!"
end
get_paragraph() click to toggle source
# File lib/dogeipsum/wow.rb, line 43
def get_paragraph
  4.times.inject("") do |sum, time| 
    [sum, get_line.capitalize].reject(&:empty?).join(' ')
  end
end
get_word() click to toggle source
# File lib/dogeipsum/wow.rb, line 56
def get_word
  [doge_modifiers[rand(doge_modifiers.count)], doge_nouns[rand(doge_nouns.count)]].join(' ')
end