-
Notifications
You must be signed in to change notification settings - Fork 13
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
10 changed files
with
763 additions
and
6 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,41 @@ | ||
# Faker.Hipster | ||
|
||
Adapted from [Hipster Ipsum](https://hipsum.co/) | ||
|
||
```cs | ||
Faker.Hipster.Word() //=> "irony" | ||
# Optional arguments: count=3, supplemental=false, spacesAllowed = false | ||
Faker.Hipster.Words() //=> ["pug", "pitchfork", "chia"] | ||
Faker.Hipster.Words(4) //=> ["ugh", "cardigan", "poutine", "stumptown"] | ||
Faker.Hipster.Words(4, true) //=> ["iste", "seitan", "normcore", "provident"] | ||
Faker.Hipster.Words(4, true, true) //=> ["qui", "magni", "craft beer", "est"] | ||
# Optional arguments: wordCount=4, supplemental=false, randomWordsToAdd=6 | ||
Faker.Hipster.Sentence() //=> "Park iphone leggings put a bird on it." | ||
Faker.Hipster.Sentence(3) //=> "Pour-over swag godard." | ||
Faker.Hipster.Sentence(3, true) //=> "Beard laboriosam sequi celiac." | ||
Faker.Hipster.Sentence(3, false, 4) //=> "Bitters retro mustache aesthetic biodiesel 8-bit." | ||
Faker.Hipster.Sentence(3, true, 4) //=> "Occaecati deleniti messenger bag meh crucifix autem." | ||
# Optional arguments: sentenceCount=3, supplemental=false | ||
Faker.Hipster.Sentences() //=> ["Godard pitchfork vinegar chillwave everyday 90's whatever.", "Pour-over artisan distillery street waistcoat.", "Salvia yr leggings franzen blue bottle."] | ||
Faker.Hipster.Sentences(1)() //=> ["Before they sold out pinterest venmo umami try-hard ugh hoodie artisan."] | ||
Faker.Hipster.Sentences(1, true) //=> ["Et sustainable optio aesthetic et."] | ||
# Optional arguments: sentenceCount=3, supplemental=false, randomSentencesToAdd=3 | ||
Faker.Hipster.Paragraph() //=> "Migas fingerstache pbr&b tofu. Polaroid distillery typewriter echo tofu actually. Slow-carb fanny pack pickled direct trade scenester mlkshk plaid. Banjo venmo chambray cold-pressed typewriter. Fap skateboard intelligentsia." | ||
Faker.Hipster.Paragraph(2) //=> "Yolo tilde farm-to-table hashtag. Lomo kitsch disrupt forage +1." | ||
Faker.Hipster.Paragraph(2, true) //=> "Typewriter iste ut viral kombucha voluptatem. Sint voluptates saepe. Direct trade irony chia excepturi yuccie. Biodiesel esse listicle et quam suscipit." | ||
Faker.Hipster.Paragraph(2, false, 4) //=> "Selvage vhs chartreuse narwhal vinegar. Authentic vinyl truffaut carry vhs pop-up. Hammock everyday iphone locavore thundercats bitters vegan goth. Fashion axe banh mi shoreditch whatever artisan." | ||
Faker.Hipster.Paragraph(2, true, 4) //=> "Deep v gluten-free unde waistcoat aperiam migas voluptas dolorum. Aut drinking illo sustainable sapiente. Direct trade fanny pack kale chips ennui semiotics." | ||
# Optional arguments: paragraphCount=3, supplemental=false | ||
Faker.Hipster.Paragraphs() //=> ["Tilde microdosing blog cliche meggings. Intelligentsia five dollar toast forage yuccie. Master kitsch knausgaard. Try-hard everyday trust fund mumblecore.", "Normcore viral pickled. Listicle humblebrag swag tote bag. Taxidermy street hammock neutra butcher cred kale chips. Blog portland humblebrag trust fund irony.", "Single-origin coffee fixie cleanse tofu xoxo. Post-ironic tote bag ramps gluten-free locavore mumblecore hammock. Umami loko twee. Ugh kitsch before they sold out."] | ||
Faker.Hipster.Paragraphs(1) //=> ["Skateboard cronut synth +1 fashion axe. Pop-up polaroid skateboard asymmetrical. Ennui fingerstache shoreditch before they sold out. Tattooed pitchfork ramps. Photo booth yr messenger bag raw denim bespoke locavore lomo synth."] | ||
Faker.Hipster.Paragraphs(1, true) //=> ["Quae direct trade pbr&b quo taxidermy autem loko. Umami quas ratione migas cardigan sriracha minima. Tenetur perspiciatis pickled sed eum doloribus truffaut. Excepturi dreamcatcher meditation."] | ||
# Optional arguments: chars=3, supplemental=false | ||
Faker.Hipster.ParagraphByChars() //=> "Truffaut stumptown trust fund 8-bit messenger bag portland. Meh kombucha selvage swag biodiesel. Lomo kinfolk jean shorts asymmetrical diy. Wayfarers portland twee stumptown. Wes anderson biodiesel retro 90's pabst. Diy echo 90's mixtape semiotics. Cornho." | ||
Faker.Hipster.ParagraphByChars(256, false) //=> "Hella kogi blog narwhal sartorial selfies mustache schlitz. Bespoke normcore kitsch cred hella fixie. Park aesthetic fixie migas twee. Cliche mustache brunch tumblr fixie godard. Drinking pop-up synth hoodie dreamcatcher typewriter. Kitsch biodiesel green." | ||
``` |
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,216 @@ | ||
using System.Collections.Generic; | ||
|
||
namespace FakerDotNet.Data | ||
{ | ||
internal static class HipsterData | ||
{ | ||
public static readonly IEnumerable<string> Words = new[] | ||
{ | ||
"Wes Anderson", | ||
"chicharrones", | ||
"narwhal", | ||
"food truck", | ||
"marfa", | ||
"aesthetic", | ||
"keytar", | ||
"art party", | ||
"sustainable", | ||
"forage", | ||
"mlkshk", | ||
"gentrify", | ||
"locavore", | ||
"swag", | ||
"hoodie", | ||
"microdosing", | ||
"VHS", | ||
"before they sold out", | ||
"pabst", | ||
"plaid", | ||
"Thundercats", | ||
"freegan", | ||
"scenester", | ||
"hella", | ||
"occupy", | ||
"truffaut", | ||
"raw denim", | ||
"beard", | ||
"post-ironic", | ||
"photo booth", | ||
"twee", | ||
"90's", | ||
"pitchfork", | ||
"cray", | ||
"cornhole", | ||
"kale chips", | ||
"pour-over", | ||
"yr", | ||
"five dollar toast", | ||
"kombucha", | ||
"you probably haven't heard of them", | ||
"mustache", | ||
"fixie", | ||
"try-hard", | ||
"franzen", | ||
"kitsch", | ||
"austin", | ||
"stumptown", | ||
"keffiyeh", | ||
"whatever", | ||
"tumblr", | ||
"DIY", | ||
"shoreditch", | ||
"biodiesel", | ||
"vegan", | ||
"pop-up", | ||
"banjo", | ||
"kogi", | ||
"cold-pressed", | ||
"letterpress", | ||
"chambray", | ||
"butcher", | ||
"synth", | ||
"trust fund", | ||
"hammock", | ||
"farm-to-table", | ||
"intelligentsia", | ||
"loko", | ||
"ugh", | ||
"offal", | ||
"poutine", | ||
"gastropub", | ||
"Godard", | ||
"jean shorts", | ||
"sriracha", | ||
"dreamcatcher", | ||
"leggings", | ||
"fashion axe", | ||
"church-key", | ||
"meggings", | ||
"tote bag", | ||
"disrupt", | ||
"readymade", | ||
"helvetica", | ||
"flannel", | ||
"meh", | ||
"roof", | ||
"hashtag", | ||
"knausgaard", | ||
"cronut", | ||
"schlitz", | ||
"green juice", | ||
"waistcoat", | ||
"normcore", | ||
"viral", | ||
"ethical", | ||
"actually", | ||
"fingerstache", | ||
"humblebrag", | ||
"deep v", | ||
"wayfarers", | ||
"tacos", | ||
"taxidermy", | ||
"selvage", | ||
"put a bird on it", | ||
"ramps", | ||
"portland", | ||
"retro", | ||
"kickstarter", | ||
"bushwick", | ||
"brunch", | ||
"distillery", | ||
"migas", | ||
"flexitarian", | ||
"XOXO", | ||
"small batch", | ||
"messenger bag", | ||
"heirloom", | ||
"tofu", | ||
"bicycle rights", | ||
"bespoke", | ||
"salvia", | ||
"wolf", | ||
"selfies", | ||
"echo", | ||
"park", | ||
"listicle", | ||
"craft beer", | ||
"chartreuse", | ||
"sartorial", | ||
"pinterest", | ||
"mumblecore", | ||
"kinfolk", | ||
"vinyl", | ||
"etsy", | ||
"umami", | ||
"8-bit", | ||
"polaroid", | ||
"banh mi", | ||
"crucifix", | ||
"bitters", | ||
"brooklyn", | ||
"PBR&B", | ||
"drinking", | ||
"vinegar", | ||
"squid", | ||
"tattooed", | ||
"skateboard", | ||
"vice", | ||
"authentic", | ||
"literally", | ||
"lomo", | ||
"celiac", | ||
"health", | ||
"goth", | ||
"artisan", | ||
"chillwave", | ||
"blue bottle", | ||
"pickled", | ||
"next level", | ||
"neutra", | ||
"organic", | ||
"Yuccie", | ||
"paleo", | ||
"blog", | ||
"single-origin coffee", | ||
"seitan", | ||
"street", | ||
"gluten-free", | ||
"mixtape", | ||
"venmo", | ||
"irony", | ||
"everyday", | ||
"carry", | ||
"slow-carb", | ||
"3 wolf moon", | ||
"direct trade", | ||
"lo-fi", | ||
"tousled", | ||
"tilde", | ||
"semiotics", | ||
"cred", | ||
"chia", | ||
"master", | ||
"cleanse", | ||
"ennui", | ||
"quinoa", | ||
"pug", | ||
"iPhone", | ||
"fanny pack", | ||
"cliche", | ||
"cardigan", | ||
"asymmetrical", | ||
"meditation", | ||
"YOLO", | ||
"typewriter", | ||
"pork belly", | ||
"shabby chic", | ||
"+1", | ||
"lumbersexual", | ||
"williamsburg", | ||
"muggle magic", | ||
"phlogiston" | ||
}; | ||
|
||
public static readonly IEnumerable<string> Supplemental = LoremData.Supplemental; | ||
} | ||
} |
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
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,92 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using System.Text.RegularExpressions; | ||
using FakerDotNet.Data; | ||
|
||
namespace FakerDotNet.Fakers | ||
{ | ||
public interface IHipsterFaker | ||
{ | ||
string Word(); | ||
IEnumerable<string> Words(int count = 3, bool supplemental = false, bool spacesAllowed = false); | ||
string Sentence(int wordCount = 4, bool supplemental = false, int randomWordsToAdd = 6); | ||
IEnumerable<string> Sentences(int sentenceCount = 3, bool supplemental = false); | ||
string Paragraph(int sentenceCount = 3, bool supplemental = false, int randomSentencesToAdd = 3); | ||
IEnumerable<string> Paragraphs(int paragraphCount = 3, bool supplemental = false); | ||
string ParagraphByChars(int chars = 256, bool supplemental = false); | ||
} | ||
|
||
internal class HipsterFaker : IHipsterFaker | ||
{ | ||
private readonly IFakerContainer _fakerContainer; | ||
|
||
public HipsterFaker(IFakerContainer fakerContainer) | ||
{ | ||
_fakerContainer = fakerContainer; | ||
} | ||
|
||
public string Word() | ||
{ | ||
var word = _fakerContainer.Random.Element(HipsterData.Words); | ||
|
||
return word.Contains(" ") ? Word() : word; | ||
} | ||
|
||
public IEnumerable<string> Words(int count = 3, bool supplemental = false, bool spacesAllowed = false) | ||
{ | ||
var wordList = supplemental | ||
? HipsterData.Words.Concat(HipsterData.Supplemental) | ||
: HipsterData.Words; | ||
|
||
if (!spacesAllowed) wordList = wordList.Where(word => !word.Contains(" ")); | ||
|
||
return _fakerContainer.Random.Assortment(wordList, count); | ||
} | ||
|
||
public string Sentence(int wordCount = 4, bool supplemental = false, int randomWordsToAdd = 6) | ||
{ | ||
var count = wordCount + (int) _fakerContainer.Number.Between(0, randomWordsToAdd); | ||
var text = Capitalize(string.Join(" ", Words(count, supplemental))); | ||
return text.Length > 0 ? $"{text}." : ""; | ||
} | ||
|
||
public IEnumerable<string> Sentences(int sentenceCount = 3, bool supplemental = false) | ||
{ | ||
return sentenceCount > 0 | ||
? Enumerable.Range(0, sentenceCount).Select(_ => Sentence(3, supplemental)) | ||
: Enumerable.Empty<string>(); | ||
} | ||
|
||
public string Paragraph(int sentenceCount = 3, bool supplemental = false, int randomSentencesToAdd = 3) | ||
{ | ||
var count = sentenceCount + (int) _fakerContainer.Number.Between(0, randomSentencesToAdd); | ||
return string.Join(" ", Sentences(count, supplemental)); | ||
} | ||
|
||
public IEnumerable<string> Paragraphs(int paragraphCount = 3, bool supplemental = false) | ||
{ | ||
return paragraphCount > 0 | ||
? Enumerable.Range(0, paragraphCount).Select(_ => Paragraph(3, supplemental)) | ||
: Enumerable.Empty<string>(); | ||
} | ||
|
||
public string ParagraphByChars(int chars = 256, bool supplemental = false) | ||
{ | ||
var paragraph = ""; | ||
|
||
do | ||
{ | ||
paragraph += $"{Paragraph(3, supplemental)} "; | ||
} while (paragraph.Length < chars); | ||
|
||
return $"{paragraph.Trim().Substring(0, chars - 1)}."; | ||
} | ||
|
||
private static string Capitalize(string text) | ||
{ | ||
return Regex.Replace(text, @"^\w", m => m.Value.ToUpperInvariant()); | ||
} | ||
} | ||
} | ||
|
Oops, something went wrong.