module FFaker::HTMLIpsum
def a(word_count = 2)
def a(word_count = 2) "<a href=\"##{word}\" title=\"#{words(word_count).capitalize!}\">#{words(word_count).capitalize!}</a>" end
def body
def body body = content_tag_for(:h1, words(2).capitalize) rand(0..3).times do body << content_tag_for(:p, fancy_string) end body << table(rand(0..3)) body << content_tag_for(:h2, words(2).capitalize) body << content_tag_for(:ol) do |ol| rand(0..3).times do ol << content_tag_for(:li, paragraph(1)) end end body << content_tag_for(:blockquote) do |bq| bq << content_tag_for(:p, paragraphs(3)) end body << content_tag_for(:h3, words(2).capitalize!) body << content_tag_for(:ul) do |ul| rand(0..3).times do ul << content_tag_for(:li, paragraph(1)) end end body << content_tag_for(:pre) do |pre| pre << content_tag_for(:code) do |code| code << " ##{word} h1 a { display: block; width: 300px; height: 80px; } " end end body end
def content_tag_for(element, content = nil)
def content_tag_for(element, content = nil) element_content = if content content else block_html = +'' yield(block_html) block_html end +"<#{element}>#{element_content}</#{element}>" end
def dl(definitions = 2)
def dl(definitions = 2) content_tag_for :dl do |dl| definitions.times do dl << content_tag_for(:dt, words(1).capitalize!) dl << content_tag_for(:dd, paragraph(2)) end end end
def fancy_string(count = 3, include_breaks = false)
def fancy_string(count = 3, include_breaks = false) sep = include_breaks ? '<br>' : ' ' a = k([ content_tag_for(:strong, words(2).capitalize!), content_tag_for(:em, paragraph), content_tag_for(:mark, paragraph), content_tag_for(:del, words(2)), content_tag_for(:ins, words(2)), content_tag_for(:sub, words(2)), content_tag_for(:sup, words(2)), content_tag_for(:code, words(2)), content_tag_for(:small, words(2)), (a 2).to_s ] + FFaker::Lorem.paragraphs(count - 1)) fetch_sample(a, count: count).join(sep) end
def ol_long(items = 3)
def ol_long(items = 3) content_tag_for :ol do |ol| items.times do ol << content_tag_for(:li, paragraph(2)) end end end
def ol_short(items = 3)
def ol_short(items = 3) content_tag_for :ol do |ol| items.times do ol << content_tag_for(:li, sentence(2)) end end end
def p(count = 3, options = {})
def p(count = 3, options = {}) options = { fancy: false, include_breaks: false }.merge(options) if options[:fancy] s = fancy_string(count, options[:include_breaks]) else mode = options[:include_breaks] ? 'paragraphs' : 'paragraph' s = send(mode.to_sym, count) end content_tag_for(:p, s) end
def paragraph(sentence_count = 3)
def paragraph(sentence_count = 3) FFaker::Lorem.paragraph(sentence_count) end
def paragraphs(paragraph_count = 3)
def paragraphs(paragraph_count = 3) FFaker::Lorem.paragraphs(paragraph_count).join('<br>') end
def sentence(word_count = 3)
def sentence(word_count = 3) FFaker::Lorem.sentence(word_count) end
def sentences(sentence_count = 3)
def sentences(sentence_count = 3) FFaker::Lorem.sentences(sentence_count).join(' ') end
def table(rows = 3)
def table(rows = 3) content_tag_for(:table) do |table| table << content_tag_for(:thead) do |thead| thead << content_tag_for(:tr) do |tr| tr << content_tag_for(:th, word.capitalize) tr << content_tag_for(:th, word.capitalize) tr << content_tag_for(:th, word.capitalize) tr << content_tag_for(:th, word.capitalize) end end table << content_tag_for(:tbody) do |tbody| rows.times do tbody << content_tag_for(:tr) do |tr| tr << content_tag_for(:td, words(1).capitalize) tr << content_tag_for(:td, words(1).capitalize) tr << content_tag_for(:td, words(1).capitalize) tr << content_tag_for(:td, a) end end end end end
def ul_links(items = 3)
def ul_links(items = 3) content_tag_for :ul do |ul| items.times do ul << content_tag_for(:li, a(1)) end end end
def ul_long(items = 3)
def ul_long(items = 3) content_tag_for :ul do |ul| items.times do ul << content_tag_for(:li, paragraph(2)) end end end
def ul_short(items = 3)
def ul_short(items = 3) content_tag_for :ul do |ul| items.times do ul << content_tag_for(:li, sentence(2)) end end end
def word
def word FFaker::Lorem.word end
def words(word_count = 3)
def words(word_count = 3) FFaker::Lorem.words(word_count).join(' ') end