rack-campfire 0.0.1 → 0.0.2
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.
- data/README.md +5 -5
- data/lib/rack/campfire/campfire.rb +3 -2
- data/lib/rack/campfire/logging.rb +5 -1
- metadata +4 -4
data/README.md
CHANGED
@@ -47,9 +47,8 @@ run Sinatra::Application
|
|
47
47
|
```
|
48
48
|
|
49
49
|
```subdomain``` and ```api_key``` are strings that correspond to your
|
50
|
-
bot. ```rooms``` is a list of rooms you'd like your bot to join
|
51
|
-
|
52
|
-
first room.
|
50
|
+
bot. ```rooms``` is a list of rooms you'd like your bot to join or a
|
51
|
+
single room. It can be omitted if you only have one room.
|
53
52
|
|
54
53
|
After running ```rackup```, you should see 'Hello, campfire!' in one of the
|
55
54
|
rooms your campfire bot has joined, after posting any message in that
|
@@ -172,11 +171,12 @@ Add rack-campfire to the middleware stack.
|
|
172
171
|
config.middleware.use Rack::Campfire, subdomain, api_key, rooms
|
173
172
|
```
|
174
173
|
|
175
|
-
Add a route for campfire.
|
174
|
+
Add a route for campfire. You'll probably want to set it to render
|
175
|
+
textual versions of views by default.
|
176
176
|
|
177
177
|
```ruby
|
178
178
|
# config/routes.rb
|
179
|
-
match '/campfire' => 'campfire#campfire'
|
179
|
+
match '/campfire' => 'campfire#campfire', :defaults => { :format => :text }
|
180
180
|
```
|
181
181
|
|
182
182
|
And finally, create your controller. You can include the hooks here too
|
@@ -18,16 +18,17 @@ class Rack::Campfire
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def listen
|
21
|
-
Thread.abort_on_exception = true
|
22
21
|
@rooms.each { |r| Thread.new { r.listen { |m| respond(m, r) } } }
|
23
22
|
end
|
24
23
|
|
25
24
|
def respond(message, room)
|
26
|
-
|
25
|
+
log_message(message)
|
27
26
|
return if originated_from_me?(message)
|
28
27
|
env = mock_environment.merge('campfire.message' => message)
|
29
28
|
response = coerce_body(@app.call(env).last)
|
30
29
|
room.speak response unless response.empty?
|
30
|
+
rescue => e
|
31
|
+
log_error(e)
|
31
32
|
end
|
32
33
|
|
33
34
|
def params
|
@@ -1,8 +1,12 @@
|
|
1
1
|
class Rack::Campfire
|
2
2
|
module Logging
|
3
|
-
def
|
3
|
+
def log_message(message)
|
4
4
|
return unless message.user
|
5
5
|
puts "[rack-campfire] #{message.user.name}: #{message.body}"
|
6
6
|
end
|
7
|
+
|
8
|
+
def log_error(error)
|
9
|
+
puts "[rack-campfire] #{error}"
|
10
|
+
end
|
7
11
|
end
|
8
12
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-campfire
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Christopher Patuzzo
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-07-
|
18
|
+
date: 2012-07-29 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rack
|