event_aggregator 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml ADDED
@@ -0,0 +1,21 @@
1
+ gemfile:
2
+ - Gemfile
3
+ language: ruby
4
+ rvm:
5
+ - 1.9.3
6
+ - 2.0.0
7
+ - 2.1.0
8
+ - jruby-19mode
9
+ - jruby-20mode
10
+ - jruby-21mode
11
+ - jruby-head
12
+ - ruby-head
13
+ matrix:
14
+ allow_failures:
15
+ - rvm: jruby-head
16
+ - rvm: ruby-head
17
+ - rvm: jruby-18mode
18
+ - rvm: 1.8.7
19
+ - rvm: 1.9.2
20
+ - rvm: rbx
21
+ fast_finish: true
data/README.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # EventAggregator gem
2
2
 
3
+
4
+ [![Gem Version](https://badge.fury.io/rb/event_aggregator.png)][gem]
5
+ [![Build Status](https://travis-ci.org/stephan-nordnes-eriksen/event_aggregator.png?branch=adding_travis_and_other)][travis]
6
+ [![Dependency Status](https://gemnasium.com/stephan-nordnes-eriksen/event_aggregator.png)][gemnasium]
7
+ [![Code Climate](https://codeclimate.com/github/stephan-nordnes-eriksen/event_aggregator.png)][codeclimate]
8
+ [![Coverage Status](https://coveralls.io/repos/stephan-nordnes-eriksen/event_aggregator/badge.png)][coveralls]
9
+ [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/stephan-nordnes-eriksen/event_aggregator/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
10
+
11
+ [gem]: https://rubygems.org/gems/event_aggregator
12
+ [travis]: https://travis-ci.org/stephan-nordnes-eriksen/event_aggregator
13
+ [gemnasium]: https://gemnasium.com/stephan-nordnes-eriksen/event_aggregator
14
+ [codeclimate]: https://codeclimate.com/github/stephan-nordnes-eriksen/event_aggregator
15
+ [coveralls]: https://coveralls.io/r/stephan-nordnes-eriksen/event_aggregator
16
+
17
+
3
18
  The gem 'event_aggregator' is designed for use with the event aggregator pattern in Ruby.
4
19
 
5
20
  ## Installation
@@ -26,7 +41,7 @@ Or install it yourself as:
26
41
  class Foo
27
42
  include EventAggregator::Listener
28
43
  def initialize()
29
- message_type_register( "foo", lambda{|data| puts "bar" } )
44
+ message_type_register( "foo", lambda{|data| puts data } )
30
45
 
31
46
  message_type_register( "foo2", method(:handle_message) )
32
47
  end
@@ -42,7 +57,7 @@ Or install it yourself as:
42
57
 
43
58
  f = Foo.new
44
59
 
45
- EventAggregator::Message.new("foo", "data").publish
60
+ EventAggregator::Message.new("foo", "bar").publish
46
61
  #=> bar
47
62
  EventAggregator::Message.new("foo2", "data").publish
48
63
  #=> data
@@ -58,7 +73,25 @@ Or install it yourself as:
58
73
  #=> data2
59
74
  #=> data
60
75
 
61
- Message.publish is asynchronous by default. To make it synchronous (not recommended) use the following:
76
+ ### IMPORTANT: Asynchronous by Default
77
+ Message.publish is asynchronous by default. This means that if you run event_aggregator in a script that terminates, there is a chance that the script will terminate before the workers have processed the messages and you can receive an error looking like the following:
78
+
79
+ W, [2013-12-29T11:17:29.659902 #48097] WARN -- : Terminating task: type=:call, meta={:method_name=>:perform}, status=:callwait
80
+ D, [2013-12-29T11:17:29.660142 #48097] DEBUG -- : Celluloid::PoolManager: async call `perform` aborted!
81
+ Celluloid::Task::TerminatedError: task was terminated
82
+ /Users/user/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:32:in `terminate'
83
+ /Users/user/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.15.2/lib/celluloid/actor.rb:404:in `block in cleanup'
84
+ /Users/user/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.15.2/lib/celluloid/actor.rb:404:in `each'
85
+ /Users/user/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.15.2/lib/celluloid/actor.rb:404:in `cleanup'
86
+ /Users/user/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.15.2/lib/celluloid/actor.rb:375:in `shutdown'
87
+ /Users/user/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.15.2/lib/celluloid/actor.rb:185:in `run'
88
+ /Users/user/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.15.2/lib/celluloid/actor.rb:157:in `block in initialize'
89
+ /Users/user/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.15.2/lib/celluloid/thread_handle.rb:13:in `block in initialize'
90
+ /Users/user/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.15.2/lib/celluloid/internal_pool.rb:100:in `call'
91
+ /Users/user/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.15.2/lib/celluloid/internal_pool.rb:100:in `block in create'
92
+ W, [2013-12-29T11:17:29.660271 #48097] WARN -- : Terminating task: type=:finalizer, meta={:method_name=>:__shutdown__}, status=:callwait
93
+
94
+ To make it synchronous (not recommended) use the following:
62
95
 
63
96
  EventAggregator::Message.new("foo", "data", false).publish
64
97
  #=> data
data/Rakefile CHANGED
@@ -1 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'bundler'
3
+ Bundler::GemHelper.install_tasks
4
+ require 'rspec/core/rake_task'
5
+ RSpec::Core::RakeTask.new(:spec)
6
+ task :default => :spec
7
+ task :test => :spec
@@ -19,10 +19,11 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_development_dependency 'bundler', "~> 1.3"
22
- spec.add_development_dependency 'rake'
23
- spec.add_development_dependency 'guard-rspec'
24
- spec.add_development_dependency 'factory_girl'
25
- spec.add_development_dependency 'faker'
22
+ spec.add_development_dependency 'rake', '~> 10'
23
+ spec.add_development_dependency 'rspec', '~> 3.0.0.beta1'
24
+ spec.add_development_dependency 'guard-rspec', '~> 4.2', '>= 4.2.2'
25
+ spec.add_development_dependency 'faker', '~> 1.2'
26
+ spec.add_development_dependency 'coveralls', '~> 0.7'
26
27
 
27
28
  spec.add_dependency 'sucker_punch', "~> 1.0"
28
29
  end
@@ -1,3 +1,3 @@
1
1
  module EventAggregator
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
@@ -4,8 +4,8 @@ describe EventAggregator::Aggregator do
4
4
  let(:listener) { (Class.new { include EventAggregator::Listener }).new }
5
5
  let(:listener_class) { Class.new { include EventAggregator::Listener }}
6
6
  let(:message_type) { Faker::Name.name }
7
- let(:data) { Faker::Name.name }
8
- let(:callback) { lambda{ |data| } }
7
+ let(:data) { Faker::Name.name }
8
+ let(:callback) { lambda{ |data| } }
9
9
 
10
10
  before(:each) do
11
11
  EventAggregator::Aggregator.class_variable_set :@@listener, Hash.new{|h, k| h[k] = []}
@@ -219,8 +219,8 @@ describe EventAggregator::Aggregator do
219
219
  end
220
220
  it 'uses different objects when false' do
221
221
  listener2 = listener_class.new
222
- callback1 = lambda{|data| data ="no"}
223
- callback2 = lambda{|data| data ="no"}
222
+ callback1 = lambda{|data| data = "no"}
223
+ callback2 = lambda{|data| data = "no"}
224
224
 
225
225
  EventAggregator::Aggregator.register(listener, message_type, callback1)
226
226
  EventAggregator::Aggregator.register(listener2, message_type, callback2)
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,12 @@
1
1
  require "rubygems"
2
2
  require "bundler/setup"
3
- require "factory_girl"
3
+ require 'rspec'
4
+ #require 'rack/test'
4
5
  require "faker"
5
6
  require "event_aggregator"
6
7
  require "sucker_punch/testing/inline"
7
-
8
+ require 'coveralls'
9
+ Coveralls.wear!
8
10
 
9
11
 
10
12
  RSpec.configure do |config|
@@ -17,7 +19,4 @@ RSpec.configure do |config|
17
19
  # the seed, which is printed after each run.
18
20
  # --seed 1234
19
21
  config.order = "random"
20
-
21
-
22
- FactoryGirl.find_definitions
23
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: event_aggregator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-12-25 00:00:00.000000000 Z
12
+ date: 2013-12-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -32,65 +32,87 @@ dependencies:
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
- - - ! '>='
35
+ - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: '0'
37
+ version: '10'
38
38
  type: :development
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
- - - ! '>='
43
+ - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: '0'
45
+ version: '10'
46
46
  - !ruby/object:Gem::Dependency
47
- name: guard-rspec
47
+ name: rspec
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
- - - ! '>='
51
+ - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: '0'
53
+ version: 3.0.0.beta1
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
- - - ! '>='
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 3.0.0.beta1
62
62
  - !ruby/object:Gem::Dependency
63
- name: factory_girl
63
+ name: guard-rspec
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '4.2'
67
70
  - - ! '>='
68
71
  - !ruby/object:Gem::Version
69
- version: '0'
72
+ version: 4.2.2
70
73
  type: :development
71
74
  prerelease: false
72
75
  version_requirements: !ruby/object:Gem::Requirement
73
76
  none: false
74
77
  requirements:
78
+ - - ~>
79
+ - !ruby/object:Gem::Version
80
+ version: '4.2'
75
81
  - - ! '>='
76
82
  - !ruby/object:Gem::Version
77
- version: '0'
83
+ version: 4.2.2
78
84
  - !ruby/object:Gem::Dependency
79
85
  name: faker
80
86
  requirement: !ruby/object:Gem::Requirement
81
87
  none: false
82
88
  requirements:
83
- - - ! '>='
89
+ - - ~>
84
90
  - !ruby/object:Gem::Version
85
- version: '0'
91
+ version: '1.2'
86
92
  type: :development
87
93
  prerelease: false
88
94
  version_requirements: !ruby/object:Gem::Requirement
89
95
  none: false
90
96
  requirements:
91
- - - ! '>='
97
+ - - ~>
98
+ - !ruby/object:Gem::Version
99
+ version: '1.2'
100
+ - !ruby/object:Gem::Dependency
101
+ name: coveralls
102
+ requirement: !ruby/object:Gem::Requirement
103
+ none: false
104
+ requirements:
105
+ - - ~>
106
+ - !ruby/object:Gem::Version
107
+ version: '0.7'
108
+ type: :development
109
+ prerelease: false
110
+ version_requirements: !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ~>
92
114
  - !ruby/object:Gem::Version
93
- version: '0'
115
+ version: '0.7'
94
116
  - !ruby/object:Gem::Dependency
95
117
  name: sucker_punch
96
118
  requirement: !ruby/object:Gem::Requirement
@@ -116,6 +138,7 @@ extra_rdoc_files: []
116
138
  files:
117
139
  - .gitignore
118
140
  - .rspec
141
+ - .travis.yml
119
142
  - Gemfile
120
143
  - Guardfile
121
144
  - LICENSE.txt
@@ -128,7 +151,6 @@ files:
128
151
  - lib/event_aggregator/message.rb
129
152
  - lib/event_aggregator/message_job.rb
130
153
  - lib/event_aggregator/version.rb
131
- - spec/factories.rb
132
154
  - spec/lib/event_aggregator/aggregator_spec.rb
133
155
  - spec/lib/event_aggregator/listener_spec.rb
134
156
  - spec/lib/event_aggregator/message_job_spec.rb
@@ -155,12 +177,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
155
177
  version: '0'
156
178
  requirements: []
157
179
  rubyforge_project:
158
- rubygems_version: 1.8.25
180
+ rubygems_version: 1.8.23
159
181
  signing_key:
160
182
  specification_version: 3
161
183
  summary: Event aggregator for Ruby.
162
184
  test_files:
163
- - spec/factories.rb
164
185
  - spec/lib/event_aggregator/aggregator_spec.rb
165
186
  - spec/lib/event_aggregator/listener_spec.rb
166
187
  - spec/lib/event_aggregator/message_job_spec.rb
data/spec/factories.rb DELETED
@@ -1,22 +0,0 @@
1
- require 'factory_girl'
2
- require 'faker'
3
- require 'event_aggregator'
4
-
5
-
6
- # Public: Not really used. Might not be needed at all. The same
7
- # goes for FactoryGirl in general. Might not be needed.
8
- #
9
- class DummyListener
10
- include EventAggregator::Listener
11
- end
12
-
13
- FactoryGirl.define do
14
- factory :listener, class: DummyListener do
15
-
16
- end
17
- factory :message do
18
- message_type { Faker::Name.name }
19
- data { Faker::Commerce.product_name }
20
- #initialize_with(Faker::Name.name, Faker::Name.name)
21
- end
22
- end