reactor 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2f0370d510568f325279641ebfc0f1dfde4656f562833b77dbd145a2c924409d
4
- data.tar.gz: 0d6f53ebfeadd27e6038b7cf2d09cb002c6a28574ee642a6808a99c581961175
3
+ metadata.gz: e9e066203f8df6c24028af68d5c0bcbb9c67ca222621202af2e4fe9a23b04745
4
+ data.tar.gz: '0691a70c8cacb2177147eaf8b16e6791e9e17a6ffeda29cc219691dcf5c65a47'
5
5
  SHA512:
6
- metadata.gz: 33bf8180405dcbcbd4887b1dc1f3de6c3d333d64d2788390d7e07ebe0e12de5bc3a9a39014d86d0363f536c04e033cb1ee42faacbc1c373155f06a7c4f391138
7
- data.tar.gz: 44f5e31c9c795880cc9f28836b800153dad356c8ab559e1860fe9767bc6ff2b8d00e51300e3a6cc978f306408bb573ab4df0dd9b7743d376c6ee51886d5700a4
6
+ metadata.gz: ed53ede525d728213b96c704dfe00bfa760e2b7343903361364f517c34a887c162834671a418ffc9628e6f5416b4e171c7251dfc4d2ff899f7d77238869d7819
7
+ data.tar.gz: e7b143688eea7641248f2aa9b7bc721f891389ad25977bf4fcb3980d528eb2e7571bc1ce82991dc827ed3300b4ad694e79dd85959a4c957175687bc135376779
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- reactor (2.0.0)
4
+ reactor (2.0.1)
5
5
  rails (~> 5.2.3)
6
6
  sidekiq (> 4.0)
7
7
 
@@ -77,11 +77,11 @@ GEM
77
77
  mimemagic (~> 0.3.2)
78
78
  method_source (0.8.2)
79
79
  mimemagic (0.3.3)
80
- mini_mime (1.0.1)
80
+ mini_mime (1.0.2)
81
81
  mini_portile2 (2.4.0)
82
82
  minitest (5.11.3)
83
- nio4r (2.3.1)
84
- nokogiri (1.10.3)
83
+ nio4r (2.5.1)
84
+ nokogiri (1.10.4)
85
85
  mini_portile2 (~> 2.4.0)
86
86
  pry (0.10.4)
87
87
  coderay (~> 1.1.0)
@@ -91,7 +91,7 @@ GEM
91
91
  byebug (~> 9.0)
92
92
  pry (~> 0.10)
93
93
  rack (2.0.7)
94
- rack-protection (2.0.5)
94
+ rack-protection (2.0.7)
95
95
  rack
96
96
  rack-test (1.1.0)
97
97
  rack (>= 1.0, < 3)
@@ -111,7 +111,7 @@ GEM
111
111
  rails-dom-testing (2.0.3)
112
112
  activesupport (>= 4.2.0)
113
113
  nokogiri (>= 1.6)
114
- rails-html-sanitizer (1.0.4)
114
+ rails-html-sanitizer (1.2.0)
115
115
  loofah (~> 2.2, >= 2.2.2)
116
116
  railties (5.2.3)
117
117
  actionpack (= 5.2.3)
@@ -120,7 +120,7 @@ GEM
120
120
  rake (>= 0.8.7)
121
121
  thor (>= 0.19.0, < 2.0)
122
122
  rake (12.0.0)
123
- redis (4.1.1)
123
+ redis (4.1.2)
124
124
  rspec (3.6.0)
125
125
  rspec-core (~> 3.6.0)
126
126
  rspec-expectations (~> 3.6.0)
@@ -160,9 +160,9 @@ GEM
160
160
  thread_safe (0.3.6)
161
161
  tzinfo (1.2.5)
162
162
  thread_safe (~> 0.1)
163
- websocket-driver (0.7.0)
163
+ websocket-driver (0.7.1)
164
164
  websocket-extensions (>= 0.1.0)
165
- websocket-extensions (0.1.3)
165
+ websocket-extensions (0.1.4)
166
166
 
167
167
  PLATFORMS
168
168
  ruby
