firehose 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,6 +3,8 @@ require 'firehose/version'
3
3
  require 'em-hiredis'
4
4
  require 'logger'
5
5
 
6
+ require 'firehose/rails' if defined?(::Rails::Engine)
7
+
6
8
  module Firehose
7
9
  autoload :Subscription, 'firehose/subscription'
8
10
  autoload :Publisher, 'firehose/publisher'
@@ -10,7 +12,7 @@ module Firehose
10
12
  autoload :Default, 'firehose/default'
11
13
  autoload :Rack, 'firehose/rack'
12
14
  autoload :CLI, 'firehose/cli'
13
-
15
+
14
16
  # Logging
15
17
  def self.logger
16
18
  @logger ||= Logger.new($stdout)
@@ -19,4 +21,4 @@ module Firehose
19
21
  def self.logger=(logger)
20
22
  @logger = logger
21
23
  end
22
- end
24
+ end
@@ -3,6 +3,11 @@ require 'thin'
3
3
 
4
4
  module Firehose
5
5
  class CLI < Thor
6
+ desc "version", "display the current version"
7
+ def version
8
+ puts %[Firehose #{Firehose::VERSION} "#{Firehose::CODENAME}"]
9
+ end
10
+
6
11
  desc "server", "starts the firehose server"
7
12
  method_option :port, :type => :numeric, :default => Firehose::Default::URI.port, :required => true, :aliases => '-p'
8
13
  method_option :host, :type => :string, :default => '0.0.0.0', :required => true, :aliases => '-h'
@@ -14,8 +19,8 @@ module Firehose
14
19
 
15
20
  begin
16
21
  server.start!
17
- rescue RuntimeError
18
- Firehose.logger.error "Unable to connect to Redis, are you sure it's running?"
22
+ rescue
23
+ Firehose.logger.error "#{e.message}: #{e.backtrace}"
19
24
  raise
20
25
  end
21
26
  end
@@ -2,7 +2,7 @@ module Firehose
2
2
  class Publisher
3
3
  def publish(channel, message)
4
4
  Firehose.logger.debug "Redis publishing `#{message}` to `#{channel}`"
5
- redis.publish(channel, message).errback { raise 'Error publishing' }
5
+ redis.publish(channel, message).errback { |msg| raise "Error publishing: #{msg}" }
6
6
  end
7
7
 
8
8
  private
@@ -0,0 +1,7 @@
1
+ module Firehose
2
+ module Rails
3
+ class Engine < ::Rails::Engine
4
+ # enable rails to pick up lib/assets/* via sprockets.
5
+ end
6
+ end
7
+ end
@@ -23,8 +23,10 @@ module Firehose
23
23
  end
24
24
 
25
25
  def unsubscribe(&block)
26
+ redis.unsubscribe(channel)
26
27
  Firehose.logger.debug "Redis unsubscribed from `#{consumer_id}@#{channel}`"
27
- redis.close
28
+ redis.close_connection
29
+ @redis = nil
28
30
  block.call(self) if block
29
31
  self
30
32
  end
@@ -1,4 +1,4 @@
1
1
  module Firehose
2
- VERSION = "0.1.0"
3
- CODENAME = "Redis Rodeo"
2
+ VERSION = "0.1.1"
3
+ CODENAME = "Rails Ready"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firehose
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-05-09 00:00:00.000000000 Z
13
+ date: 2012-05-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: eventmachine
17
- requirement: &70097385746880 !ruby/object:Gem::Requirement
17
+ requirement: &70305542896500 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 1.0.0.beta
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70097385746880
25
+ version_requirements: *70305542896500
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: em-hiredis
28
- requirement: &70097385746460 !ruby/object:Gem::Requirement
28
+ requirement: &70305536313020 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *70097385746460
36
+ version_requirements: *70305536313020
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: thin
39
- requirement: &70097385746000 !ruby/object:Gem::Requirement
39
+ requirement: &70305536312560 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *70097385746000
47
+ version_requirements: *70305536312560
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: thor
50
- requirement: &70097385745580 !ruby/object:Gem::Requirement
50
+ requirement: &70305536312140 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *70097385745580
58
+ version_requirements: *70305536312140
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: faraday
61
- requirement: &70097385745160 !ruby/object:Gem::Requirement
61
+ requirement: &70305536311720 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '0'
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *70097385745160
69
+ version_requirements: *70305536311720
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: websocket-rack
72
- requirement: &70097385744740 !ruby/object:Gem::Requirement
72
+ requirement: &70305536311300 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: '0'
78
78
  type: :runtime
79
79
  prerelease: false
80
- version_requirements: *70097385744740
80
+ version_requirements: *70305536311300
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: em-http-request
83
- requirement: &70097385744240 !ruby/object:Gem::Requirement
83
+ requirement: &70305536310800 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ~>
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: 1.0.0
89
89
  type: :runtime
90
90
  prerelease: false
91
- version_requirements: *70097385744240
91
+ version_requirements: *70305536310800
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: rspec
94
- requirement: &70097385743820 !ruby/object:Gem::Requirement
94
+ requirement: &70305536310380 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: '0'
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *70097385743820
102
+ version_requirements: *70305536310380
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: webmock
105
- requirement: &70097385743360 !ruby/object:Gem::Requirement
105
+ requirement: &70305536309920 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ! '>='
@@ -110,10 +110,10 @@ dependencies:
110
110
  version: '0'
111
111
  type: :development
112
112
  prerelease: false
113
- version_requirements: *70097385743360
113
+ version_requirements: *70305536309920
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: guard-rspec
116
- requirement: &70097385742940 !ruby/object:Gem::Requirement
116
+ requirement: &70305536309500 !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
119
119
  - - ! '>='
@@ -121,10 +121,10 @@ dependencies:
121
121
  version: '0'
122
122
  type: :development
123
123
  prerelease: false
124
- version_requirements: *70097385742940
124
+ version_requirements: *70305536309500
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: guard-bundler
127
- requirement: &70097385742520 !ruby/object:Gem::Requirement
127
+ requirement: &70305536309080 !ruby/object:Gem::Requirement
128
128
  none: false
129
129
  requirements:
130
130
  - - ! '>='
@@ -132,10 +132,10 @@ dependencies:
132
132
  version: '0'
133
133
  type: :development
134
134
  prerelease: false
135
- version_requirements: *70097385742520
135
+ version_requirements: *70305536309080
136
136
  - !ruby/object:Gem::Dependency
137
137
  name: guard-coffeescript
138
- requirement: &70097385742100 !ruby/object:Gem::Requirement
138
+ requirement: &70305536308660 !ruby/object:Gem::Requirement
139
139
  none: false
140
140
  requirements:
141
141
  - - ! '>='
@@ -143,10 +143,10 @@ dependencies:
143
143
  version: '0'
144
144
  type: :development
145
145
  prerelease: false
146
- version_requirements: *70097385742100
146
+ version_requirements: *70305536308660
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: em-websocket-client
149
- requirement: &70097385741680 !ruby/object:Gem::Requirement
149
+ requirement: &70305536308240 !ruby/object:Gem::Requirement
150
150
  none: false
151
151
  requirements:
152
152
  - - ! '>='
@@ -154,7 +154,7 @@ dependencies:
154
154
  version: '0'
155
155
  type: :development
156
156
  prerelease: false
157
- version_requirements: *70097385741680
157
+ version_requirements: *70305536308240
158
158
  description: Firehose is a realtime web application toolkit for building realtime
159
159
  Ruby web applications.
160
160
  email:
@@ -189,6 +189,7 @@ files:
189
189
  - lib/firehose/producer.rb
190
190
  - lib/firehose/publisher.rb
191
191
  - lib/firehose/rack.rb
192
+ - lib/firehose/rails.rb
192
193
  - lib/firehose/subscription.rb
193
194
  - lib/firehose/version.rb
194
195
  - spec/integrations/thin_spec.rb