hyper-operation 1.0.alpha1.5 → 1.0.alpha1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -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