reactor 2.0.0 → 2.0.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
  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