-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
174 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# Faker::Markdown | ||
|
||
Generates markdown formatting with Lorem Ipsum text | ||
|
||
```ruby | ||
#Headers - generates a random header format | ||
Faker::Markdown.headers #=> "##### Autem" | ||
|
||
# Emphasis - generates random emphasis formatting on a random word in two sentences | ||
Faker::Markdown.emphasis #=> "Incidunt atque quis repellat id impedit. Quas numquam quod incidunt dicta non. Blanditiis delectus laudantium atque reiciendis qui." | ||
|
||
# Ordered List - generates an ordered list of items between 1 and 10 randomly | ||
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." | ||
|
||
# Unordered List - generates an unordered list of items between 1 and 10 randomly | ||
Faker::Markdown.unordered_list #=> "* Voluptatum aliquid tempora molestiae facilis non sed.\n* Nostrum omnis iste impedit voluptatum dolor.\n* Esse quidem et facere." | ||
|
||
# Inline code - generates an inline code snippet between two sentences | ||
Faker::Markdown.inline_code #=> "Aut eos quis suscipit. `Dignissimos voluptatem expedita qui.` Quo doloremque veritatis tempora aut." | ||
|
||
# Code Block - generates a code block formatted in ruby | ||
Faker::Markdown.block_code #=> "```ruby\nEos quasi qui.\n```" | ||
|
||
# Table - generates a 3x3 table | ||
Faker::Markdown.table #=> "ad | similique | voluptatem\ncorrupti | est | rerum\nmolestiae | quidem | et" | ||
|
||
# Random - randomly chooses an above method | ||
Faker::Markdown.random #=> returns output from a single method outlined above | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
module Faker | ||
class Markdown < Base | ||
class << self | ||
|
||
def headers | ||
"#{fetch('markdown.headers')} #{Lorem.word.capitalize}" | ||
end | ||
|
||
def emphasis | ||
paragraph = Faker::Lorem.paragraph(3) | ||
words = paragraph.split(' ') | ||
position = rand(0..words.length - 1) | ||
formatting = fetch('markdown.emphasis') | ||
words[position] = "#{formatting}#{words[position]}#{formatting}" | ||
words.join(' ') | ||
end | ||
|
||
def ordered_list | ||
number = rand(1..10) | ||
|
||
result = [] | ||
number.times do |i| | ||
result << "#{i.to_s}. #{Faker::Lorem.sentence(1)} \n" | ||
end | ||
result.join('') | ||
end | ||
|
||
def unordered_list | ||
number = rand(1..10) | ||
|
||
result = [] | ||
number.times do |i| | ||
result << "* #{Faker::Lorem.sentence(1)} \n" | ||
end | ||
result.join('') | ||
end | ||
|
||
def inline_code | ||
"`#{Faker::Lorem.sentence(1)}`" | ||
end | ||
|
||
def block_code | ||
"```ruby\n#{Lorem.sentence(1)}\n```" | ||
end | ||
|
||
def table | ||
table = [] | ||
3.times do | ||
table << "#{Lorem.word} | #{Lorem.word} | #{Lorem.word}" | ||
end | ||
table.join("\n") | ||
end | ||
|
||
def random | ||
send(available_methods[rand(0..available_methods.length - 1)]) | ||
end | ||
|
||
private | ||
|
||
def available_methods | ||
Markdown.public_methods(false) - Base.methods | ||
end | ||
|
||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb') | ||
|
||
class TestFakerMarkdown < Test::Unit::TestCase | ||
def setup | ||
@tester = Faker::Markdown | ||
end | ||
|
||
def test_headers | ||
test_trigger = @tester.headers.split(' ') | ||
|
||
assert(test_trigger.length == 2) | ||
assert(test_trigger.first.include?('#')) | ||
end | ||
|
||
def test_emphasis | ||
test_trigger = @tester.emphasis.split('') | ||
|
||
assert(test_trigger.to_set.intersect?(["_", "~", "*", "**"].to_set)) | ||
end | ||
|
||
def test_ordered_list | ||
test_trigger = @tester.ordered_list.split("\n") | ||
|
||
test_trigger.each do |line| | ||
assert_instance_of(Fixnum, line[0].to_i) | ||
end | ||
end | ||
|
||
def test_unordered_list | ||
test_trigger = @tester.unordered_list.split("\n") | ||
|
||
test_trigger.each do |line| | ||
assert_equal("*", line[0]) | ||
end | ||
end | ||
|
||
def test_inline_code | ||
test_trigger = @tester.inline_code.split('') | ||
|
||
assert_equal(test_trigger.first, "`") | ||
assert_equal(test_trigger.last, "`") | ||
end | ||
|
||
def test_block_code | ||
test_trigger = @tester.block_code.split('') | ||
|
||
assert_equal(test_trigger[0], "`") | ||
assert_equal(test_trigger[1], "`") | ||
assert_equal(test_trigger[2], "`") | ||
assert_equal(test_trigger[-1], "`") | ||
assert_equal(test_trigger[-2], "`") | ||
assert_equal(test_trigger[-3], "`") | ||
end | ||
|
||
def test_table | ||
test_trigger = @tester.table.split("\n") | ||
|
||
test_trigger.each do |table_data| | ||
assert_instance_of(String, table_data) | ||
end | ||
|
||
assert_equal(test_trigger.length, 3) | ||
end | ||
|
||
def test_random | ||
test_trigger = @tester.random | ||
|
||
assert_instance_of(String, test_trigger) | ||
end | ||
|
||
end |