data/README.md CHANGED
@@ -188,6 +188,12 @@ Subscribers can opt into certain queues with `on_event :whatever, sidekiq_option
188
188
 
189
189
  You can also override _all queue choices_ with `ENV['REACTOR_QUEUE']`. You may want to do this if you wish to contain the 'cascade' of events for more expensive or risky operations.
190
190
 
191
+ #### Executing in a Console
192
+
193
+ By default, running a Rails console in a `production` `ENV['RACK_ENV']` will cause publish events to
194
+ bomb out unless `srsly: true` is provided as an additional parameter to event publishing. To control
195
+ this behavior, set `ENV['REACTOR_CONSOLE_ENABLED']` to a value.
196
+
191
197
  ## Contributing
192
198
 
193
199
  1. Fork it
@@ -5,7 +5,8 @@ class Reactor::Event
5
5
 
6
6
  CONSOLE_CONFIRMATION_MESSAGE = <<-eos
7
7
  It looks like you are on a production console. Only fire an event if you intend to trigger
8
- all of its subscribers. In order to proceed, you must pass `srsly: true` in the event data.'
8
+ all of its subscribers. In order to proceed, you must pass `srsly: true` in the event data. To
9
+ configure Reactor to ignore this validation, set `ENV['REACTOR_CONSOLE_ENABLED']` to a value.
9
10
  eos
10
11
 
11
12
  attr_accessor :__data__
@@ -60,7 +61,8 @@ class Reactor::Event
60
61
  end
61
62
 
62
63
  def publish(name, data = {})
63
- if defined?(Rails::Console) && ENV['RACK_ENV'] == 'production' && data[:srsly].blank?
64
+ if defined?(Rails::Console) && ENV['RACK_ENV'] == 'production' && data[:srsly].blank? &&
65
+ !ENV['REACTOR_CONSOLE_ENABLED']
64
66
  raise ArgumentError.new(CONSOLE_CONFIRMATION_MESSAGE)
65
67
  end
66
68
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Reactor
4
- VERSION = '2.0.0'
4
+ VERSION = '2.0.1'
5
5
  end
@@ -63,19 +63,40 @@ describe Reactor::Event do
63
63
  end
64
64
 
65
65
  context 'when in a production rails console' do
66
- it 'requires a second argument srsly: true' do
66
+ before do
67
67
  stub_const('Rails::Console', Class.new)
68
68
  ENV['RACK_ENV'] = 'production'
69
+ end
69
70
 
70
- expect {
71
- Reactor::Event.publish(:thing)
72
- }.to raise_exception(ArgumentError)
71
+ after do
72
+ ENV['RACK_ENV'] = 'development'
73
+ end
73
74
 
74
- expect {
75
- Reactor::Event.publish(:thing, srsly: true)
76
- }.to_not raise_exception
75
+ context 'when allowing console usage' do
76
+ before { ENV['REACTOR_CONSOLE_ENABLED'] = 'true' }
77
+ after { ENV['REACTOR_CONSOLE_ENABLED'] = nil }
77
78
 
78
- ENV['RACK_ENV'] = 'development'
79
+ it 'does not require `srsly: true`' do
80
+ expect {
81
+ Reactor::Event.publish(:thing)
82
+ }.to_not raise_exception
83
+
84
+ expect {
85
+ Reactor::Event.publish(:thing, srsly: true)
86
+ }.to_not raise_exception
87
+ end
88
+ end
89
+
90
+ context 'without specifying console usage' do
91
+ it 'requires a second argument srsly: true' do
92
+ expect {
93
+ Reactor::Event.publish(:thing)
94
+ }.to raise_exception(ArgumentError)
95
+
96
+ expect {
97
+ Reactor::Event.publish(:thing, srsly: true)
98
+ }.to_not raise_exception
99
+ end
79
100
  end
80
101
  end
81
102
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reactor
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - winfred
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2019-05-14 00:00:00.000000000 Z
16
+ date: 2019-08-28 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: rails
@@ -234,7 +234,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
234
234
  - !ruby/object:Gem::Version
235
235
  version: '0'
236
236
  requirements: []
237
- rubygems_version: 3.0.3
237
+ rubyforge_project:
238
+ rubygems_version: 2.7.6
238
239
  signing_key:
239
240
  specification_version: 4
240
241
  summary: Sidekiq/ActiveRecord pubsub lib