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.
@@ -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[:json]).symbolize_keys
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), &regulation
330
330
  end
331
- if policy.has_unassigned_sets?
332
- raise "#{instance.class.name} instance broadcast policy not sent to any channel"
333
- end
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.previous_changes, attribute_set)
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),
@@ -1,5 +1,5 @@
1
1
  module Hyperstack
2
2
  class Operation
3
- VERSION = '1.0.alpha1.5'
3
+ VERSION = '1.0.alpha1.6'
4
4
  end
5
5
  end
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.5
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: 2019-06-19 00:00:00.000000000 Z
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.5
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.5
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: 1.17.3
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: 1.17.3
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.5
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.5
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: 4.0.0
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: 4.0.0
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.3.6
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.3.6
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.4
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
@@ -1,9 +0,0 @@
1
- module Kernel
2
- def every(time, &block)
3
- Thread.new { loop { sleep time; block.call }}
4
- end
5
-
6
- def after(time, &block)
7
- Thread.new { sleep time; block.call }
8
- end
9
- end