forked from cavalle/eventwire
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into mongo_driver
- Loading branch information
Showing
22 changed files
with
362 additions
and
126 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,7 @@ | ||
rvm: | ||
- 1.9.2 | ||
- 1.9.3 | ||
- ruby-head | ||
- 1.8.7 | ||
- ree | ||
env: | ||
- SLEEP_FACTOR=5 | ||
- SLEEP_FACTOR=8 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
module Eventwire | ||
module Middleware | ||
autoload :Base, 'eventwire/middleware/base' | ||
|
||
autoload :Logger, 'eventwire/middleware/logger' | ||
autoload :ErrorHandler, 'eventwire/middleware/error_handler' | ||
autoload :DataObjects, 'eventwire/middleware/data_objects' | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
module Eventwire | ||
module Middleware | ||
class Base | ||
def initialize(app) | ||
@app = app | ||
end | ||
|
||
def method_missing(meth, *args, &blk) | ||
@app.send(meth, *args, &blk) | ||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
module Eventwire | ||
module Middleware | ||
class DataObjects < Base | ||
def subscribe(event_name, handler_id, &handler) | ||
@app.subscribe event_name, handler_id do |data| | ||
handler.call build_event(data) | ||
end | ||
end | ||
|
||
private | ||
|
||
def build_event(data) | ||
data && Struct.new(*data.keys.map(&:to_sym)).new(*data.values) | ||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
module Eventwire | ||
module Middleware | ||
class ErrorHandler < Base | ||
def subscribe(event_name, handler_id, &handler) | ||
@app.subscribe event_name, handler_id do |data| | ||
begin | ||
handler.call(data) | ||
rescue Exception => ex | ||
Eventwire.logger.error "\nAn error occurred: `#{ex.message}`\n#{ex.backtrace.join("\n")}\n" | ||
Eventwire.error_handler.call(ex) | ||
end | ||
end | ||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
module Eventwire | ||
module Middleware | ||
class Logger < Base | ||
|
||
def subscribe(event_name, handler_id, &handler) | ||
@app.subscribe event_name, handler_id do |data| | ||
begin | ||
Eventwire.logger.info "Starting to process `#{event_name}` with handler `#{handler_id}` and data `#{data.inspect}`" | ||
handler.call data | ||
ensure | ||
Eventwire.logger.info "End processing `#{event_name}`" | ||
end | ||
end | ||
end | ||
|
||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
module Eventwire | ||
module Subscriber | ||
class Data | ||
def initialize(handler, event_name, handler_id) | ||
@handler = handler | ||
end | ||
|
||
def call(data) | ||
@handler.call(build_event(data)) | ||
end | ||
|
||
private | ||
|
||
def build_event(data) | ||
data && Struct.new(*data.keys.map(&:to_sym)).new(*data.values) | ||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
module Eventwire | ||
module Subscriber | ||
class Errors | ||
def initialize(handler, event_name, handler_id) | ||
@handler = handler | ||
end | ||
|
||
def call(data) | ||
begin | ||
@handler.call(data) | ||
rescue Exception => ex | ||
Eventwire.logger.error "\nAn error occurred: `#{ex.message}`\n#{ex.backtrace.join("\n")}\n" | ||
Eventwire.error_handler.call(ex) | ||
end | ||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
module Eventwire | ||
module Subscriber | ||
class Log | ||
def initialize(handler, event_name, handler_id) | ||
@handler = handler | ||
@event_name = event_name | ||
@handler_id = handler_id | ||
end | ||
|
||
def call(data) | ||
begin | ||
Eventwire.logger.info "Starting to process `#{@event_name}` with handler `#{@handler_id}` and data `#{data.inspect}`" | ||
@handler.call(data) | ||
ensure | ||
Eventwire.logger.info "End processing `#{@event_name}`" | ||
end | ||
end | ||
end | ||
end | ||
end |
2 changes: 1 addition & 1 deletion
2
spec/unit/drivers/amqp_spec.rb → spec/integration/drivers/amqp_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
spec/unit/drivers/bunny_spec.rb → spec/integration/drivers/bunny_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
2 changes: 1 addition & 1 deletion
2
spec/unit/drivers/in_process_spec.rb → spec/integration/drivers/in_process_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
spec/unit/drivers/redis_spec.rb → spec/integration/drivers/redis_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
spec/unit/drivers/zero_spec.rb → spec/integration/drivers/zero_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
require 'unit/drivers/drivers_helper' | ||
require 'integration/drivers/drivers_helper' | ||
|
||
unless ENV['TRAVIS'] | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# encoding: UTF-8 | ||
require 'spec_helper' | ||
|
||
describe Eventwire::Middleware::DataObjects do | ||
let(:app) { mock } | ||
subject { Eventwire::Middleware::DataObjects.new(app) } | ||
|
||
describe 'subscribe' do | ||
it 'should call app’s subscribe' do | ||
app.should_receive(:subscribe).with(:event_name, :handler_id) | ||
|
||
subject.subscribe(:event_name, :handler_id) | ||
end | ||
|
||
it 'should make the handler build an event object' do | ||
app.stub :subscribe do |_, _, handler| | ||
handler.call(:task_name => 'Cleaning') | ||
handler.call('task_name' => 'Cleaning') | ||
end | ||
|
||
subject.subscribe :event_name, :handler_id do |data| | ||
data.task_name.should == 'Cleaning' | ||
end | ||
end | ||
end | ||
end |
Oops, something went wrong.