Skip to content

Instantly share code, notes, and snippets.

@dvdsgl
Last active December 22, 2015 13:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dvdsgl/6477020 to your computer and use it in GitHub Desktop.
Save dvdsgl/6477020 to your computer and use it in GitHub Desktop.
Need some placeholder text in your Xamarin app?
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace Gibberish
{
public static class LoremIpsum
{
const string Corpus = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ornare id erat a pellentesque. Integer tincidunt velit odio, molestie varius lorem volutpat at. Sed ultricies ligula orci, congue condimentum libero sollicitudin non. Morbi eget nisl facilisis, semper enim in, lacinia ligula. Etiam felis leo, malesuada non consequat ut, dignissim vitae arcu. Quisque a turpis sodales, dignissim nunc posuere, ornare risus. Nunc vitae ligula porttitor, consectetur odio ut, condimentum ipsum.
Sed rhoncus interdum porttitor. Quisque et diam ut dui porta ullamcorper. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla sit amet ligula mattis, convallis sapien a, dignissim nisi. Nulla eleifend, felis eu viverra aliquam, mauris urna porta augue, ac egestas metus quam quis odio. Donec ultricies purus id nibh sodales fermentum. Sed vitae facilisis erat. Morbi risus magna, vehicula ac orci ac, venenatis facilisis ligula. Nullam eu mauris rutrum, rutrum nisl in, malesuada purus. Nunc sit amet luctus felis, non molestie nisl.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Ut mattis lectus sed viverra hendrerit. Duis bibendum quam at ipsum pretium, a malesuada nisi rhoncus. Vivamus fringilla congue libero vitae feugiat. Nullam ac arcu nec metus posuere molestie. Curabitur rhoncus elit risus, at dapibus nulla mattis ac. Nullam tempus ullamcorper magna nec facilisis. Sed id lobortis metus. Integer sollicitudin ultricies nunc, tempor sodales mi pulvinar pellentesque. Etiam tincidunt quam non ante porta ornare. Etiam ultricies velit quis velit interdum auctor. Curabitur nec tellus et tortor placerat bibendum a eu diam. Integer accumsan turpis nisl. Mauris ut felis tortor. Donec scelerisque congue elit, non varius odio. Donec quis viverra ipsum, id eleifend metus.
Nulla dictum vehicula sapien, ut auctor erat. Integer facilisis porttitor arcu a imperdiet. Donec accumsan lobortis velit eu tempus. Nam sit amet erat nunc. Integer ac velit consequat erat blandit facilisis. Phasellus vestibulum laoreet felis vel mollis. Phasellus et lacus erat.
Nunc at eros eros. Donec condimentum, leo et condimentum varius, urna nulla auctor tellus, quis suscipit risus est id purus. Vestibulum non velit turpis. Phasellus ac eleifend leo. Cras suscipit sapien urna, sit amet pharetra magna euismod ut. Ut augue mauris, laoreet id aliquet cursus, scelerisque auctor nulla. Morbi nec posuere leo. Nam pulvinar porttitor diam vitae vehicula. Sed pharetra, diam in porttitor laoreet, augue urna aliquam diam, vitae sollicitudin dolor dui vel sapien. Praesent fermentum urna ut consequat consequat. Aenean in commodo tellus, a convallis metus. Fusce vel tincidunt enim. Mauris quis fermentum mauris.
Ut condimentum felis at interdum convallis. Fusce hendrerit facilisis felis, eu hendrerit nulla semper nec. Praesent malesuada urna sit amet neque luctus vulputate. Etiam sed faucibus neque, vitae venenatis tellus. Aenean mollis malesuada justo sed sollicitudin. Vestibulum vestibulum velit ligula, in lacinia magna mollis aliquam. Maecenas iaculis lectus eu sem rhoncus, quis aliquam nisl placerat. Morbi pellentesque ac lorem id tempor. Nam ac tellus porta, molestie massa auctor, vestibulum lorem. Morbi feugiat commodo interdum. Aliquam lobortis et leo id tristique. Maecenas elementum odio id nulla feugiat ultrices. Aliquam gravida sit amet.";
static readonly string[] CorpusWords =
Regex.Matches (Corpus, @"\b[\w]+\b")
.Cast<Match> ()
.Select (m => m.Value)
.ToArray ();
public static IEnumerable<string> Words
{
get {
return CorpusWords.Cycle ();
}
}
public static IEnumerable<string> NGrams (int n)
{
var words = Words.GetEnumerator ();
for (;;)
yield return string.Join (" ", words.Take (n));
}
public static IEnumerable<string> Paragraphs
{
get {
return Corpus.Split ('\n').Cycle ();
}
}
static IEnumerable<T> Take<T> (this IEnumerator<T> e, int n)
{
for (int i = 0; i < n; i++) {
if (e.MoveNext ())
yield return e.Current;
else
yield break;
}
}
static IEnumerable<T> Cycle<T> (this IEnumerable<T> es)
{
for (;;)
foreach (var e in es)
yield return e;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment