celluloid_pubsub 0.8.0 → 0.8.1

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f9a9695736f77a9058642129bc301b000da27ed4
4
- data.tar.gz: 5d626707aec391b2e7e409a402a8da9cc2dbfb98
3
+ metadata.gz: 2c8492791d62fac1a25802a1f220f34f75c4f57c
4
+ data.tar.gz: 0c95d4091fdc3becc7ecf07707d4aed11f006c4b
5
5
  SHA512:
6
- metadata.gz: b583c4c34ff483903aaf081d8a204e67514112210c76976b17ab4809dfade9f7a90dd763d04955da135361b497d4291a312ed1a4a8c6ba88f5f199bc3c49172f
7
- data.tar.gz: 7424cf9bf1ebc91c08e334f3da91736ef7c2f531310823283e531d0eab7b46bf89be1f791e1df1e5ca741d3b96110d562ab37c14a9673661d8c66c51c85a6500
6
+ metadata.gz: 77a0d22a464b8a45713b8ea366f8f5653cc3ee44b4d4d089a9a1b23d8f58ab47d1be05a38bfcb4da0a919970b8fa06dd81b5c86f7b74a42fc06d6353f2f94737
7
+ data.tar.gz: 05ca183e6aa33cd0a4695a333ab015ce5485d7989e964fef0527378bffcb67b2e5ca11239584e3cf09242043626b63425bfc079929d5a9abcb93bc80b28dfe3a
data/Rakefile CHANGED
@@ -1,26 +1,14 @@
1
1
  require 'bundler/setup'
2
2
  require 'bundler/gem_tasks'
3
+ require 'appraisal'
3
4
  require 'rspec/core/rake_task'
4
5
  require 'coveralls/rake/task'
5
6
  require 'yard'
6
7
  Coveralls::RakeTask.new
7
8
 
8
9
  RSpec::Core::RakeTask.new(:spec) do |spec|
9
- spec.rspec_opts = ['--backtrace', '--fail-fast'] if ENV['DEBUG']
10
- end
11
-
12
- YARD::Config.options[:load_plugins] = true
13
- YARD::Config.load_plugins
14
-
15
- # dirty hack for YardocTask
16
- ::Rake.application.class.class_eval do
17
- alias_method :last_comment, :last_description
18
- end
19
-
20
- YARD::Rake::YardocTask.new do |t|
21
- t.files = ['lib/**/*.rb', 'spec/**/*_spec.rb'] # optional
22
- t.options = ['--any', '--extra', '--opts', '--markup-provider=redcarpet', '--markup=markdown', '--debug'] # optional
23
- t.stats_options = ['--list-undoc'] # optional
10
+ spec.rspec_opts = ['--backtrace '] if ENV['DEBUG']
11
+ spec.verbose = true
24
12
  end
25
13
 
26
14
  desc 'Default: run the unit tests.'
@@ -29,12 +17,29 @@ task default: [:all]
29
17
  desc 'Test the plugin under all supported Rails versions.'
30
18
  task :all do |_t|
31
19
  if ENV['TRAVIS']
32
- exec('bundle exec rake spec && bundle exec rake coveralls:push')
20
+ # require 'json'
21
+ # puts JSON.pretty_generate(ENV.to_hash)
22
+ if ENV['BUNDLE_GEMFILE'] =~ /gemfiles/
23
+ appraisal_name = ENV['BUNDLE_GEMFILE'].scan(/rails\_(.*)\.gemfile/).flatten.first
24
+ command_prefix = "appraisal rails-#{appraisal_name}"
25
+ exec ("#{command_prefix} bundle install && #{command_prefix} bundle exec rspec && bundle exec rake coveralls:push ")
26
+ else
27
+ exec(' bundle exec appraisal install && bundle exec rake appraisal spec && bundle exec rake coveralls:push')
28
+ end
33
29
  else
34
- exec('bundle exec rake spec')
30
+ exec('bundle exec appraisal install && bundle exec rake appraisal spec')
35
31
  end
36
32
  end
37
33
 
34
+ YARD::Config.options[:load_plugins] = true
35
+ YARD::Config.load_plugins
36
+
37
+ YARD::Rake::YardocTask.new do |t|
38
+ t.files = ['lib/**/*.rb', 'spec/**/*_spec.rb'] # optional
39
+ t.options = ['--any', '--extra', '--opts', '--markup-provider=redcarpet', '--markup=markdown', '--debug'] # optional
40
+ t.stats_options = ['--list-undoc'] # optional
41
+ end
42
+
38
43
  task :docs do
39
44
  exec('bundle exec inch --pedantic && bundle exec yard --list-undoc')
40
45
  end
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
23
23
  s.add_runtime_dependency 'celluloid-pmap', '~> 0.2', '>= 0.2.2'
24
24
  s.add_runtime_dependency 'activesupport', '>= 4.0', '>= 4.0'
25
25
 
