event_aggregator 1.1.4.pre.pre → 1.1.4

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.
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