event_aggregator 1.1.4.pre.pre → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NjViMDc2Y2ZkMmE0ZmJmNzk2ZmJlZTEwODBhNGQwZWM4Y2NkZTcyNg==
4
+ MTA4MzQ1NDU2ZDMxMzkzYTQ0ZjkwNzBlMGFlODhhMDE2NWZjYjU5Yw==
5
5
  data.tar.gz: !binary |-
6
- ZjdhZjQ2YWQ0YWZiYmQyM2FiZjU3ZTk1NDJkZTFmZDdiMDk4ODk0MQ==
6
+ OWIwZmY0NGM0NzBmOGU2MDc2ZGYxMDBkZjY5NjlmNjVmOWJjMjM0Ng==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NTk4ZDNjMTczMWVhMWU3ODRkMDMyMmUxYTgzOTI5ZjkxYWU3OWI5MjNhYmI3
10
- YzVkNjZlNDhlODZlODM0ZjkyNTYzMWRmNWQ3OWEyMmEzYTM3MmIzMjExNGUz
11
- YjU3Y2ZhN2RhMDlhMjUzMjU0YmY0MjdjNGVlMTM4YTVmZGFlYzg=
9
+ YWI2ZjJhOTAzMTU3MTNmNzQwNWEyYWE3NTFlMzg2ZTIwYTQzZTRhMzA4MjVi
10
+ NTk0ZDc2MDMwOTI1NjQ5NTJmZDdlNGQ5MjJhMzRmMWU3MDUzNTU2YjhkZGI1
11
+ MGVkZDY5ZmY2MDM1MWZlZDAxZTk5MWJmYzgwYWNiYjNhOGNjMTQ=
12
12
  data.tar.gz: !binary |-
13
- YzZjN2I2YjNmNWMyMmFjNjhmMThkNmYwY2ZhOWZjNjgzZDBiZjFjN2FkYmFk
14
- MjEzYTRjZmRiMDQ2NzdkNGY4MTg4ODNiODgyNzQ0NDMzNjc3NTBhOTU4MjM0
15
- ZWVkODhlY2QwYjNhNTBlMjZhZDUzYzlhNDVkODcxYTE1NDYzZjI=
13
+ NTA3NjFkNmFkOTEyOTZjZWE3N2MxYTFhMjc3YjMwMDY5ODU0MDVmMjZjYmFh
14
+ YjZmNGNjNmNmOTgyNmE1MTRmMmRjZjc5Njc2NmVhOTViYTViYTJjOGIzNzI5
15
+ ZDkxN2RlZjBkNmJiYjg2YmI4NmZhZGZhZDkzZWM3NzM4N2JhOTE=
@@ -1,5 +1,4 @@
1
1
  require "thread/pool"
2
-
3
2
  require "event_aggregator/version"
4
3
  require "event_aggregator/aggregator"
5
4
  require "event_aggregator/listener"
@@ -27,7 +27,6 @@ module EventAggregator
27
27
  # message_type is published. Is executed with message.data as parameter.
28
28
  #
29
29
  def self.register( listener, message_type, callback )
30
- puts 'def self.register( listener, message_type, callback )'
31
30
  raise "Illegal listener" unless listener.class < EventAggregator::Listener
32
31
  raise "Illegal message_type" if message_type == nil
33
32
  raise "Illegal callback" unless callback.respond_to?(:call)
@@ -45,7 +44,6 @@ module EventAggregator
45
44
  # will execute with the message as parameter.
46
45
  #
47
46
  def self.register_all( listener, callback )
48
- puts 'def self.register_all( listener, callback )'
49
47
  raise "Illegal listener" unless listener.class < EventAggregator::Listener
50
48
  raise "Illegal callback" unless callback.respond_to?(:call)
51
49
  @@listeners_all[listener] = callback
@@ -59,7 +57,6 @@ module EventAggregator
59
57
  # the messages.
60
58
  # message_type - The message type to unregister for.
61
59
  def self.unregister( listener, message_type )
62
- puts 'def self.unregister( listener, message_type )'
63
60
  @@listeners[message_type].delete(listener)
