campfire-bot_alexchee 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. data/.autotest +11 -0
  2. data/.gitignore +6 -0
  3. data/Gemfile +12 -0
  4. data/README.textile +62 -0
  5. data/TODO +72 -0
  6. data/bin/campfire-bot +59 -0
  7. data/campfire-bot.gemspec +24 -0
  8. data/cfbot-stop.sh +8 -0
  9. data/config.example.yml +32 -0
  10. data/lib/bot.rb +194 -0
  11. data/lib/event.rb +114 -0
  12. data/lib/message.rb +30 -0
  13. data/lib/plugin.rb +77 -0
  14. data/lib/version.rb +3 -0
  15. data/plugins-example/fun.rb +95 -0
  16. data/spec/command_spec.rb +96 -0
  17. data/spec/plugin_spec.rb +43 -0
  18. data/spec/spec.opts +1 -0
  19. data/tmp/.gitignore +0 -0
  20. data/vendor/escape/ChangeLog +30 -0
  21. data/vendor/escape/Makefile +5 -0
  22. data/vendor/escape/README +81 -0
  23. data/vendor/escape/VERSION +1 -0
  24. data/vendor/escape/escape.rb +302 -0
  25. data/vendor/escape/install.rb +109 -0
  26. data/vendor/escape/misc/README.erb +85 -0
  27. data/vendor/escape/rdoc/classes/Escape/HTMLAttrValue.html +113 -0
  28. data/vendor/escape/rdoc/classes/Escape/HTMLEscaped.html +113 -0
  29. data/vendor/escape/rdoc/classes/Escape/PercentEncoded.html +113 -0
  30. data/vendor/escape/rdoc/classes/Escape/ShellEscaped.html +113 -0
  31. data/vendor/escape/rdoc/classes/Escape/StringWrapper.html +242 -0
  32. data/vendor/escape/rdoc/classes/Escape/StringWrapper.src/M000029.html +18 -0
  33. data/vendor/escape/rdoc/classes/Escape/StringWrapper.src/M000030.html +18 -0
  34. data/vendor/escape/rdoc/classes/Escape/StringWrapper.src/M000031.html +18 -0
  35. data/vendor/escape/rdoc/classes/Escape/StringWrapper.src/M000032.html +18 -0
  36. data/vendor/escape/rdoc/classes/Escape/StringWrapper.src/M000033.html +18 -0
  37. data/vendor/escape/rdoc/classes/Escape/StringWrapper.src/M000035.html +18 -0
  38. data/vendor/escape/rdoc/classes/Escape.html +427 -0
  39. data/vendor/escape/rdoc/classes/Escape.src/M000022.html +19 -0
  40. data/vendor/escape/rdoc/classes/Escape.src/M000023.html +32 -0
  41. data/vendor/escape/rdoc/classes/Escape.src/M000024.html +24 -0
  42. data/vendor/escape/rdoc/classes/Escape.src/M000025.html +19 -0
  43. data/vendor/escape/rdoc/classes/Escape.src/M000026.html +48 -0
  44. data/vendor/escape/rdoc/classes/Escape.src/M000027.html +19 -0
  45. data/vendor/escape/rdoc/classes/Escape.src/M000028.html +19 -0
  46. data/vendor/escape/rdoc/classes/TestEscapeHTML.html +182 -0
  47. data/vendor/escape/rdoc/classes/TestEscapeHTML.src/M000008.html +18 -0
  48. data/vendor/escape/rdoc/classes/TestEscapeHTML.src/M000009.html +18 -0
  49. data/vendor/escape/rdoc/classes/TestEscapeHTML.src/M000010.html +18 -0
  50. data/vendor/escape/rdoc/classes/TestEscapeHTML.src/M000011.html +18 -0
  51. data/vendor/escape/rdoc/classes/TestEscapePercentEncoded.html +182 -0
  52. data/vendor/escape/rdoc/classes/TestEscapePercentEncoded.src/M000012.html +18 -0
  53. data/vendor/escape/rdoc/classes/TestEscapePercentEncoded.src/M000013.html +19 -0
  54. data/vendor/escape/rdoc/classes/TestEscapePercentEncoded.src/M000014.html +20 -0
  55. data/vendor/escape/rdoc/classes/TestEscapePercentEncoded.src/M000015.html +22 -0
  56. data/vendor/escape/rdoc/classes/TestEscapeShellEscaped.html +167 -0
  57. data/vendor/escape/rdoc/classes/TestEscapeShellEscaped.src/M000016.html +18 -0
  58. data/vendor/escape/rdoc/classes/TestEscapeShellEscaped.src/M000017.html +20 -0
  59. data/vendor/escape/rdoc/classes/TestEscapeShellEscaped.src/M000018.html +20 -0
  60. data/vendor/escape/rdoc/classes/TestEscapeStringWrapper.html +167 -0
  61. data/vendor/escape/rdoc/classes/TestEscapeStringWrapper.src/M000019.html +20 -0
  62. data/vendor/escape/rdoc/classes/TestEscapeStringWrapper.src/M000020.html +24 -0
  63. data/vendor/escape/rdoc/classes/TestEscapeStringWrapper.src/M000021.html +22 -0
  64. data/vendor/escape/rdoc/files/escape_rb.html +136 -0
  65. data/vendor/escape/rdoc/files/install_rb.html +250 -0
  66. data/vendor/escape/rdoc/files/install_rb.src/M000001.html +23 -0
  67. data/vendor/escape/rdoc/files/install_rb.src/M000002.html +31 -0
  68. data/vendor/escape/rdoc/files/install_rb.src/M000003.html +27 -0
  69. data/vendor/escape/rdoc/files/install_rb.src/M000004.html +27 -0
  70. data/vendor/escape/rdoc/files/install_rb.src/M000005.html +21 -0
  71. data/vendor/escape/rdoc/files/install_rb.src/M000006.html +23 -0
  72. data/vendor/escape/rdoc/files/install_rb.src/M000007.html +21 -0
  73. data/vendor/escape/rdoc/files/test/test-escape_rb.html +109 -0
  74. data/vendor/escape/rdoc/fr_class_index.html +36 -0
  75. data/vendor/escape/rdoc/fr_file_index.html +29 -0
  76. data/vendor/escape/rdoc/fr_method_index.html +61 -0
  77. data/vendor/escape/rdoc/index.html +24 -0
  78. data/vendor/escape/rdoc/rdoc-style.css +208 -0
  79. data/vendor/escape/test/test-escape.rb +90 -0
  80. metadata +209 -0
