hyper-operation 1.0.alpha1.5 → 1.0.alpha1.6
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 +4 -4
- data/.travis.yml +1 -0
- data/hyper-operation.gemspec +6 -5
- data/lib/hyper-operation.rb +2 -1
- data/lib/hyper-operation/api.rb +6 -2
- data/lib/hyper-operation/async_sleep.rb +23 -0
- data/lib/hyper-operation/railway/dispatcher.rb +0 -1
- data/lib/hyper-operation/railway/run.rb +4 -1
- data/lib/hyper-operation/server_op.rb +1 -1
- data/lib/hyper-operation/transport/client_drivers.rb +2 -2
- data/lib/hyper-operation/transport/connection.rb +58 -136
- data/lib/hyper-operation/transport/connection_adapter/active_record.rb +113 -0
- data/lib/hyper-operation/transport/connection_adapter/active_record/auto_create.rb +26 -0
- data/lib/hyper-operation/transport/connection_adapter/active_record/connection.rb +47 -0
- data/lib/hyper-operation/transport/connection_adapter/active_record/queued_message.rb +42 -0
- data/lib/hyper-operation/transport/connection_adapter/redis.rb +94 -0
- data/lib/hyper-operation/transport/connection_adapter/redis/connection.rb +85 -0
- data/lib/hyper-operation/transport/connection_adapter/redis/queued_message.rb +34 -0
- data/lib/hyper-operation/transport/connection_adapter/redis/redis_record.rb +158 -0
- data/lib/hyper-operation/transport/hyperstack.rb +9 -1
- data/lib/hyper-operation/transport/hyperstack_controller.rb +5 -1
- data/lib/hyper-operation/transport/policy.rb +9 -4
- data/lib/hyper-operation/version.rb +1 -1
- metadata +64 -42
- data/lib/hyper-operation/delay_and_interval.rb +0 -9
@@ -16,7 +16,7 @@ module Hyperstack
|
|
16
16
|
# config.eager_load_paths += %W(#{config.root}/app/hyperstack/models)
|
17
17
|
# config.autoload_paths += %W(#{config.root}/app/hyperstack/models)
|
18
18
|
# config.assets.paths << ::Rails.root.join('app', 'hyperstack').to_s
|
19
|
-
config.after_initialize { Connection.build_tables }
|
19
|
+
config.after_initialize { Connection.build_tables if Connection.build_tables? }
|
20
20
|
end
|
21
21
|
Object.send(:remove_const, :Application) if @fake_application_defined
|
22
22
|
@fake_application_defined = false
|
@@ -66,6 +66,14 @@ module Hyperstack
|
|
66
66
|
define_setting :client_logging, true
|
67
67
|
define_setting :connect_session, true
|
68
68
|
|
69
|
+
define_setting(:connection, { adapter: :active_record }) do |connection|
|
70
|
+
if connection[:adapter] == :redis
|
71
|
+
require 'redis'
|
72
|
+
|
73
|
+
connection[:redis_url] ||= 'redis://127.0.0.1:6379/hyperstack'
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
69
77
|
def self.app_id
|
70
78
|
opts[:app_id] || Pusher.app_id if transport == :pusher
|
71
79
|
end
|
@@ -11,6 +11,10 @@ module Hyperstack
|
|
11
11
|
end
|
12
12
|
end if defined? ::WebConsole::Middleware
|
13
13
|
|
14
|
+
|
15
|
+
# The purpose of this is to prevent massive amounts of logging
|
16
|
+
# if using simple polling. If polling is on then only actual messages
|
17
|
+
# with content will be shown, other wise the log message is dropped.
|
14
18
|
module ::Rails
|
15
19
|
module Rack
|
16
20
|
class Logger < ActiveSupport::LogSubscriber
|
@@ -141,7 +145,7 @@ module Hyperstack
|
|
141
145
|
end
|
142
146
|
|
143
147
|
def execute_remote
|
144
|
-
parsed_params = JSON.parse(params[:
|
148
|
+
parsed_params = JSON.parse(params[:hyperstack_secured_json]).symbolize_keys
|
145
149
|
render ServerOp.run_from_client(
|
146
150
|
:acting_user,
|
147
151
|
self,
|
@@ -328,9 +328,9 @@ module Hyperstack
|
|
328
328
|
regulations[instance].regulations.each do |regulation|
|
329
329
|
instance.instance_exec wrap_policy(policy, regulation), ®ulation
|
330
330
|
end
|
331
|
-
if policy.
|
332
|
-
|
333
|
-
|
331
|
+
return if policy.has_to_been_called?
|
332
|
+
|
333
|
+
raise "#{instance.class.name} instance broadcast policy not sent to any channel"
|
334
334
|
end
|
335
335
|
end
|
336
336
|
|
@@ -425,12 +425,17 @@ module Hyperstack
|
|
425
425
|
end
|
426
426
|
|
427
427
|
def send_set_to(send_set, channels)
|
428
|
+
@to_has_been_called = true
|
428
429
|
channels.flatten(1).each do |channel|
|
429
430
|
merge_set(send_set, channel) if channel_available? channel
|
430
431
|
@unassigned_send_sets.delete(send_set)
|
431
432
|
end
|
432
433
|
end
|
433
434
|
|
435
|
+
def has_to_been_called?
|
436
|
+
!has_unassigned_sets? || @to_has_been_called
|
437
|
+
end
|
438
|
+
|
434
439
|
def merge_set(send_set, channel)
|
435
440
|
return unless channel
|
436
441
|
channel = channel.name if channel.is_a?(Class) && channel.name
|
@@ -467,7 +472,7 @@ module Hyperstack
|
|
467
472
|
|
468
473
|
def send_message(header, channel, attribute_set, &block)
|
469
474
|
record = filter(@obj.react_serializer, attribute_set)
|
470
|
-
previous_changes = filter(@obj.
|
475
|
+
previous_changes = filter(@obj.saved_changes, attribute_set)
|
471
476
|
return if record.empty? && previous_changes.empty?
|
472
477
|
message = header.merge(
|
473
478
|
channel: channel_to_string(channel),
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hyper-operation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.alpha1.
|
4
|
+
version: 1.0.alpha1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mitch VanDuyn
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-03-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -31,14 +31,14 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - '='
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 1.0.alpha1.
|
34
|
+
version: 1.0.alpha1.6
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - '='
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: 1.0.alpha1.
|
41
|
+
version: 1.0.alpha1.6
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: mutations
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -87,20 +87,14 @@ dependencies:
|
|
87
87
|
requirements:
|
88
88
|
- - ">="
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version:
|
91
|
-
- - "<"
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '2.1'
|
90
|
+
version: '0'
|
94
91
|
type: :development
|
95
92
|
prerelease: false
|
96
93
|
version_requirements: !ruby/object:Gem::Requirement
|
97
94
|
requirements:
|
98
95
|
- - ">="
|
99
96
|
- !ruby/object:Gem::Version
|
100
|
-
version:
|
101
|
-
- - "<"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '2.1'
|
97
|
+
version: '0'
|
104
98
|
- !ruby/object:Gem::Dependency
|
105
99
|
name: chromedriver-helper
|
106
100
|
requirement: !ruby/object:Gem::Requirement
|
@@ -135,14 +129,14 @@ dependencies:
|
|
135
129
|
requirements:
|
136
130
|
- - '='
|
137
131
|
- !ruby/object:Gem::Version
|
138
|
-
version: 1.0.alpha1.
|
132
|
+
version: 1.0.alpha1.6
|
139
133
|
type: :development
|
140
134
|
prerelease: false
|
141
135
|
version_requirements: !ruby/object:Gem::Requirement
|
142
136
|
requirements:
|
143
137
|
- - '='
|
144
138
|
- !ruby/object:Gem::Version
|
145
|
-
version: 1.0.alpha1.
|
139
|
+
version: 1.0.alpha1.6
|
146
140
|
- !ruby/object:Gem::Dependency
|
147
141
|
name: mysql2
|
148
142
|
requirement: !ruby/object:Gem::Requirement
|
@@ -157,26 +151,6 @@ dependencies:
|
|
157
151
|
- - ">="
|
158
152
|
- !ruby/object:Gem::Version
|
159
153
|
version: '0'
|
160
|
-
- !ruby/object:Gem::Dependency
|
161
|
-
name: opal
|
162
|
-
requirement: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - ">="
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: 0.11.0
|
167
|
-
- - "<"
|
168
|
-
- !ruby/object:Gem::Version
|
169
|
-
version: 0.12.0
|
170
|
-
type: :development
|
171
|
-
prerelease: false
|
172
|
-
version_requirements: !ruby/object:Gem::Requirement
|
173
|
-
requirements:
|
174
|
-
- - ">="
|
175
|
-
- !ruby/object:Gem::Version
|
176
|
-
version: 0.11.0
|
177
|
-
- - "<"
|
178
|
-
- !ruby/object:Gem::Version
|
179
|
-
version: 0.12.0
|
180
154
|
- !ruby/object:Gem::Dependency
|
181
155
|
name: opal-browser
|
182
156
|
requirement: !ruby/object:Gem::Requirement
|
@@ -195,16 +169,22 @@ dependencies:
|
|
195
169
|
name: opal-rails
|
196
170
|
requirement: !ruby/object:Gem::Requirement
|
197
171
|
requirements:
|
198
|
-
- - "
|
172
|
+
- - ">="
|
199
173
|
- !ruby/object:Gem::Version
|
200
174
|
version: 0.9.4
|
175
|
+
- - "<"
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: '2.0'
|
201
178
|
type: :development
|
202
179
|
prerelease: false
|
203
180
|
version_requirements: !ruby/object:Gem::Requirement
|
204
181
|
requirements:
|
205
|
-
- - "
|
182
|
+
- - ">="
|
206
183
|
- !ruby/object:Gem::Version
|
207
184
|
version: 0.9.4
|
185
|
+
- - "<"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '2.0'
|
208
188
|
- !ruby/object:Gem::Dependency
|
209
189
|
name: pry-rescue
|
210
190
|
requirement: !ruby/object:Gem::Requirement
|
@@ -219,6 +199,20 @@ dependencies:
|
|
219
199
|
- - ">="
|
220
200
|
- !ruby/object:Gem::Version
|
221
201
|
version: '0'
|
202
|
+
- !ruby/object:Gem::Dependency
|
203
|
+
name: pry-stack_explorer
|
204
|
+
requirement: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
type: :development
|
210
|
+
prerelease: false
|
211
|
+
version_requirements: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
222
216
|
- !ruby/object:Gem::Dependency
|
223
217
|
name: puma
|
224
218
|
requirement: !ruby/object:Gem::Requirement
|
@@ -267,14 +261,20 @@ dependencies:
|
|
267
261
|
requirements:
|
268
262
|
- - ">="
|
269
263
|
- !ruby/object:Gem::Version
|
270
|
-
version:
|
264
|
+
version: 5.0.0
|
265
|
+
- - "<"
|
266
|
+
- !ruby/object:Gem::Version
|
267
|
+
version: '7.0'
|
271
268
|
type: :development
|
272
269
|
prerelease: false
|
273
270
|
version_requirements: !ruby/object:Gem::Requirement
|
274
271
|
requirements:
|
275
272
|
- - ">="
|
276
273
|
- !ruby/object:Gem::Version
|
277
|
-
version:
|
274
|
+
version: 5.0.0
|
275
|
+
- - "<"
|
276
|
+
- !ruby/object:Gem::Version
|
277
|
+
version: '7.0'
|
278
278
|
- !ruby/object:Gem::Dependency
|
279
279
|
name: rake
|
280
280
|
requirement: !ruby/object:Gem::Requirement
|
@@ -309,6 +309,20 @@ dependencies:
|
|
309
309
|
- - "<"
|
310
310
|
- !ruby/object:Gem::Version
|
311
311
|
version: 2.5.0
|
312
|
+
- !ruby/object:Gem::Dependency
|
313
|
+
name: redis
|
314
|
+
requirement: !ruby/object:Gem::Requirement
|
315
|
+
requirements:
|
316
|
+
- - ">="
|
317
|
+
- !ruby/object:Gem::Version
|
318
|
+
version: '0'
|
319
|
+
type: :development
|
320
|
+
prerelease: false
|
321
|
+
version_requirements: !ruby/object:Gem::Requirement
|
322
|
+
requirements:
|
323
|
+
- - ">="
|
324
|
+
- !ruby/object:Gem::Version
|
325
|
+
version: '0'
|
312
326
|
- !ruby/object:Gem::Dependency
|
313
327
|
name: rspec-rails
|
314
328
|
requirement: !ruby/object:Gem::Requirement
|
@@ -357,14 +371,14 @@ dependencies:
|
|
357
371
|
requirements:
|
358
372
|
- - "~>"
|
359
373
|
- !ruby/object:Gem::Version
|
360
|
-
version: 1.
|
374
|
+
version: 1.4.2
|
361
375
|
type: :development
|
362
376
|
prerelease: false
|
363
377
|
version_requirements: !ruby/object:Gem::Requirement
|
364
378
|
requirements:
|
365
379
|
- - "~>"
|
366
380
|
- !ruby/object:Gem::Version
|
367
|
-
version: 1.
|
381
|
+
version: 1.4.2
|
368
382
|
- !ruby/object:Gem::Dependency
|
369
383
|
name: timecop
|
370
384
|
requirement: !ruby/object:Gem::Requirement
|
@@ -394,8 +408,8 @@ files:
|
|
394
408
|
- hyper-operation.gemspec
|
395
409
|
- lib/hyper-operation.rb
|
396
410
|
- lib/hyper-operation/api.rb
|
411
|
+
- lib/hyper-operation/async_sleep.rb
|
397
412
|
- lib/hyper-operation/boot.rb
|
398
|
-
- lib/hyper-operation/delay_and_interval.rb
|
399
413
|
- lib/hyper-operation/engine.rb
|
400
414
|
- lib/hyper-operation/exception.rb
|
401
415
|
- lib/hyper-operation/filters/acting_user.rb
|
@@ -415,6 +429,14 @@ files:
|
|
415
429
|
- lib/hyper-operation/transport/active_record.rb
|
416
430
|
- lib/hyper-operation/transport/client_drivers.rb
|
417
431
|
- lib/hyper-operation/transport/connection.rb
|
432
|
+
- lib/hyper-operation/transport/connection_adapter/active_record.rb
|
433
|
+
- lib/hyper-operation/transport/connection_adapter/active_record/auto_create.rb
|
434
|
+
- lib/hyper-operation/transport/connection_adapter/active_record/connection.rb
|
435
|
+
- lib/hyper-operation/transport/connection_adapter/active_record/queued_message.rb
|
436
|
+
- lib/hyper-operation/transport/connection_adapter/redis.rb
|
437
|
+
- lib/hyper-operation/transport/connection_adapter/redis/connection.rb
|
438
|
+
- lib/hyper-operation/transport/connection_adapter/redis/queued_message.rb
|
439
|
+
- lib/hyper-operation/transport/connection_adapter/redis/redis_record.rb
|
418
440
|
- lib/hyper-operation/transport/hyperstack.rb
|
419
441
|
- lib/hyper-operation/transport/hyperstack_controller.rb
|
420
442
|
- lib/hyper-operation/transport/pluck.rb
|
@@ -441,7 +463,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
441
463
|
- !ruby/object:Gem::Version
|
442
464
|
version: 1.3.1
|
443
465
|
requirements: []
|
444
|
-
rubygems_version: 3.0.
|
466
|
+
rubygems_version: 3.0.8
|
445
467
|
signing_key:
|
446
468
|
specification_version: 4
|
447
469
|
summary: HyperOperations are the swiss army knife of the Hyperstack
|