64
61
  end
65
62
 
@@ -68,7 +65,6 @@ module EventAggregator
68
65
  # listener - The listener who should no longer get any messages at all,
69
66
  # regardless of type.
70
67
  def self.unregister_all( listener )
71
- puts 'def self.unregister_all( listener )'
72
68
  @@listeners.each do |key,value|
73
69
  value.delete(listener)
74
70
  end
@@ -82,7 +78,6 @@ module EventAggregator
82
78
  # async - true => message will be sent async. Default true
83
79
  # consisten_data - true => the same object will be sent to all recievers. Default false
84
80
  def self.message_publish ( message )
85
- puts 'def self.message_publish ( message )'
86
81
  raise "Invalid message" unless message.respond_to?(:message_type) && message.respond_to?(:data)
87
82
  @@listeners[message.message_type].each do |listener, callback|
88
83
  perform_message_job(message.data, callback, message.async, message.consisten_data)
@@ -100,7 +95,6 @@ module EventAggregator
100
95
  # Use EventAggregator::Aggregator.reset before each test when doing unit testing.
101
96
  #
102
97
  def self.reset
103
- puts 'def self.reset'
104
98
  @@listeners = Hash.new{|h, k| h[k] = Hash.new}
105
99
  @@listeners_all = Hash.new
106
100
  @@message_translation = Hash.new{|h, k| h[k] = Hash.new }
@@ -114,7 +108,6 @@ module EventAggregator
114
108
  # callback=lambda{|data| data} - The callback that will transform the data from message_type to message_type_new. Default: copy.
115
109
  #
116
110
  def self.translate_message_with(message_type, message_type_new, callback=lambda{|data| data})
117
- puts 'def self.translate_message_with(message_type, message_type_new, callback=lambda{|data| data})'
118
111
  raise "Illegal parameters" if message_type == nil || message_type_new == nil || !callback.respond_to?(:call) || callback.arity != 1 #TODO: The callback.parameters is not 1.8.7 compatible.
119
112
  raise "Illegal parameters, equal message_type and message_type_new" if message_type == message_type_new || message_type.eql?(message_type_new)
120
113
 
@@ -133,7 +126,6 @@ module EventAggregator
133
126
  # EventAggregator::Aggregator.register_producer("GetMultipliedByTwo", lambda{|data| data*2})
134
127
  #
135
128
  def self.register_producer(message_type, callback)
136
- puts 'def self.register_producer(message_type, callback)'
137
129
  raise "Illegal message_type" if message_type == nil
138
130
  raise "Illegal callback" unless callback.respond_to?(:call) && callback.arity == 1
139
131
 
@@ -147,7 +139,6 @@ module EventAggregator
147
139
  # message_type - The message type which will no longer respond to message requests.
148
140
  #
149
141
  def self.unregister_producer(message_type)
150
- puts 'def self.unregister_producer(message_type)'
151
142
  @@producers.delete(message_type)
152
143
  end
153
144
 
@@ -159,13 +150,11 @@ module EventAggregator
159
150
  # Returns The data provided by a producer registered for this specific message type, or nil.
160
151
  #
161
152
  def self.message_request(message)
162
- puts 'def self.message_request(message)'
163
153
  @@producers[message.message_type] ? @@producers[message.message_type].call(message.data) : nil
164
154
  end
165
155
 
166
156
  private
167
157
  def self.perform_message_job(data, callback, async, consisten_data)
168
- puts 'def self.perform_message_job(data, callback, async, consisten_data)'
169
158
  case [async, consisten_data]
170
159
  when [true, true] then @@pool.process{ EventAggregator::MessageJob.new.perform(data, callback) }
171
160
  when [true, false] then @@pool.process{ EventAggregator::MessageJob.new.perform(data.clone, callback) }
@@ -28,7 +28,6 @@ module EventAggregator
28
28
  # message_type_register("foo", Proc.new { puts "foo" })
29
29
  #
30
30
  def message_type_register( message_type, callback )
31
- puts 'def message_type_register( message_type, callback )'
32
31
  Aggregator.register( self, message_type, callback)
