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