@@ -0,0 +1,61 @@
1
+
2
+ <?xml version="1.0" encoding="iso-8859-1"?>
3
+ <!DOCTYPE html
4
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
5
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6
+
7
+ <!--
8
+
9
+ Methods
10
+
11
+ -->
12
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
13
+ <head>
14
+ <title>Methods</title>
15
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
16
+ <link rel="stylesheet" href="rdoc-style.css" type="text/css" />
17
+ <base target="docwin" />
18
+ </head>
19
+ <body>
20
+ <div id="index">
21
+ <h1 class="section-bar">Methods</h1>
22
+ <div id="index-entries">
23
+ <a href="classes/Escape/StringWrapper.html#M000033">== (Escape::StringWrapper)</a><br />
24
+ <a href="classes/TestEscapeHTML.html#M000009">assert_equal_hav (TestEscapeHTML)</a><br />
25
+ <a href="classes/TestEscapeHTML.html#M000008">assert_equal_he (TestEscapeHTML)</a><br />
26
+ <a href="classes/TestEscapePercentEncoded.html#M000012">assert_equal_pe (TestEscapePercentEncoded)</a><br />
27
+ <a href="classes/TestEscapeShellEscaped.html#M000016">assert_equal_se (TestEscapeShellEscaped)</a><br />
28
+ <a href="files/install_rb.html#M000005">collect_target (install.rb)</a><br />
29
+ <a href="files/install_rb.html#M000002">cvs_files (install.rb)</a><br />
30
+ <a href="files/install_rb.html#M000004">each_require (install.rb)</a><br />
31
+ <a href="files/install_rb.html#M000003">each_target (install.rb)</a><br />
32
+ <a href="classes/Escape/StringWrapper.html#M000034">eql? (Escape::StringWrapper)</a><br />
33
+ <a href="classes/Escape/StringWrapper.html#M000035">hash (Escape::StringWrapper)</a><br />
34
+ <a href="classes/Escape.html#M000028">html_attr_value (Escape)</a><br />
35
+ <a href="classes/Escape.html#M000026">html_form (Escape)</a><br />
36
+ <a href="classes/Escape.html#M000027">html_text (Escape)</a><br />
37
+ <a href="files/install_rb.html#M000007">ignore_exc (install.rb)</a><br />
38
+ <a href="classes/Escape/StringWrapper.html#M000032">inspect (Escape::StringWrapper)</a><br />
39
+ <a href="files/install_rb.html#M000006">install_file (install.rb)</a><br />
40
+ <a href="classes/Escape/StringWrapper.html#M000029">new (Escape::StringWrapper)</a><br />
41
+ <a href="classes/Escape/StringWrapper.html#M000030">new (Escape::StringWrapper)</a><br />
42
+ <a href="classes/Escape.html#M000022">shell_command (Escape)</a><br />
43
+ <a href="classes/Escape.html#M000023">shell_single_word (Escape)</a><br />
44
+ <a href="files/install_rb.html#M000001">target_directory (install.rb)</a><br />
45
+ <a href="classes/TestEscapeStringWrapper.html#M000019">test_eq (TestEscapeStringWrapper)</a><br />
46
+ <a href="classes/TestEscapeStringWrapper.html#M000020">test_hash (TestEscapeStringWrapper)</a><br />
47
+ <a href="classes/TestEscapeHTML.html#M000011">test_html_attr_value (TestEscapeHTML)</a><br />
48
+ <a href="classes/TestEscapePercentEncoded.html#M000015">test_html_form (TestEscapePercentEncoded)</a><br />
49
+ <a href="classes/TestEscapeHTML.html#M000010">test_html_text (TestEscapeHTML)</a><br />
50
+ <a href="classes/TestEscapeStringWrapper.html#M000021">test_new_dup (TestEscapeStringWrapper)</a><br />
51
+ <a href="classes/TestEscapeShellEscaped.html#M000017">test_shell_command (TestEscapeShellEscaped)</a><br />
52
+ <a href="classes/TestEscapeShellEscaped.html#M000018">test_shell_single_word (TestEscapeShellEscaped)</a><br />
53
+ <a href="classes/TestEscapePercentEncoded.html#M000014">test_uri_path (TestEscapePercentEncoded)</a><br />
54
+ <a href="classes/TestEscapePercentEncoded.html#M000013">test_uri_segment (TestEscapePercentEncoded)</a><br />
55
+ <a href="classes/Escape/StringWrapper.html#M000031">to_s (Escape::StringWrapper)</a><br />
56
+ <a href="classes/Escape.html#M000025">uri_path (Escape)</a><br />
57
+ <a href="classes/Escape.html#M000024">uri_segment (Escape)</a><br />
58
+ </div>
59
+ </div>
60
+ </body>
61
+ </html>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
5
+
6
+ <!--
7
+
8
+ RDoc Documentation
9
+
10
+ -->
11
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
12
+ <head>
13
+ <title>RDoc Documentation</title>
14
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
15
+ </head>
16
+ <frameset rows="20%, 80%">
17
+ <frameset cols="25%,35%,45%">
18
+ <frame src="fr_file_index.html" title="Files" name="Files" />
19
+ <frame src="fr_class_index.html" name="Classes" />
20
+ <frame src="fr_method_index.html" name="Methods" />
21
+ </frameset>
22
+ <frame src="files/test/test-escape_rb.html" name="docwin" />
23
+ </frameset>
24
+ </html>
@@ -0,0 +1,208 @@
1
+
2
+ body {
3
+ font-family: Verdana,Arial,Helvetica,sans-serif;
4
+ font-size: 90%;
5
+ margin: 0;
6
+ margin-left: 40px;
7
+ padding: 0;
8
+ background: white;
9
+ }
10
+
11
+ h1,h2,h3,h4 { margin: 0; color: #efefef; background: transparent; }
12
+ h1 { font-size: 150%; }
13
+ h2,h3,h4 { margin-top: 1em; }
14
+
15
+ a { background: #eef; color: #039; text-decoration: none; }
16
+ a:hover { background: #039; color: #eef; }
17
+
18
+ /* Override the base stylesheet's Anchor inside a table cell */
19
+ td > a {
20
+ background: transparent;
21
+ color: #039;
22
+ text-decoration: none;
23
+ }
24
+
25
+ /* and inside a section title */
26
+ .section-title > a {
27
+ background: transparent;
28
+ color: #eee;
29
+ text-decoration: none;
30
+ }
31
+
32
+ /* === Structural elements =================================== */
33
+
34
+ div#index {
35
+ margin: 0;
36
+ margin-left: -40px;
37
+ padding: 0;
38
+ font-size: 90%;
39
+ }
40
+
41
+
42
+ div#index a {
43
+ margin-left: 0.7em;
44
+ }
45
+
46
+ div#index .section-bar {
47
+ margin-left: 0px;
48
+ padding-left: 0.7em;
49
+ background: #ccc;
50
+ font-size: small;
51
+ }
52
+
53
+
54
+ div#classHeader, div#fileHeader {
55
+ width: auto;
56
+ color: white;
57
+ padding: 0.5em 1.5em 0.5em 1.5em;
58
+ margin: 0;
59
+ margin-left: -40px;
60
+ border-bottom: 3px solid #006;
61
+ }
62
+
63
+ div#classHeader a, div#fileHeader a {
64
+ background: inherit;
65
+ color: white;
66
+ }
67
+
68
+ div#classHeader td, div#fileHeader td {
69
+ background: inherit;
70
+ color: white;
71
+ }
72
+
73
+
74
+ div#fileHeader {
75
+ background: #057;
76
+ }
77
+
78
+ div#classHeader {
79
+ background: #048;
80
+ }
81
+
82
+
83
+ .class-name-in-header {
84
+ font-size: 180%;
85
+ font-weight: bold;
86
+ }
87
+
88
+
89
+ div#bodyContent {
90
+ padding: 0 1.5em 0 1.5em;
91
+ }
92
+
93
+ div#description {
94
+ padding: 0.5em 1.5em;
95
+ background: #efefef;
96
+ border: 1px dotted #999;
97
+ }
98
+
99
+ div#description h1,h2,h3,h4,h5,h6 {
100
+ color: #125;;
101
+ background: transparent;
102
+ }
103
+
104
+ div#validator-badges {
105
+ text-align: center;
106
+ }
107
+ div#validator-badges img { border: 0; }
108
+
109
+ div#copyright {
110
+ color: #333;
111
+ background: #efefef;
112
+ font: 0.75em sans-serif;
113
+ margin-top: 5em;
114
+ margin-bottom: 0;
115
+ padding: 0.5em 2em;
116
+ }
117
+
118
+
119
+ /* === Classes =================================== */
120
+
121
+ table.header-table {
122
+ color: white;
123
+ font-size: small;
124
+ }
125
+
126
+ .type-note {
127
+ font-size: small;
128
+ color: #DEDEDE;
129
+ }
130
+
131
+ .xxsection-bar {
132
+ background: #eee;
133
+ color: #333;
134
+ padding: 3px;
135
+ }
136
+
137
+ .section-bar {
138
+ color: #333;
139
+ border-bottom: 1px solid #999;
140
+ margin-left: -20px;
141
+ }
142
+
143
+
144
+ .section-title {
145
+ background: #79a;
146
+ color: #eee;
147
+ padding: 3px;
148
+ margin-top: 2em;
149
+ margin-left: -30px;
150
+ border: 1px solid #999;
151
+ }
152
+
153
+ .top-aligned-row { vertical-align: top }
154
+ .bottom-aligned-row { vertical-align: bottom }
155
+
156
+ /* --- Context section classes ----------------------- */
157
+
158
+ .context-row { }
159
+ .context-item-name { font-family: monospace; font-weight: bold; color: black; }
160
+ .context-item-value { font-size: small; color: #448; }
161
+ .context-item-desc { color: #333; padding-left: 2em; }
162
+
163
+ /* --- Method classes -------------------------- */
164
+ .method-detail {
165
+ background: #efefef;
166
+ padding: 0;
167
+ margin-top: 0.5em;
168
+ margin-bottom: 1em;
169
+ border: 1px dotted #ccc;
170
+ }
171
+ .method-heading {
172
+ color: black;
173
+ background: #ccc;
174
+ border-bottom: 1px solid #666;
175
+ padding: 0.2em 0.5em 0 0.5em;
176
+ }
177
+ .method-signature { color: black; background: inherit; }
178
+ .method-name { font-weight: bold; }
179
+ .method-args { font-style: italic; }
180
+ .method-description { padding: 0 0.5em 0 0.5em; }
181
+
182
+ /* --- Source code sections -------------------- */
183
+
184
+ a.source-toggle { font-size: 90%; }
185
+ div.method-source-code {
186
+ background: #262626;
187
+ color: #ffdead;
188
+ margin: 1em;
189
+ padding: 0.5em;
190
+ border: 1px dashed #999;
191
+ overflow: hidden;
192
+ }
193
+
194
+ div.method-source-code pre { color: #ffdead; overflow: hidden; }
195
+
196
+ /* --- Ruby keyword styles --------------------- */
197
+
198
+ .standalone-code { background: #221111; color: #ffdead; overflow: hidden; }
199
+
200
+ .ruby-constant { color: #7fffd4; background: transparent; }
201
+ .ruby-keyword { color: #00ffff; background: transparent; }
202
+ .ruby-ivar { color: #eedd82; background: transparent; }
203
+ .ruby-operator { color: #00ffee; background: transparent; }
204
+ .ruby-identifier { color: #ffdead; background: transparent; }
205
+ .ruby-node { color: #ffa07a; background: transparent; }
206
+ .ruby-comment { color: #b22222; font-weight: bold; background: transparent; }
207
+ .ruby-regexp { color: #ffa07a; background: transparent; }
208
+ .ruby-value { color: #7fffd4; background: transparent; }
@@ -0,0 +1,90 @@
1
+ require 'test/unit'
2
+ require 'escape'
3
+
4
+ class TestEscapeStringWrapper < Test::Unit::TestCase
5
+ def test_eq
6
+ assert(Escape::PercentEncoded.new("foo") == Escape::PercentEncoded.new("foo"))
7
+ assert(Escape::PercentEncoded.new("foo") != Escape::PercentEncoded.new("bar"))
8
+ assert(Escape::ShellEscaped.new("a") != Escape::PercentEncoded.new("a"))
9
+ end
10
+
11
+ def test_hash
12
+ v1 = Escape::PercentEncoded.new("foo")
13
+ v2 = Escape::PercentEncoded.new("foo")
14
+ h = {}
15
+ h[v1] = 1
16
+ h[v2] = 2
17
+ assert_equal(1, h.size)
18
+ assert_equal(2, h[v1])
19
+ end
20
+
21
+ def test_new_dup
22
+ s = "a"
23
+ o = Escape::PercentEncoded.new(s)
24
+ assert_not_equal(s.object_id, o.instance_variable_get(:@str).object_id)
25
+ o = Escape::PercentEncoded.new_no_dup(s)
26
+ assert_equal(s.object_id, o.instance_variable_get(:@str).object_id)
27
+ end
28
+ end
29
+
30
+ class TestEscapeShellEscaped < Test::Unit::TestCase
31
+ def assert_equal_se(str, tst)
32
+ assert_equal(Escape::ShellEscaped.new(str), tst)
33
+ end
34
+
35
+ def test_shell_command
36
+ assert_equal_se("com arg", Escape.shell_command(%w[com arg]))
37
+ assert_equal_se("ls /", Escape.shell_command(%w[ls /]))
38
+ assert_equal_se("echo '*'", Escape.shell_command(%w[echo *]))
39
+ end
40
+
41
+ def test_shell_single_word
42
+ assert_equal_se("''", Escape.shell_single_word(''))
43
+ assert_equal_se("foo", Escape.shell_single_word('foo'))
44
+ assert_equal_se("'*'", Escape.shell_single_word('*'))
45
+ end
46
+
47
+ end
48
+
49
+ class TestEscapePercentEncoded < Test::Unit::TestCase
50
+ def assert_equal_pe(str, tst)
51
+ assert_equal(Escape::PercentEncoded.new(str), tst)
52
+ end
53
+
54
+ def test_uri_segment
55
+ assert_kind_of(Escape::PercentEncoded, Escape.uri_segment("foo"))
56
+ assert_equal_pe("a%2Fb", Escape.uri_segment("a/b"))
57
+ end
58
+
59
+ def test_uri_path
60
+ assert_kind_of(Escape::PercentEncoded, Escape.uri_path("foo"))
61
+ assert_equal_pe("a/b/c", Escape.uri_path("a/b/c"))
62
+ assert_equal_pe("a%3Fb/c%3Fd/e%3Ff", Escape.uri_path("a?b/c?d/e?f"))
63
+ end
64
+
65
+ def test_html_form
66
+ assert_kind_of(Escape::PercentEncoded, Escape.html_form([["foo","bar"]]))
67
+ assert_equal_pe("a=b&c=d", Escape.html_form([["a","b"], ["c","d"]]))
68
+ assert_equal_pe("a=b;c=d", Escape.html_form([["a","b"], ["c","d"]], ';'))
69
+ assert_equal_pe("k=1&k=2", Escape.html_form([["k","1"], ["k","2"]]))
70
+ assert_equal_pe("k%3D=%26%3B%3D", Escape.html_form([["k=","&;="]]))
71
+ end
72
+ end
73
+
74
+ class TestEscapeHTML < Test::Unit::TestCase
75
+ def assert_equal_he(str, tst)
76
+ assert_equal(Escape::HTMLEscaped.new(str), tst)
77
+ end
78
+
79
+ def assert_equal_hav(str, tst)
80
+ assert_equal(Escape::HTMLAttrValue.new(str), tst)
81
+ end
82
+
83
+ def test_html_text
84
+ assert_equal_he('a&amp;&lt;&gt;"', Escape.html_text('a&<>"'))
85
+ end
86
+
87
+ def test_html_attr_value
88
+ assert_equal_hav('"a&amp;&lt;&gt;&quot;"', Escape.html_attr_value('a&<>"'))
89
+ end
90
+ end
metadata ADDED
@@ -0,0 +1,209 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: campfire-bot_alexchee
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Josh Wand
9
+ - Tim Riley
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-12-12 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: twitter-stream
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: '0.1'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: '0.1'
31
+ - !ruby/object:Gem::Dependency
32
+ name: tinder
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: 1.4.3
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: 1.4.3
47
+ - !ruby/object:Gem::Dependency
48
+ name: activesupport
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 3.0.3
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: 3.0.3
63
+ - !ruby/object:Gem::Dependency
64
+ name: logging
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: 1.4.3
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 1.4.3
79
+ - !ruby/object:Gem::Dependency
80
+ name: i18n
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: 0.5.0
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: 0.5.0
95
+ description: This is a bot for 37 Signals’ Campfire chat service.
96
+ email:
97
+ - josh@joshwand.com
98
+ executables:
99
+ - campfire-bot
100
+ extensions: []
101
+ extra_rdoc_files: []
102
+ files:
103
+ - .autotest
104
+ - .gitignore
105
+ - Gemfile
106
+ - README.textile
107
+ - TODO
108
+ - bin/campfire-bot
109
+ - campfire-bot.gemspec
110
+ - cfbot-stop.sh
111
+ - config.example.yml
112
+ - lib/bot.rb
113
+ - lib/event.rb
114
+ - lib/message.rb
115
+ - lib/plugin.rb
116
+ - lib/version.rb
117
+ - plugins-example/fun.rb
118
+ - spec/command_spec.rb
119
+ - spec/plugin_spec.rb
120
+ - spec/spec.opts
121
+ - tmp/.gitignore
122
+ - vendor/escape/ChangeLog
123
+ - vendor/escape/Makefile
124
+ - vendor/escape/README
125
+ - vendor/escape/VERSION
126
+ - vendor/escape/escape.rb
127
+ - vendor/escape/install.rb
128
+ - vendor/escape/misc/README.erb
129
+ - vendor/escape/rdoc/classes/Escape.html
130
+ - vendor/escape/rdoc/classes/Escape.src/M000022.html
131
+ - vendor/escape/rdoc/classes/Escape.src/M000023.html
132
+ - vendor/escape/rdoc/classes/Escape.src/M000024.html
133
+ - vendor/escape/rdoc/classes/Escape.src/M000025.html
134
+ - vendor/escape/rdoc/classes/Escape.src/M000026.html
135
+ - vendor/escape/rdoc/classes/Escape.src/M000027.html
136
+ - vendor/escape/rdoc/classes/Escape.src/M000028.html
137
+ - vendor/escape/rdoc/classes/Escape/HTMLAttrValue.html
138
+ - vendor/escape/rdoc/classes/Escape/HTMLEscaped.html
139
+ - vendor/escape/rdoc/classes/Escape/PercentEncoded.html
140
+ - vendor/escape/rdoc/classes/Escape/ShellEscaped.html
141
+ - vendor/escape/rdoc/classes/Escape/StringWrapper.html
142
+ - vendor/escape/rdoc/classes/Escape/StringWrapper.src/M000029.html
143
+ - vendor/escape/rdoc/classes/Escape/StringWrapper.src/M000030.html
144
+ - vendor/escape/rdoc/classes/Escape/StringWrapper.src/M000031.html
145
+ - vendor/escape/rdoc/classes/Escape/StringWrapper.src/M000032.html
146
+ - vendor/escape/rdoc/classes/Escape/StringWrapper.src/M000033.html
147
+ - vendor/escape/rdoc/classes/Escape/StringWrapper.src/M000035.html
148
+ - vendor/escape/rdoc/classes/TestEscapeHTML.html
149
+ - vendor/escape/rdoc/classes/TestEscapeHTML.src/M000008.html
150
+ - vendor/escape/rdoc/classes/TestEscapeHTML.src/M000009.html
151
+ - vendor/escape/rdoc/classes/TestEscapeHTML.src/M000010.html
152
+ - vendor/escape/rdoc/classes/TestEscapeHTML.src/M000011.html
153
+ - vendor/escape/rdoc/classes/TestEscapePercentEncoded.html
154
+ - vendor/escape/rdoc/classes/TestEscapePercentEncoded.src/M000012.html
155
+ - vendor/escape/rdoc/classes/TestEscapePercentEncoded.src/M000013.html
156
+ - vendor/escape/rdoc/classes/TestEscapePercentEncoded.src/M000014.html
157
+ - vendor/escape/rdoc/classes/TestEscapePercentEncoded.src/M000015.html
158
+ - vendor/escape/rdoc/classes/TestEscapeShellEscaped.html
159
+ - vendor/escape/rdoc/classes/TestEscapeShellEscaped.src/M000016.html
160
+ - vendor/escape/rdoc/classes/TestEscapeShellEscaped.src/M000017.html
161
+ - vendor/escape/rdoc/classes/TestEscapeShellEscaped.src/M000018.html
162
+ - vendor/escape/rdoc/classes/TestEscapeStringWrapper.html
163
+ - vendor/escape/rdoc/classes/TestEscapeStringWrapper.src/M000019.html
164
+ - vendor/escape/rdoc/classes/TestEscapeStringWrapper.src/M000020.html
165
+ - vendor/escape/rdoc/classes/TestEscapeStringWrapper.src/M000021.html
166
+ - vendor/escape/rdoc/files/escape_rb.html
167
+ - vendor/escape/rdoc/files/install_rb.html
168
+ - vendor/escape/rdoc/files/install_rb.src/M000001.html
169
+ - vendor/escape/rdoc/files/install_rb.src/M000002.html
170
+ - vendor/escape/rdoc/files/install_rb.src/M000003.html
171
+ - vendor/escape/rdoc/files/install_rb.src/M000004.html
172
+ - vendor/escape/rdoc/files/install_rb.src/M000005.html
173
+ - vendor/escape/rdoc/files/install_rb.src/M000006.html
174
+ - vendor/escape/rdoc/files/install_rb.src/M000007.html
175
+ - vendor/escape/rdoc/files/test/test-escape_rb.html
176
+ - vendor/escape/rdoc/fr_class_index.html
177
+ - vendor/escape/rdoc/fr_file_index.html
178
+ - vendor/escape/rdoc/fr_method_index.html
179
+ - vendor/escape/rdoc/index.html
180
+ - vendor/escape/rdoc/rdoc-style.css
181
+ - vendor/escape/test/test-escape.rb
182
+ homepage: https://github.com/alexchee/campfire-bot
183
+ licenses: []
184
+ post_install_message:
185
+ rdoc_options: []
186
+ require_paths:
187
+ - lib
188
+ required_ruby_version: !ruby/object:Gem::Requirement
189
+ none: false
190
+ requirements:
191
+ - - ! '>='
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ required_rubygems_version: !ruby/object:Gem::Requirement
195
+ none: false
196
+ requirements:
197
+ - - ! '>='
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ requirements: []
201
+ rubyforge_project:
202
+ rubygems_version: 1.8.23
203
+ signing_key:
204
+ specification_version: 3
205
+ summary: This is a bot for 37 Signals’ Campfire chat service.
206
+ test_files:
207
+ - spec/command_spec.rb
208
+ - spec/plugin_spec.rb
209
+ - spec/spec.opts