33
32
  end
34
33
 
@@ -39,7 +38,6 @@ module EventAggregator
39
38
  # callback - The method that will be invoked every time this message type is received. Must have: callback.respond_to? :call #=> true
40
39
  #
41
40
  def message_type_register_all(callback)
42
- puts 'def message_type_register_all(callback)'
43
41
  Aggregator.register_all(self, callback)
44
42
  end
45
43
 
@@ -53,7 +51,6 @@ module EventAggregator
53
51
  # message_type_unregister("foo")
54
52
  #
55
53
  def message_type_unregister( message_type )
56
- puts 'def message_type_unregister( message_type )'
57
54
  Aggregator.unregister(self, message_type)
58
55
  end
59
56
 
@@ -62,7 +59,6 @@ module EventAggregator
62
59
  # Listener will no longer recieve any callbacks when messages of any kind are published.
63
60
  #
64
61
  def message_type_unregister_all
65
- puts 'def message_type_unregister_all'
66
62
  Aggregator.unregister_all(self)
67
63
  end
68
64
 
@@ -79,7 +75,6 @@ module EventAggregator
79
75
  # # => 6
80
76
  #
81
77
  def producer_register(message_type, callback)
82
- puts 'def producer_register(message_type, callback)'
83
78
  Aggregator.register_producer(message_type, callback)
84
79
  end
85
80
  end
@@ -33,7 +33,6 @@ module EventAggregator
33
33
  # consisten_data = false - Indicates if EventAggregator::Listener objects
34
34
  # should recieve a consistent object reference or clones.
35
35
  def initialize(message_type, data, async = true, consisten_data = false)
36
- puts 'def initialize(message_type, data, async = true, consisten_data = false)'
37
36
  raise "Illegal Message Type" if message_type == nil
38
37
 
39
38
  @message_type = message_type
@@ -46,15 +45,13 @@ module EventAggregator
46
45
  # EventAggregator::Listener that is registered for message types
47
46
  # equal to this.message_type
48
47
  def publish
49
- puts 'def publish'
50
48
  Aggregator.message_publish( self )
51
49
  end
52
-
50
+
53
51
  # Public: Will provide data if a producer of this message_type is present.
54
- #
52
+ #
55
53
  # Returns Requested data if a producer is present. Nil otherwise.
56
54
  def request
57
- puts 'def request'
58
55
  Aggregator.message_request( self )
59
56
  end
60
57
  end
@@ -12,7 +12,6 @@ module EventAggregator
12
12
  # callback - The callback that will be processed with the data as
13
13
  # a parameter
14
14
  def perform(data, callback)
15
- puts 'def perform(data, callback)'
16
15
  callback.call(data)
17
16
  end
18
17
  end
@@ -1,3 +1,3 @@
1
1
  module EventAggregator
2
- VERSION = "1.1.4-pre"
2
+ VERSION = "1.1.4"
3
3
  end
@@ -9,13 +9,9 @@ describe EventAggregator::Aggregator do
9
9
  let(:random_string) { Faker::Internet.password }
10
10
  let(:random_number) { Faker::Number.number(rand(9)) }
11
11
 
12
- before(:all) do
12
+ before(:each) do
13
13
  EventAggregator::Aggregator.reset
14
14
  end
15
-
16
- after(:each) do
17
- EventAggregator::Aggregator.restart_pool
18
- end
19
15
  describe "self.register" do
20
16
  describe 'legal parameters' do
21
17
  it "no errors" do
@@ -233,7 +229,7 @@ describe EventAggregator::Aggregator do
233
229
  EventAggregator::Aggregator.message_publish(message)
234
230
  end
235
231
 
236
- it 'run all callbacks for all message types' do #Fails with seed: 34154
232
+ it 'run all callbacks for all message types' do
237
233
  EventAggregator::Aggregator.register_all(listener, callback)
238
234
 
239
235
  message1 = EventAggregator::Message.new(message_type , data)
@@ -583,70 +579,4 @@ describe EventAggregator::Aggregator do
583
579
  end
584
580
  end
