Class: Faker::Markdown

Inherits:
Base
  • Object
show all
Defined in:
lib/faker/default/markdown.rb

Constant Summary

Constants inherited from Base

Base::LLetters, Base::Letters, Base::NOT_GIVEN, Base::Numbers, Base::ULetters

Class Method Summary collapse

Methods inherited from Base

bothify, disable_enforce_available_locales, fetch, fetch_all, flexible, letterify, method_missing, numerify, parse, rand, rand_in_range, regexify, resolve, respond_to_missing?, sample, shuffle, translate, unique, with_locale

Class Method Details

.block_codeString

Produces a random code block formatted in Ruby.

Examples:

Faker::Markdown.block_code #=> "```ruby\nEos quasi qui.\n```"


97
98
99
# File 'lib/faker/default/markdown.rb', line 97

def block_code
  "```ruby\n#{Lorem.sentence(word_count: 1)}\n```"
end

.emphasisString

Produces a random emphasis formatting on a random word in two sentences.

Examples:

Faker::Markdown.emphasis #=> "_Incidunt atque quis repellat id impedit.  Quas numquam quod incidunt dicta non. Blanditiis delectus laudantium atque reiciendis qui._"


28
29
30
31
32
33
34
35
# File 'lib/faker/default/markdown.rb', line 28

def emphasis
  paragraph = Faker::Lorem.paragraph(sentence_count: 3)
  words = paragraph.split(' ')
  position = rand(0..words.length - 1)
  formatting = fetch('markdown.emphasis')
  words[position] = "#{formatting}#{words[position]}#{formatting}"
  words.join(' ')
end

.headersString

Produces a random header format.

Examples:

Faker::Markdown.headers #=> "##### Autem"


15
16
17
# File 'lib/faker/default/markdown.rb', line 15

def headers
  "#{fetch('markdown.headers')} #{Lorem.word.capitalize}"
end

.inline_codeString

Produces a random inline code snippet between two sentences.

Examples:

Faker::Markdown.inline_code #=> "Aut eos quis suscipit. `Dignissimos voluptatem expedita qui.` Quo doloremque veritatis tempora aut."


84
85
86
# File 'lib/faker/default/markdown.rb', line 84

def inline_code
  "`#{Faker::Lorem.sentence(word_count: 1)}`"
end

.ordered_listString

Produces a random ordered list of items between 1 and 10 randomly.

Examples:

Faker::Markdown.ordered_list #=> "1. Qui reiciendis non consequatur atque.\n2. Quo doloremque veritatis tempora aut.\n3. Aspernatur.\n4. Ea ab.\n5. Qui.\n6. Sit pariatur nemo eveniet.\n7. Molestiae aut.\n8. Nihil molestias iure placeat.\n9. Dolore autem quisquam."


46
47
48
49
50
51
52
53
54
# File 'lib/faker/default/markdown.rb', line 46

def ordered_list
  number = rand(1..10)

  result = []
  number.times do |i|
    result << "#{i}. #{Faker::Lorem.sentence(word_count: 1)} \n"
  end
  result.join('')
end

.random(methods) ⇒ String+

Produces a random method from the methods above, excluding the methods listed in the arguments.

Examples:

Faker::Markdown.random #=> returns output from a single method outlined above
Faker::Markdown.random("table") #=> returns output from any single method outlined above except for "table"
Faker::Markdown.random("ordered_list", "unordered_list") #=> returns output from any single method outlined above except for either ordered_list and unordered_list


133
134
135
136
137
# File 'lib/faker/default/markdown.rb', line 133

def random(*args)
  method_list = available_methods
  args&.each { |ex| method_list.delete_if { |meth| meth == ex.to_sym } }
  send(method_list[rand(0..method_list.length - 1)])
end

.sandwich(legacy_sentences = NOT_GIVEN, legacy_repeat = NOT_GIVEN, sentences: 3, repeat: 1) ⇒ String

Produces a simulated blog-esque text-heavy block in markdown

Keyword arguments: sentences, repeat

Examples:

Faker::Markdown.sandwich #=> returns newline separated content of 1 header, 1 default lorem paragraph, and 1 random markdown element
Faker::Markdown.sandwich(sentences: 5) #=> returns newline separated content of 1 header, 1 5-sentence lorem paragraph, and 1 random markdown element
Faker::Markdown.sandwich(sentences: 6, repeat: 3) #=> returns newline separated content of 1 header, and then 3 sections consisting of, here, 1 6-sentence lorem paragraph and 1 random markdown element. The random markdown element is chosen at random in each iteration of the paragraph-markdown pairing.


153
154
155
156
157
158
159
160
161
162
163
164
165
166
# File 'lib/faker/default/markdown.rb', line 153

def sandwich(legacy_sentences = NOT_GIVEN, legacy_repeat = NOT_GIVEN, sentences: 3, repeat: 1)
  warn_for_deprecated_arguments do |keywords|
    keywords << :sentences if legacy_sentences != NOT_GIVEN
    keywords << :repeat if legacy_repeat != NOT_GIVEN
  end

  text_block = []
  text_block << headers
  repeat.times do
    text_block << Faker::Lorem.paragraph(sentence_count: sentences)
    text_block << random
  end
  text_block.join("\n")
end

.tableString

Produces a random 3x4 table with a row of headings, a row of hyphens and two rows of data

Examples:

Faker::Markdown.table #=> "ad | similique | voluptatem\n---- | ---- | ----\ncorrupti | est | rerum\nmolestiae | quidem | et"


110
111
112
113
114
115
116
117
# File 'lib/faker/default/markdown.rb', line 110

def table
  table = []
  3.times do
    table << "#{Lorem.word} | #{Lorem.word} | #{Lorem.word}"
  end
  table.insert(1, '---- | ---- | ----')
  table.join("\n")
end

.unordered_listString

Produces a random unordered list of items between 1 and 10 randomly.

Examples:

Faker::Markdown.unordered_list #=> "* Voluptatum aliquid tempora molestiae facilis non sed.\n* Nostrum omnis iste impedit voluptatum dolor.\n* Esse quidem et facere."


65
66
67
68
69
70
71
72
73
# File 'lib/faker/default/markdown.rb', line 65

def unordered_list
  number = rand(1..10)

  result = []
  number.times do |_i|
    result << "* #{Faker::Lorem.sentence(word_count: 1)} \n"
  end
  result.join('')
end