26
-
26
+ s.add_development_dependency 'appraisal', '~> 2.1', '>= 2.1'
27
27
  s.add_development_dependency 'rspec', '~> 3.4', '>= 3.4'
28
28
  s.add_development_dependency 'simplecov', '~> 0.10', '>= 0.10'
29
29
  s.add_development_dependency 'simplecov-summary', '~> 0.0.4', '>= 0.0.4'
@@ -40,7 +40,7 @@ module CelluloidPubsub
40
40
  if version_less_than_seventeen?
41
41
  class_name.supervise_as(options[:actor_name], options[:args])
42
42
  else
43
- class_name.supervise(as: options[:actor_name], args: [options[:args]])
43
+ class_name.supervise(as: options[:actor_name], args: [options[:args]].compact)
44
44
  end
45
45
  end
46
46
 
@@ -222,7 +222,7 @@ module CelluloidPubsub
222
222
  return unless channel.present?
223
223
  forget_channel(channel)
224
224
  @server.mutex.synchronize do
225
- (@server.subscribers[channel].dup || []).delete_if do |hash|
225
+ (@server.subscribers[channel] || []).delete_if do |hash|
226
226
  hash[:reactor] == Actor.current
227
227
  end
228
228
  end
@@ -17,7 +17,7 @@ module CelluloidPubsub
17
17
  # minor release version
18
18
  MINOR = 8
19
19
  # tiny release version
20
- TINY = 0
20
+ TINY = 1
21
21
  # prelease version ( set this only if it is a prelease)
22
22
  PRE = nil
23
23
 
@@ -6,6 +6,7 @@ require 'reel'
6
6
  require 'celluloid/websocket/client'
7
7
  require 'active_support/all'
8
8
  require 'json'
9
+ require 'thread'
9
10
  require 'celluloid/pmap'
10
11
  require 'celluloid_pubsub/base_actor'
11
12
  Gem.find_files('celluloid_pubsub/initializers/**/*.rb').each { |path| require path }
@@ -5,6 +5,8 @@ require 'spec_helper'
5
5
  describe CelluloidPubsub::Reactor do
6
6
  let(:websocket) { mock }
7
7
  let(:server) { mock }
8
+ let(:mutex) { mock }
9
+ let(:synchronizer) { mock }
8
10
 
9
11
  before(:each) do
10
12
  subject.stubs(:async).returns(subject)
@@ -22,6 +24,8 @@ describe CelluloidPubsub::Reactor do
22
24
  subject.stubs(:run)
23
25
  subject.work(websocket, server)
24
26
  subject.stubs(:unsubscribe_from_channel).returns(true)
27
+ server.stubs(:mutex).returns(mutex)
28
+ mutex.stubs(:synchronize).yields(server)
25
29
  Celluloid::Actor.stubs(:kill).returns(true)
26
30
  end
27
31
 
@@ -140,14 +144,14 @@ describe CelluloidPubsub::Reactor do
140
144
  subject.channels.stubs(:blank?).returns(false)
141
145
  subject.channels.expects(:delete).with(channel)
142
146
  act = subject.unsubscribe(channel)
143
- expect(act).to eq([])
147
+ expect(act).to eq(nil)
144
148
  end
145
149
 
146
150
  it 'unsubscribes' do
147
151
  subject.channels.stubs(:blank?).returns(true)
148
152
  subject.websocket.expects(:close)
149
153
  act = subject.unsubscribe(channel)
150
- expect(act).to eq([])
154
+ expect(act).to eq(nil)
151
155
  end
152
156
 
153
157
  it 'unsubscribes' do
data/spec/spec_helper.rb CHANGED
@@ -49,6 +49,21 @@ end
49
49
  # class used for testing actions
50
50
  class TestActor
51
51
  include CelluloidPubsub::BaseActor
52
+
53
+ def initialize(*args)
54
+ end
52
55
  end
53
56
 
54
57
  CelluloidPubsub::BaseActor.setup_actor_supervision(TestActor, actor_name: :test_actor, args: { })
58
+
59
+ unless defined?(silence_stream) # Rails 5
60
+ def silence_stream(stream)
61
+ old_stream = stream.dup
62
+ stream.reopen(RbConfig::CONFIG['host_os'] =~ /mswin|mingw/ ? 'NUL:' : '/dev/null')
63
+ stream.sync = true
64
+ yield
65
+ ensure
66
+ stream.reopen(old_stream)
67
+ old_stream.close
68
+ end
69
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: celluloid_pubsub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - bogdanRada
@@ -124,6 +124,26 @@ dependencies:
124
124
  - - ">="
125
125
  - !ruby/object:Gem::Version
126
126
  version: '4.0'
127
+ - !ruby/object:Gem::Dependency
128
+ name: appraisal
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: '2.1'
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: '2.1'
137
+ type: :development
138
+ prerelease: false
139
+ version_requirements: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: '2.1'
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '2.1'
127
147
  - !ruby/object:Gem::Dependency
128
148
  name: rspec
129
149
  requirement: !ruby/object:Gem::Requirement