585
581
  end
586
-
587
- describe 'propagates fully' do
588
- class TestClassSingle
589
- include EventAggregator::Listener
590
-
591
- def initialize
592
- message_type_register("message_type", method(:test_method))
593
- end
594
-
595
- def test_method(data)
596
- self.self_called(data)
597
- end
598
- def self_called(data)
599
- end
600
- end
601
-
602
- class TestClassAll
603
- include EventAggregator::Listener
604
-
605
- def initialize
606
- message_type_register_all(method(:test_method))
607
- end
608
-
609
- def test_method(data)
610
- self.self_called(data)
611
- end
612
- def self_called(data)
613
- end
614
- end
615
-
616
- it "calls method on test class single" do
617
- test_class = TestClassSingle.new
618
- expect(test_class).to receive(:self_called).with(data)
619
- message = EventAggregator::Message.new("message_type", data)
620
- EventAggregator::Aggregator.message_publish(message)
621
- end
622
-
623
- it "calls method on test class all" do
624
- test_class = TestClassAll.new
625
- message = EventAggregator::Message.new("message_type", data)
626
- expect(test_class).to receive(:self_called){|e| expect(e.message_type).to eq("message_type") and expect(e.data).to eq(data)}
627
- EventAggregator::Aggregator.message_publish(message)
628
- end
629
-
630
- it "calls method on test class single full-stack" do
631
- test_class = TestClassSingle.new
632
- expect(test_class).to receive(:self_called).with(data)
633
- message = EventAggregator::Message.new("message_type", data)
634
- message.publish
635
- end
636
-
637
- it "calls method on test class all full-stack" do
638
- test_class = TestClassAll.new
639
- message = EventAggregator::Message.new("message_type", data)
640
- expect(test_class).to receive(:self_called){|e| expect(e.message_type).to eq("message_type") and expect(e.data).to eq(data)}
641
- message.publish
642
- end
643
- it "calls method on mulitple" do
644
- test_class = TestClassAll.new
645
- test_class2 = TestClassSingle.new
646
- message = EventAggregator::Message.new("message_type", data)
647
- expect(test_class).to receive(:self_called){|e| expect(e.message_type).to eq("message_type") and expect(e.data).to eq(data)}
648
- expect(test_class2).to receive(:self_called){|e| expect(e.message_type).to eq("message_type") and expect(e.data).to eq(data)}
649
- message.publish
650
- end
651
- end
652
582
  end
data/spec/spec_helper.rb CHANGED
@@ -10,13 +10,13 @@ Coveralls.wear!
10
10
 
11
11
 
12
12
 
13
- # class Thread::Pool
14
-
15
- # # Public: Overriding the process-call of the thread::pool so we can do tests better
16
- # def process (*args, &block)
17
- # block.call(*args)
18
- # end
19
- # end
13
+ class Thread::Pool
14
+
15
+ # Public: Overriding the process-call of the thread::pool so we can do tests better
16
+ def process (*args, &block)
17
+ block.call(*args)
18
+ end
19
+ end
20
20
 
21
21
  RSpec.configure do |config|
22
22
  config.treat_symbols_as_metadata_keys_with_true_values = true
@@ -29,13 +29,3 @@ RSpec.configure do |config|
29
29
  # --seed 1234
30
30
  config.order = "random"
31
31
  end
32
-
33
-
34
- class EventAggregator::Aggregator
35
-
36
- def self.restart_pool
37
- @@pool.shutdown
38
- @@pool = Thread.pool(4)
39
- end
40
-
41
- end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: event_aggregator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4.pre.pre
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephan Eriksen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-11 00:00:00.000000000 Z
11
+ date: 2014-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -156,9 +156,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
156
156
  version: '0'
157
157
  required_rubygems_version: !ruby/object:Gem::Requirement
158
158
  requirements:
159
- - - ! '>'
159
+ - - ! '>='
160
160
  - !ruby/object:Gem::Version
161
- version: 1.3.1
161
+ version: '0'
162
162
  requirements: []
163
163
  rubyforge_project:
164
164
  rubygems_version: 2.2.0