blasphemy 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/LICENSE +20 -0
- data/README.rdoc +51 -0
- data/Rakefile +53 -0
- data/VERSION +1 -0
- data/blasphemy.gemspec +54 -0
- data/lib/blasphemy.rb +54 -0
- data/test/helper.rb +10 -0
- data/test/test_blasphemy.rb +7 -0
- metadata +91 -0
data/.document
ADDED
data/.gitignore
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2010 Tomasz Stachewicz
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
= Blasphemy
|
2
|
+
|
3
|
+
A kind of... different Lorem Ipsum generator. Easily extensible. Surprise your client with thinking out of the box and stub texts with something more original than boring "Lorem ipsum dolor sit amet".
|
4
|
+
|
5
|
+
You can call it a "framework" (wo ho hoo!) for building own Lorem Ipsum generators. We all now it's just for building and spewing surprisingly elaborate random curses.
|
6
|
+
|
7
|
+
Basically it all started as a {joke gist}[http://gist.github.com/638477] inspired by {John Mettraux}[http://twitter.com/jmettraux] who, in turn, {suggested the idea}[http://twitter.com/jmettraux/status/28022295426] after I've {tweeted a link to Lorizzle}[http://twitter.com/_tomash/status/28022100766].
|
8
|
+
|
9
|
+
== Usage
|
10
|
+
|
11
|
+
Pretty straightforward Ruby here.
|
12
|
+
|
13
|
+
=== Using built-in MetalIpsum
|
14
|
+
|
15
|
+
It's in the Faker module space, to pay homage and avoid collisions. However it doesn't require original Faker and is purely self-contained.
|
16
|
+
|
17
|
+
require 'blasphemy'
|
18
|
+
generator = Faker::MetalIpsum.new
|
19
|
+
generator.paragraph
|
20
|
+
generator.sentence
|
21
|
+
generator.words
|
22
|
+
|
23
|
+
=== Own word-list
|
24
|
+
|
25
|
+
There is a class TabulaIpsum with an empty wordlist, waiting to be filled with any words you like.
|
26
|
+
|
27
|
+
generator = Faker::TabulaIpsum.new
|
28
|
+
generator.wordlist = ['lol', 'rotfl', 'omg', 'wtf']
|
29
|
+
|
30
|
+
|
31
|
+
=== Own generator class
|
32
|
+
|
33
|
+
For some more persistence, create a class like this
|
34
|
+
|
35
|
+
module Faker
|
36
|
+
class MarketingIpsum < CustomIpsum
|
37
|
+
def initialize
|
38
|
+
@wordlist = ['success', 'patenting', 'innovative', 'milestone']
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
And use it like all the other above.
|
44
|
+
|
45
|
+
== Forking and ideas
|
46
|
+
|
47
|
+
Contact me via github PM or e-mail. I don't have any specific idea on direction this little gem should be going.
|
48
|
+
|
49
|
+
== Copyright
|
50
|
+
|
51
|
+
Copyright (c) 2010 Tomasz Stachewicz. See LICENSE for details.
|
data/Rakefile
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "blasphemy"
|
8
|
+
gem.summary = %Q{A different Lorem Ipsum generator, lightweight and extensible}
|
9
|
+
gem.description = %Q{Surprise everyone by stubbing placeholder texts with something more original than boring "Lorem ipsum dolor sit amet". Embrace and extend, creating own wordlists for hilarious (or blasphemous or whatever you like) generated texts.}
|
10
|
+
gem.email = "tomekrs@o2.pl"
|
11
|
+
gem.homepage = "http://github.com/tomash/blasphemy"
|
12
|
+
gem.authors = ["Tomasz Stachewicz"]
|
13
|
+
gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
|
14
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
15
|
+
end
|
16
|
+
Jeweler::GemcutterTasks.new
|
17
|
+
rescue LoadError
|
18
|
+
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
19
|
+
end
|
20
|
+
|
21
|
+
require 'rake/testtask'
|
22
|
+
Rake::TestTask.new(:test) do |test|
|
23
|
+
test.libs << 'lib' << 'test'
|
24
|
+
test.pattern = 'test/**/test_*.rb'
|
25
|
+
test.verbose = true
|
26
|
+
end
|
27
|
+
|
28
|
+
begin
|
29
|
+
require 'rcov/rcovtask'
|
30
|
+
Rcov::RcovTask.new do |test|
|
31
|
+
test.libs << 'test'
|
32
|
+
test.pattern = 'test/**/test_*.rb'
|
33
|
+
test.verbose = true
|
34
|
+
end
|
35
|
+
rescue LoadError
|
36
|
+
task :rcov do
|
37
|
+
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
task :test => :check_dependencies
|
42
|
+
|
43
|
+
task :default => :test
|
44
|
+
|
45
|
+
require 'rake/rdoctask'
|
46
|
+
Rake::RDocTask.new do |rdoc|
|
47
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
48
|
+
|
49
|
+
rdoc.rdoc_dir = 'rdoc'
|
50
|
+
rdoc.title = "blasphemy #{version}"
|
51
|
+
rdoc.rdoc_files.include('README*')
|
52
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
53
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
data/blasphemy.gemspec
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{blasphemy}
|
8
|
+
s.version = "0.1.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Tomasz Stachewicz"]
|
12
|
+
s.date = %q{2010-10-29}
|
13
|
+
s.description = %q{Surprise everyone by stubbing placeholder texts with something more original than boring "Lorem ipsum dolor sit amet". Embrace and extend, creating own wordlists for hilarious (or blasphemous or whatever you like) generated texts.}
|
14
|
+
s.email = %q{tomekrs@o2.pl}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".gitignore",
|
22
|
+
"LICENSE",
|
23
|
+
"README.rdoc",
|
24
|
+
"Rakefile",
|
25
|
+
"VERSION",
|
26
|
+
"blasphemy.gemspec",
|
27
|
+
"lib/blasphemy.rb",
|
28
|
+
"test/helper.rb",
|
29
|
+
"test/test_blasphemy.rb"
|
30
|
+
]
|
31
|
+
s.homepage = %q{http://github.com/tomash/blasphemy}
|
32
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
33
|
+
s.require_paths = ["lib"]
|
34
|
+
s.rubygems_version = %q{1.3.7}
|
35
|
+
s.summary = %q{A different Lorem Ipsum generator, lightweight and extensible}
|
36
|
+
s.test_files = [
|
37
|
+
"test/test_blasphemy.rb",
|
38
|
+
"test/helper.rb"
|
39
|
+
]
|
40
|
+
|
41
|
+
if s.respond_to? :specification_version then
|
42
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
43
|
+
s.specification_version = 3
|
44
|
+
|
45
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
46
|
+
s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
47
|
+
else
|
48
|
+
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
49
|
+
end
|
50
|
+
else
|
51
|
+
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
data/lib/blasphemy.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
module Faker
|
2
|
+
|
3
|
+
# heavily inspired (mildly said) by lorem_ipsum.py from Django contrib/webdesign
|
4
|
+
class CustomIpsum
|
5
|
+
attr_accessor :wordlist
|
6
|
+
def initialize
|
7
|
+
raise 'Doh! You are trying to instantiate an abstract class!'
|
8
|
+
end
|
9
|
+
|
10
|
+
def words(num = 3)
|
11
|
+
@wordlist.shuffle[0, num]
|
12
|
+
end
|
13
|
+
# Returns a randomly generated sentence of lorem ipsum text.
|
14
|
+
# The first word is capitalized, and the sentence ends in either a period or
|
15
|
+
# question mark. Commas are added at random.
|
16
|
+
def sentence
|
17
|
+
# Determine the number of comma-separated sections and number of words in
|
18
|
+
# each section for this sentence.
|
19
|
+
sections = []
|
20
|
+
1.upto(rand(5)+1) do
|
21
|
+
sections << (words(rand(9)+3).join(" "))
|
22
|
+
end
|
23
|
+
s = sections.join(", ")
|
24
|
+
return s.capitalize + ".?!".slice(rand(3),1)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Returns a randomly generated paragraph of lorem ipsum text.
|
28
|
+
# The paragraph consists of between 1 and 4 sentences, inclusive.
|
29
|
+
def paragraph
|
30
|
+
((1..(rand(3)+2)).map{sentence}).join(" ")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class MetalIpsum < CustomIpsum
|
35
|
+
def initialize
|
36
|
+
@wordlist = ['exercitationem', 'perferendis', 'excruciating', 'sphere', 'killing',
|
37
|
+
'murder', 'iure', 'metal', 'mass', 'black', 'blood', 'haunted', 'vulgar',
|
38
|
+
'kill', 'unholy', 'satan', 'satanic', 'conjuring', 'demons', 'demonic',
|
39
|
+
'maims', 'massacre', 'massacres', 'apocalyptic', 'scream', 'screaming',
|
40
|
+
'slime', 'nordic', 'church', 'leading', 'feasting', 'goat', 'cow',
|
41
|
+
'acts', 'anger', 'rage', 'terror', 'death', 'scent', 'burning', 'flame',
|
42
|
+
'undead', 'necro', 'cum', 'flesh', 'chaos', 'decapitate', 'sanity', 'mad',
|
43
|
+
'crazy', 'cryptic', 'insane', 'cadaver', 'fest', 'feast', 'witch', 'christian',
|
44
|
+
'devil', 'evil', 'funeral', 'divine', 'horse', 'sword', 'axe', 'ax', 'battle',
|
45
|
+
'forge', 'monster', 'horror', 'ov', 'bronze', 'bone']
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
class TabulaIpsum < CustomIpsum
|
50
|
+
def initialize
|
51
|
+
@wordlist = []
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
data/test/helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: blasphemy
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Tomasz Stachewicz
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-10-29 00:00:00 +02:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: thoughtbot-shoulda
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :development
|
34
|
+
version_requirements: *id001
|
35
|
+
description: Surprise everyone by stubbing placeholder texts with something more original than boring "Lorem ipsum dolor sit amet". Embrace and extend, creating own wordlists for hilarious (or blasphemous or whatever you like) generated texts.
|
36
|
+
email: tomekrs@o2.pl
|
37
|
+
executables: []
|
38
|
+
|
39
|
+
extensions: []
|
40
|
+
|
41
|
+
extra_rdoc_files:
|
42
|
+
- LICENSE
|
43
|
+
- README.rdoc
|
44
|
+
files:
|
45
|
+
- .document
|
46
|
+
- .gitignore
|
47
|
+
- LICENSE
|
48
|
+
- README.rdoc
|
49
|
+
- Rakefile
|
50
|
+
- VERSION
|
51
|
+
- blasphemy.gemspec
|
52
|
+
- lib/blasphemy.rb
|
53
|
+
- test/helper.rb
|
54
|
+
- test/test_blasphemy.rb
|
55
|
+
has_rdoc: true
|
56
|
+
homepage: http://github.com/tomash/blasphemy
|
57
|
+
licenses: []
|
58
|
+
|
59
|
+
post_install_message:
|
60
|
+
rdoc_options:
|
61
|
+
- --charset=UTF-8
|
62
|
+
require_paths:
|
63
|
+
- lib
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
hash: 3
|
70
|
+
segments:
|
71
|
+
- 0
|
72
|
+
version: "0"
|
73
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
hash: 3
|
79
|
+
segments:
|
80
|
+
- 0
|
81
|
+
version: "0"
|
82
|
+
requirements: []
|
83
|
+
|
84
|
+
rubyforge_project:
|
85
|
+
rubygems_version: 1.3.7
|
86
|
+
signing_key:
|
87
|
+
specification_version: 3
|
88
|
+
summary: A different Lorem Ipsum generator, lightweight and extensible
|
89
|
+
test_files:
|
90
|
+
- test/test_blasphemy.rb
|
91
|
+
- test/helper.rb
|