insults 0.1

Sign up to get free protection for your applications and to get access to all the features.
data/doc/index.html ADDED
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
2
+ <html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
3
+ <head>
4
+ <title>Insults will insult you when it feels you deserve it.</title>
5
+ <meta content='text/html; charset=utf-8' http-equiv='Content-Type'>
6
+ </head>
7
+ <frameset border='1' bordercolor='gray' cols='20%, *' frameborder='1'>
8
+ <frameset rows='15%, 35%, 50%'>
9
+ <frame name='Files' src='fr_file_index.html' title='Files'></frame>
10
+ <frame name='Classes' src='fr_class_index.html'></frame>
11
+ <frame name='Methods' src='fr_method_index.html'></frame>
12
+ </frameset>
13
+ <frame name='docwin' src='files/README_rdoc.html'></frame>
14
+ </frameset>
15
+ </html>
@@ -0,0 +1,319 @@
1
+ html, body {
2
+ height: 100%; }
3
+
4
+ body {
5
+ font-family: Lucida Grande , Verdana, Arial, Helvetica, sans-serif;
6
+ font-size: 90%;
7
+ margin: 0;
8
+ padding: 0;
9
+ background: white;
10
+ color: black; }
11
+
12
+ #wrapper {
13
+ min-height: 100%;
14
+ height: auto !important;
15
+ height: 100%;
16
+ margin: 0 auto -43px; }
17
+
18
+ #footer-push {
19
+ height: 43px; }
20
+
21
+ div.header, #footer {
22
+ background: #eee; }
23
+
24
+ #footer {
25
+ border-top: 1px solid silver;
26
+ margin-top: 12px;
27
+ padding: 0 2em;
28
+ line-height: 30px;
29
+ text-align: center;
30
+ font-variant: small-caps;
31
+ font-size: 95%; }
32
+
33
+ .clearing:after {
34
+ content: ".";
35
+ visibility: hidden;
36
+ height: 0;
37
+ display: block;
38
+ clear: both; }
39
+ * html .clearing {
40
+ height: 1px; }
41
+ .clearing *:first-child + html {
42
+ overflow: hidden; }
43
+
44
+ h1, h2, h3, h4, h5, h6 {
45
+ margin: 0;
46
+ font-weight: normal; }
47
+
48
+ a {
49
+ color: #0b3e71; }
50
+ a:hover {
51
+ background: #336699;
52
+ text-decoration: none;
53
+ color: #eef; }
54
+
55
+ #diagram img {
56
+ border: 0; }
57
+
58
+ #description a, .method .description a, .header a {
59
+ color: #336699; }
60
+ #description a:hover, .method .description a:hover, .header a:hover {
61
+ color: #eee; }
62
+ #description h1 a, #description h2 a, #description h3 a, #description h4 a, #description h5 a, #description h6 a, .method .description h1 a, .method .description h2 a, .method .description h3 a, .method .description h4 a, .method .description h5 a, .method .description h6 a, .header h1 a, .header h2 a, .header h3 a, .header h4 a, .header h5 a, .header h6 a {
63
+ color: #0b3e71; }
64
+
65
+ ol {
66
+ margin: 0;
67
+ padding: 0;
68
+ list-style: none; }
69
+ ol li {
70
+ margin-left: 0;
71
+ white-space: nowrap; }
72
+ ol li.other {
73
+ display: none; }
74
+
75
+ ol.expanded li.other {
76
+ display: list-item; }
77
+
78
+ table {
79
+ margin-bottom: 1em;
80
+ font-size: 1em;
81
+ border-collapse: collapse; }
82
+ table td, table th {
83
+ padding: .4em .8em; }
84
+ table thead {
85
+ background-color: #e8e8e8; }
86
+ table thead th {
87
+ font-variant: small-caps;
88
+ color: #666666; }
89
+ table tr {
90
+ border-bottom: 1px solid silver; }
91
+
92
+ #index a.show, div.header a.show {
93
+ text-decoration: underline;
94
+ font-style: italic;
95
+ color: #666666; }
96
+ #index a.show:after, div.header a.show:after {
97
+ content: " ..."; }
98
+ #index a.show:hover, div.header a.show:hover {
99
+ color: black;
100
+ background: #ffe; }
101
+
102
+ #index {
103
+ font: 85%/1.2 Arial, Helvetica, sans-serif; }
104
+ #index a {
105
+ text-decoration: none; }
106
+ #index h1 {
107
+ padding: .2em .5em .1em;
108
+ background: #ccc;
109
+ font: small-caps 1.2em Georgia, serif;
110
+ color: #333;
111
+ border-bottom: 1px solid gray; }
112
+ #index form {
113
+ margin: 0;
114
+ padding: 0; }
115
+ #index form input {
116
+ margin: .4em;
117
+ margin-bottom: 0;
118
+ width: 90%; }
119
+ #index form #search.untouched {
120
+ color: #777777; }
121
+ #index ol {
122
+ padding: .4em .5em; }
123
+ #index ol li {
124
+ white-space: nowrap; }
125
+ #index #index-entries li a {
126
+ padding: 1px 2px; }
127
+ #index #index-entries.classes {
128
+ font-size: 1.1em; }
129
+ #index #index-entries.classes ol {
130
+ padding: 0; }
131
+ #index #index-entries.classes span.nodoc {
132
+ display: none; }
133
+ #index #index-entries.classes span.nodoc, #index #index-entries.classes a {
134
+ font-weight: bold; }
135
+ #index #index-entries.classes .parent {
136
+ font-weight: normal; }
137
+ #index #index-entries.methods li, #index #search-results.methods li {
138
+ margin-bottom: 0.2em; }
139
+ #index #index-entries.methods li a .method_name, #index #search-results.methods li a .method_name {
140
+ margin-right: 0.25em; }
141
+ #index #index-entries.methods li a .module_name, #index #search-results.methods li a .module_name {
142
+ color: #666666; }
143
+ #index #index-entries.methods li a:hover .module_name, #index #search-results.methods li a:hover .module_name {
144
+ color: #ddd; }
145
+
146
+ div.header {
147
+ font-size: 80%;
148
+ padding: .5em 2%;
149
+ font-family: Arial, Helvetica, sans-serif;
150
+ border-bottom: 1px solid silver; }
151
+ div.header .name {
152
+ font-size: 1.6em;
153
+ font-family: Georgia, serif; }
154
+ div.header .name .type {
155
+ color: #666666;
156
+ font-size: 80%;
157
+ font-variant: small-caps; }
158
+ div.header h1.name {
159
+ font-size: 2.2em; }
160
+ div.header .paths, div.header .last-update, div.header .parent {
161
+ color: #666666; }
162
+ div.header .last-update .datetime {
163
+ color: #484848; }
164
+ div.header .parent {
165
+ margin-top: .3em; }
166
+ div.header .parent strong {
167
+ font-weight: normal;
168
+ color: #484848; }
169
+
170
+ #content {
171
+ padding: 12px 2%; }
172
+ div.class #content {
173
+ position: relative;
174
+ width: 72%; }
175
+ #content pre, #content .method .synopsis {
176
+ font: 14px Monaco, DejaVu Sans Mono , Bitstream Vera Sans Mono , Courier New , monospace; }
177
+ #content pre {
178
+ color: black;
179
+ background: #eee;
180
+ border: 1px solid silver;
181
+ padding: .5em .8em;
182
+ overflow: auto; }
183
+ #content p code, #content p tt, #content li code, #content li tt, #content dl code, #content dl tt {
184
+ font: 14px Monaco, DejaVu Sans Mono , Bitstream Vera Sans Mono , Courier New , monospace;
185
+ background: #ffffe3;
186
+ padding: 2px 3px;
187
+ line-height: 1.4; }
188
+ #content h1 code, #content h1 tt, #content h2 code, #content h2 tt, #content h3 code, #content h3 tt, #content h4 code, #content h4 tt, #content h5 code, #content h5 tt, #content h6 code, #content h6 tt {
189
+ font-size: 1.1em; }
190
+ #content #text {
191
+ position: relative; }
192
+ #content #description p {
193
+ margin-top: .5em; }
194
+ #content #description h1, #content #description h2, #content #description h3, #content #description h4, #content #description h5, #content #description h6 {
195
+ font-family: Georgia, serif; }
196
+ #content #description h1 {
197
+ font-size: 2.2em;
198
+ margin-bottom: .2em;
199
+ border-bottom: 3px double #d8d8d8;
200
+ padding-bottom: .1em; }
201
+ #content #description h2 {
202
+ font-size: 1.8em;
203
+ color: #0e3062;
204
+ margin: .8em 0 .3em 0; }
205
+ #content #description h3 {
206
+ font-size: 1.6em;
207
+ margin: .8em 0 .3em 0;
208
+ color: #666666; }
209
+ #content #description h4 {
210
+ font-size: 1.4em;
211
+ margin: .8em 0 .3em 0; }
212
+ #content #description h5 {
213
+ font-size: 1.2em;
214
+ margin: .8em 0 .3em 0;
215
+ color: #0e3062; }
216
+ #content #description h6 {
217
+ font-size: 1.0em;
218
+ margin: .8em 0 .3em 0;
219
+ color: #666666; }
220
+ #content #description ul, #content #description ol, #content .method .description ul, #content .method .description ol {
221
+ margin: .8em 0;
222
+ padding-left: 1.5em; }
223
+ #content #description ol, #content .method .description ol {
224
+ list-style: decimal; }
225
+ #content #description ol li, #content .method .description ol li {
226
+ white-space: normal; }
227
+
228
+ #method-list {
229
+ position: absolute;
230
+ top: 0px;
231
+ right: -33%;
232
+ width: 28%;
233
+ background: #eee;
234
+ border: 1px solid silver;
235
+ padding: .4em 1%;
236
+ overflow: hidden; }
237
+ #method-list h2 {
238
+ font-size: 1.3em; }
239
+ #method-list h3 {
240
+ font-variant: small-caps;
241
+ text-transform: capitalize;
242
+ font-family: Georgia, serif;
243
+ color: #666;
244
+ font-size: 1.1em; }
245
+ #method-list ol {
246
+ padding: 0 0 .5em .5em; }
247
+
248
+ #context {
249
+ border-top: 1px dashed silver;
250
+ margin-top: 1em;
251
+ margin-bottom: 1em; }
252
+
253
+ #context h2, #section h2 {
254
+ font: small-caps 1.2em Georgia, serif;
255
+ color: #444;
256
+ margin: 1em 0 .2em 0; }
257
+
258
+ #methods .method {
259
+ border: 1px solid silver;
260
+ margin-top: .5em;
261
+ background: #eee; }
262
+ #methods .method .synopsis {
263
+ color: black;
264
+ background: silver;
265
+ padding: .2em 1em; }
266
+ #methods .method .synopsis .name {
267
+ font-weight: bold; }
268
+ #methods .method .synopsis a {
269
+ text-decoration: none; }
270
+ #methods .method .description {
271
+ padding: 0 1em; }
272
+ #methods .method .description pre {
273
+ background: #f8f8f8; }
274
+ #methods .method .source {
275
+ margin: .5em 0; }
276
+ #methods .method .source-toggle {
277
+ font-size: 85%;
278
+ margin-left: 1em; }
279
+ #methods .public-class {
280
+ background: #ffffe4; }
281
+ #methods .public-instance .synopsis {
282
+ color: #eee;
283
+ background: #336699; }
284
+
285
+ #content .method .source pre {
286
+ background: #262626;
287
+ color: #ffdead;
288
+ margin: 1em;
289
+ padding: 0.5em;
290
+ border: 1px dashed #999;
291
+ overflow: auto; }
292
+ #content .method .source pre .ruby-constant {
293
+ color: #7fffd4;
294
+ background: transparent; }
295
+ #content .method .source pre .ruby-keyword {
296
+ color: #00ffff;
297
+ background: transparent; }
298
+ #content .method .source pre .ruby-ivar {
299
+ color: #eedd82;
300
+ background: transparent; }
301
+ #content .method .source pre .ruby-operator {
302
+ color: #00ffee;
303
+ background: transparent; }
304
+ #content .method .source pre .ruby-identifier {
305
+ color: #ffdead;
306
+ background: transparent; }
307
+ #content .method .source pre .ruby-node {
308
+ color: #ffa07a;
309
+ background: transparent; }
310
+ #content .method .source pre .ruby-comment {
311
+ color: #b22222;
312
+ font-weight: bold;
313
+ background: transparent; }
314
+ #content .method .source pre .ruby-regexp {
315
+ color: #ffa07a;
316
+ background: transparent; }
317
+ #content .method .source pre .ruby-value {
318
+ color: #7fffd4;
319
+ background: transparent; }
data/lib/insults.rb ADDED
@@ -0,0 +1,70 @@
1
+ # Copyright (c) 2009 Delano Mandelbaum
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the "Software"), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ # THE SOFTWARE.
20
+
21
+ $KCODE = "u"
22
+ require 'yaml'
23
+
24
+ @@text = YAML.load(<<-text)
25
+ ---
26
+ :fuckups:
27
+ - "Ybbx vqvbg, '%f' qbrfa'g rkvfg. "
28
+ - Url fuvg svatref, gurer vf ab '%f'.
29
+ :includes:
30
+ - "%f qbrfa'g arrq %f, jung gur uryy ner lbh guvaxvat?"
31
+ - Qb lbh ernyyl guvax lbhe %f jvyy qb nal orggre guna %f
32
+ - Bxnl, fb %f vaurevgrq %f. Abj jung?
33
+ text
34
+
35
+ def fuckup #:nodoc:
36
+ @@text[:fuckups][rand(@@text[:fuckups].size)];
37
+ end
38
+ def shiton #:nodoc:
39
+ @@text[:includes][rand(@@text[:includes].size)];
40
+ end
41
+
42
+ eval(<<-eos, binding)
43
+
44
+ def _(you, *are, &stupid); ✖ fuckup, you; end
45
+ def ✖(w,*m); STDERR.puts w.tr("A-Za-z", "N-ZA-Mn-za-m") % m; end
46
+ %w[ ⚀ ⚁ ⚂ ⚃ ⚄ ⚅ ].each do |die|
47
+ self.class.send(:define_method, die) { |*m| rand >= (die.unpack('C*')[2]-127)/10; }
48
+ end
49
+
50
+ class Object
51
+ def self.inherited(refelection)
52
+ ⚃ and ✖ shiton, self, refelection unless self == Object
53
+ end
54
+ end
55
+ # ✖(,*m)
56
+ class Module
57
+ define_method(:const_missing) { |you| ✖ fuckup, you }
58
+ define_method(:extended) { |fucked| ⚄ and ✖ shiton, self, fucked }
59
+ define_method(:included) { |it| ⚄ and ✖ shiton, self, it }
60
+ end
61
+
62
+ alias :method_missing :"#{"YOUR_FACE".unpack("C*").inject(0){|f,u|f|u}.chr}"
63
+ eos
64
+
65
+ # There are no methods or constants. All you have to do is require insults and
66
+ # it will insult you when it thinks you deserve it.
67
+ # <p>TODO: add more insults.</p>
68
+ module Insults
69
+ end
70
+
data/lib/try.rb ADDED
@@ -0,0 +1,16 @@
1
+ class A < Module #:nodoc:
2
+ end
3
+ class B < A #:nodoc:
4
+ end
5
+ module New #:nodoc:
6
+ end
7
+ class C #:nodoc:
8
+ include Insults
9
+ end
10
+ # A demonstration of the magic of Insults.
11
+ class Try < C
12
+ # This broken method calls a method that doesn't exist.
13
+ def self.broken
14
+ ➔ "YES!"
15
+ end
16
+ end
metadata ADDED
@@ -0,0 +1,73 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: insults
3
+ version: !ruby/object:Gem::Version
4
+ version: "0.1"
5
+ platform: ruby
6
+ authors:
7
+ - Delano Mandelbaum
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-01-15 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Insults will insult you when it feels you deserve it.
17
+ email: delano@solutious.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README.rdoc
24
+ files:
25
+ - Rakefile
26
+ - bin/example
27
+ - bin/example.bat
28
+ - doc/classes
29
+ - doc/classes/Insults.html
30
+ - doc/classes/Try.html
31
+ - doc/created.rid
32
+ - doc/files
33
+ - doc/files/lib
34
+ - doc/files/lib/insults_rb.html
35
+ - doc/files/lib/try_rb.html
36
+ - doc/files/LICENSE_txt.html
37
+ - doc/files/README_rdoc.html
38
+ - doc/fr_class_index.html
39
+ - doc/fr_file_index.html
40
+ - doc/fr_method_index.html
41
+ - doc/index.html
42
+ - doc/rdoc-style.css
43
+ - lib/insults.rb
44
+ - lib/try.rb
45
+ - README.rdoc
46
+ has_rdoc: true
47
+ homepage: http://insults.rubyforge.org/
48
+ post_install_message:
49
+ rdoc_options: []
50
+
51
+ require_paths:
52
+ - lib
53
+ required_ruby_version: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: "0"
58
+ version:
59
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
65
+ requirements: []
66
+
67
+ rubyforge_project: insults
68
+ rubygems_version: 1.2.0
69
+ signing_key:
70
+ specification_version: 2
71
+ summary: Insults will insult you when it feels you deserve it.
72
+ test_files: []
73
+