event_aggregator 1.0.1 → 1.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/.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