hyper-operation 1.0.alpha1.8 → 1.0.0.lap28
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -7
- data/.travis.yml +9 -21
- data/CODE_OF_CONDUCT.md +49 -0
- data/DOCS-POLICIES.md +582 -0
- data/DOCS.md +869 -0
- data/Gemfile +1 -5
- data/LICENSE.txt +21 -0
- data/README.md +77 -0
- data/Rakefile +2 -1
- data/dciy.toml +3 -0
- data/hyper-operation.gemspec +15 -19
- data/lib/hyper-operation.rb +6 -10
- data/lib/hyper-operation/api.rb +4 -8
- data/lib/hyper-operation/boot.rb +2 -3
- data/lib/hyper-operation/delay_and_interval.rb +9 -0
- data/lib/hyper-operation/engine.rb +2 -2
- data/lib/hyper-operation/exception.rb +4 -30
- data/lib/hyper-operation/filters/acting_user.rb +1 -1
- data/lib/hyper-operation/http.rb +2 -2
- data/lib/hyper-operation/promise.rb +2 -32
- data/lib/hyper-operation/railway.rb +1 -1
- data/lib/hyper-operation/railway/dispatcher.rb +5 -8
- data/lib/hyper-operation/railway/params_wrapper.rb +2 -2
- data/lib/hyper-operation/railway/run.rb +49 -58
- data/lib/hyper-operation/railway/validations.rb +3 -10
- data/lib/hyper-operation/server_op.rb +20 -46
- data/lib/hyper-operation/transport/action_cable.rb +8 -8
- data/lib/hyper-operation/transport/client_drivers.rb +55 -96
- data/lib/hyper-operation/transport/connection.rb +136 -58
- data/lib/hyper-operation/transport/{hyperstack.rb → hyperloop.rb} +15 -28
- data/lib/hyper-operation/transport/{hyperstack_controller.rb → hyperloop_controller.rb} +53 -59
- data/lib/hyper-operation/transport/policy.rb +49 -50
- data/lib/hyper-operation/version.rb +2 -2
- data/lib/sources/{hyperstack → hyperloop}/pusher.js +0 -0
- metadata +73 -94
- data/lib/hyper-operation/async_sleep.rb +0 -23
- data/lib/hyper-operation/transport/connection_adapter/active_record.rb +0 -113
- data/lib/hyper-operation/transport/connection_adapter/active_record/auto_create.rb +0 -26
- data/lib/hyper-operation/transport/connection_adapter/active_record/connection.rb +0 -47
- data/lib/hyper-operation/transport/connection_adapter/active_record/queued_message.rb +0 -42
- data/lib/hyper-operation/transport/connection_adapter/redis.rb +0 -94
- data/lib/hyper-operation/transport/connection_adapter/redis/connection.rb +0 -85
- data/lib/hyper-operation/transport/connection_adapter/redis/queued_message.rb +0 -34
- data/lib/hyper-operation/transport/connection_adapter/redis/redis_record.rb +0 -158
- data/lib/hyper-operation/transport/policy_diagnostics.rb +0 -106
@@ -1,18 +1,8 @@
|
|
1
|
-
module
|
1
|
+
module Hyperloop
|
2
2
|
|
3
3
|
class InternalClassPolicy
|
4
4
|
|
5
5
|
def initialize(regulated_klass)
|
6
|
-
unless regulated_klass.is_a?(Class)
|
7
|
-
# attempt to constantize the class in case eager_loading in production
|
8
|
-
# has loaded the policy before the class. THis will insure that if
|
9
|
-
# there is a class being regulated, it is loaded first.
|
10
|
-
begin
|
11
|
-
regulated_klass.constantize
|
12
|
-
rescue NameError
|
13
|
-
nil
|
14
|
-
end
|
15
|
-
end
|
16
6
|
@regulated_klass = regulated_klass
|
17
7
|
end
|
18
8
|
|
@@ -21,7 +11,7 @@ module Hyperstack
|
|
21
11
|
EXPOSED_METHODS = [
|
22
12
|
:regulate_class_connection, :always_allow_connection, :regulate_instance_connections,
|
23
13
|
:regulate_all_broadcasts, :regulate_broadcast,
|
24
|
-
:regulate_dispatches_from, :always_dispatch_from,
|
14
|
+
:dispatch_to, :regulate_dispatches_from, :always_dispatch_from,
|
25
15
|
:allow_change, :allow_create, :allow_read, :allow_update, :allow_destroy
|
26
16
|
]
|
27
17
|
|
@@ -58,6 +48,21 @@ module Hyperstack
|
|
58
48
|
regulate_dispatches_from(*args) { true }
|
59
49
|
end
|
60
50
|
|
51
|
+
def dispatch_to(*args, ®ulation)
|
52
|
+
actual_klass = if regulated_klass.is_a?(Class)
|
53
|
+
regulated_klass
|
54
|
+
else
|
55
|
+
begin
|
56
|
+
regulated_klass.constantize
|
57
|
+
rescue NameError
|
58
|
+
nil
|
59
|
+
end
|
60
|
+
end
|
61
|
+
raise 'you can only dispatch_to Operation classes' unless actual_klass.respond_to? :dispatch_to
|
62
|
+
actual_klass.dispatch_to(actual_klass)
|
63
|
+
actual_klass.dispatch_to(*args, ®ulation)
|
64
|
+
end
|
65
|
+
|
61
66
|
CHANGE_POLICIES = [:create, :update, :destroy]
|
62
67
|
|
63
68
|
def self.allow_policy(policy, method)
|
@@ -90,7 +95,7 @@ module Hyperstack
|
|
90
95
|
def get_ar_model(str)
|
91
96
|
if str.is_a?(Class)
|
92
97
|
unless str <= ActiveRecord::Base
|
93
|
-
|
98
|
+
Hyperloop::InternalPolicy.raise_operation_access_violation
|
94
99
|
end
|
95
100
|
str
|
96
101
|
else
|
@@ -99,12 +104,12 @@ module Hyperstack
|
|
99
104
|
# def self.ar_base_descendants_map_cache
|
100
105
|
# @ar_base_descendants_map_cache ||= ActiveRecord::Base.descendants.map(&:name)
|
101
106
|
# end
|
102
|
-
# if Rails.env.production? && !
|
107
|
+
# if Rails.env.production? && !Hyperloop::InternalClassPolicy.ar_base_descendants_map_cache.include?(str)
|
103
108
|
if Rails.application.config.eager_load && !ActiveRecord::Base.descendants.map(&:name).include?(str)
|
104
109
|
# AR::Base.descendants is eager loaded in production -> this guard works.
|
105
110
|
# In development it may be empty or partially filled -> this guard may fail.
|
106
111
|
# Thus guarded here only in production.
|
107
|
-
|
112
|
+
Hyperloop::InternalPolicy.raise_operation_access_violation
|
108
113
|
end
|
109
114
|
Object.const_get(str)
|
110
115
|
end
|
@@ -187,7 +192,7 @@ module Hyperstack
|
|
187
192
|
raise "Could not determine the class when regulating. This is probably caused by doing something like &:send_all"
|
188
193
|
end
|
189
194
|
wrapped_policy = policy_klass.new(nil, nil)
|
190
|
-
wrapped_policy.
|
195
|
+
wrapped_policy.hyperloop_internal_policy_object = policy
|
191
196
|
wrapped_policy
|
192
197
|
end
|
193
198
|
|
@@ -328,9 +333,9 @@ module Hyperstack
|
|
328
333
|
regulations[instance].regulations.each do |regulation|
|
329
334
|
instance.instance_exec wrap_policy(policy, regulation), ®ulation
|
330
335
|
end
|
331
|
-
|
332
|
-
|
333
|
-
|
336
|
+
if policy.has_unassigned_sets?
|
337
|
+
raise "#{instance.class.name} instance broadcast policy not sent to any channel"
|
338
|
+
end
|
334
339
|
end
|
335
340
|
end
|
336
341
|
|
@@ -338,7 +343,7 @@ module Hyperstack
|
|
338
343
|
def self.channels(session, acting_user)
|
339
344
|
channels = ClassConnectionRegulation.connections_for(acting_user, true) +
|
340
345
|
InstanceConnectionRegulation.connections_for(acting_user, true)
|
341
|
-
channels << "
|
346
|
+
channels << "Hyperloop::Session-#{session.split('-').last}" if Hyperloop.connect_session && session
|
342
347
|
channels.uniq.each { |channel| Connection.open(channel, session) }
|
343
348
|
end
|
344
349
|
end
|
@@ -363,16 +368,16 @@ module Hyperstack
|
|
363
368
|
@obj
|
364
369
|
end
|
365
370
|
|
366
|
-
def self.raise_operation_access_violation
|
367
|
-
raise
|
371
|
+
def self.raise_operation_access_violation
|
372
|
+
raise Hyperloop::AccessViolation
|
368
373
|
end
|
369
374
|
|
370
375
|
def self.regulate_connection(acting_user, channel_string)
|
371
376
|
channel = channel_string.split("-")
|
372
377
|
if channel.length > 1
|
373
378
|
id = channel[1..-1].join("-")
|
374
|
-
unless
|
375
|
-
|
379
|
+
unless Hyperloop::InternalClassPolicy.regulated_klasses.include?(channel[0])
|
380
|
+
Hyperloop::InternalPolicy.raise_operation_access_violation
|
376
381
|
end
|
377
382
|
object = Object.const_get(channel[0]).find(id)
|
378
383
|
InstanceConnectionRegulation.connect(object, acting_user)
|
@@ -390,17 +395,16 @@ module Hyperstack
|
|
390
395
|
internal_policy.broadcast &block
|
391
396
|
end
|
392
397
|
|
393
|
-
def initialize(obj, attribute_names, available_channels
|
398
|
+
def initialize(obj, attribute_names, available_channels)
|
394
399
|
@obj = obj
|
395
|
-
|
400
|
+
attribute_names = attribute_names.map(&:to_sym).to_set
|
396
401
|
@unassigned_send_sets = []
|
397
|
-
@channel_sets = Hash.new { |hash, key| hash[key] =
|
402
|
+
@channel_sets = Hash.new { |hash, key| hash[key] = attribute_names }
|
398
403
|
@available_channels = available_channels
|
399
404
|
end
|
400
405
|
|
401
406
|
def channel_available?(channel)
|
402
|
-
|
403
|
-
@available_channels == :all || @available_channels.include?(channel_to_string(channel))
|
407
|
+
channel && @available_channels.include?(channel_to_string(channel))
|
404
408
|
end
|
405
409
|
|
406
410
|
def id
|
@@ -425,17 +429,12 @@ module Hyperstack
|
|
425
429
|
end
|
426
430
|
|
427
431
|
def send_set_to(send_set, channels)
|
428
|
-
@to_has_been_called = true
|
429
432
|
channels.flatten(1).each do |channel|
|
430
433
|
merge_set(send_set, channel) if channel_available? channel
|
431
434
|
@unassigned_send_sets.delete(send_set)
|
432
435
|
end
|
433
436
|
end
|
434
437
|
|
435
|
-
def has_to_been_called?
|
436
|
-
!has_unassigned_sets? || @to_has_been_called
|
437
|
-
end
|
438
|
-
|
439
438
|
def merge_set(send_set, channel)
|
440
439
|
return unless channel
|
441
440
|
channel = channel.name if channel.is_a?(Class) && channel.name
|
@@ -472,7 +471,7 @@ module Hyperstack
|
|
472
471
|
|
473
472
|
def send_message(header, channel, attribute_set, &block)
|
474
473
|
record = filter(@obj.react_serializer, attribute_set)
|
475
|
-
previous_changes = filter(@obj.
|
474
|
+
previous_changes = filter(@obj.previous_changes, attribute_set)
|
476
475
|
return if record.empty? && previous_changes.empty?
|
477
476
|
message = header.merge(
|
478
477
|
channel: channel_to_string(channel),
|
@@ -513,12 +512,12 @@ module Hyperstack
|
|
513
512
|
end
|
514
513
|
|
515
514
|
module ClassPolicyMethods
|
516
|
-
def
|
517
|
-
@
|
515
|
+
def hyperloop_internal_policy_object
|
516
|
+
@hyperloop_internal_policy_object ||= InternalClassPolicy.new(name || self)
|
518
517
|
end
|
519
518
|
InternalClassPolicy::EXPOSED_METHODS.each do |policy_method|
|
520
519
|
define_method policy_method do |*klasses, &block|
|
521
|
-
|
520
|
+
hyperloop_internal_policy_object.send policy_method, *klasses, &block
|
522
521
|
end unless respond_to? policy_method
|
523
522
|
end
|
524
523
|
end
|
@@ -529,10 +528,10 @@ module Hyperstack
|
|
529
528
|
extend ClassPolicyMethods
|
530
529
|
end
|
531
530
|
end
|
532
|
-
attr_accessor :
|
531
|
+
attr_accessor :hyperloop_internal_policy_object
|
533
532
|
InternalPolicy::EXPOSED_METHODS.each do |method|
|
534
533
|
define_method method do |*args, &block|
|
535
|
-
|
534
|
+
hyperloop_internal_policy_object.send method, *args, &block
|
536
535
|
end unless respond_to? method
|
537
536
|
end
|
538
537
|
define_method :initialize do |*args|
|
@@ -549,34 +548,34 @@ module Hyperstack
|
|
549
548
|
end
|
550
549
|
|
551
550
|
class Module
|
552
|
-
alias
|
551
|
+
alias pre_hyperloop_const_set const_set
|
553
552
|
|
554
553
|
def const_set(name, value)
|
555
|
-
|
556
|
-
|
554
|
+
pre_hyperloop_const_set(name, value).tap do
|
555
|
+
Hyperloop::PolicyAutoLoader.load(name, value)
|
557
556
|
end
|
558
557
|
end
|
559
558
|
end
|
560
559
|
|
561
560
|
class Class
|
562
561
|
|
563
|
-
alias
|
562
|
+
alias pre_hyperloop_inherited inherited
|
564
563
|
|
565
564
|
def inherited(child_class)
|
566
|
-
|
567
|
-
|
565
|
+
pre_hyperloop_inherited(child_class).tap do
|
566
|
+
Hyperloop::PolicyAutoLoader.load(child_class.name, child_class)
|
568
567
|
end
|
569
568
|
end
|
570
569
|
|
571
|
-
|
570
|
+
Hyperloop::ClassPolicyMethods.instance_methods.each do |method|
|
572
571
|
define_method method do |*args, &block|
|
573
572
|
if name.end_with?("Policy".freeze)
|
574
|
-
@
|
575
|
-
include
|
573
|
+
@hyperloop_internal_policy_object = Hyperloop::InternalClassPolicy.new(name.sub(/Policy$/,""))
|
574
|
+
include Hyperloop::PolicyMethods
|
576
575
|
send method, *args, &block
|
577
576
|
else
|
578
577
|
class << self
|
579
|
-
|
578
|
+
Hyperloop::ClassPolicyMethods.instance_methods.each do |method|
|
580
579
|
undef_method method
|
581
580
|
end
|
582
581
|
end
|
File without changes
|
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.
|
4
|
+
version: 1.0.0.lap28
|
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: 2018-05-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -31,14 +31,28 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - '='
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 1.0.
|
34
|
+
version: 1.0.0.lap28
|
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.
|
41
|
+
version: 1.0.0.lap28
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: hyperloop-config
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - '='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 1.0.0.lap28
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - '='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 1.0.0.lap28
|
42
56
|
- !ruby/object:Gem::Dependency
|
43
57
|
name: mutations
|
44
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,20 +81,6 @@ dependencies:
|
|
67
81
|
- - "~>"
|
68
82
|
- !ruby/object:Gem::Version
|
69
83
|
version: 0.3.1
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: tty-table
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '0'
|
77
|
-
type: :runtime
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - ">="
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: bundler
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
@@ -96,7 +96,7 @@ dependencies:
|
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
99
|
+
name: database_cleaner
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - ">="
|
@@ -110,33 +110,33 @@ dependencies:
|
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
|
-
name:
|
113
|
+
name: hyper-react
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
|
-
- -
|
116
|
+
- - '='
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version:
|
118
|
+
version: 1.0.0.lap28
|
119
119
|
type: :development
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
|
-
- -
|
123
|
+
- - '='
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
125
|
+
version: 1.0.0.lap28
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: hyper-spec
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
130
|
- - '='
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version: 1.0.
|
132
|
+
version: 1.0.0.lap28
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
137
|
- - '='
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version: 1.0.
|
139
|
+
version: 1.0.0.lap28
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
141
|
name: mysql2
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
@@ -152,67 +152,67 @@ dependencies:
|
|
152
152
|
- !ruby/object:Gem::Version
|
153
153
|
version: '0'
|
154
154
|
- !ruby/object:Gem::Dependency
|
155
|
-
name: opal
|
155
|
+
name: opal
|
156
156
|
requirement: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
|
-
- - "
|
158
|
+
- - ">="
|
159
159
|
- !ruby/object:Gem::Version
|
160
|
-
version: 0.
|
160
|
+
version: 0.11.0
|
161
|
+
- - "<"
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
version: 0.12.0
|
161
164
|
type: :development
|
162
165
|
prerelease: false
|
163
166
|
version_requirements: !ruby/object:Gem::Requirement
|
164
167
|
requirements:
|
165
|
-
- - "
|
168
|
+
- - ">="
|
166
169
|
- !ruby/object:Gem::Version
|
167
|
-
version: 0.
|
170
|
+
version: 0.11.0
|
171
|
+
- - "<"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 0.12.0
|
168
174
|
- !ruby/object:Gem::Dependency
|
169
|
-
name: opal-
|
175
|
+
name: opal-browser
|
170
176
|
requirement: !ruby/object:Gem::Requirement
|
171
177
|
requirements:
|
172
|
-
- - "
|
173
|
-
- !ruby/object:Gem::Version
|
174
|
-
version: 0.9.4
|
175
|
-
- - "<"
|
178
|
+
- - "~>"
|
176
179
|
- !ruby/object:Gem::Version
|
177
|
-
version:
|
180
|
+
version: 0.2.0
|
178
181
|
type: :development
|
179
182
|
prerelease: false
|
180
183
|
version_requirements: !ruby/object:Gem::Requirement
|
181
184
|
requirements:
|
182
|
-
- - "
|
183
|
-
- !ruby/object:Gem::Version
|
184
|
-
version: 0.9.4
|
185
|
-
- - "<"
|
185
|
+
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version:
|
187
|
+
version: 0.2.0
|
188
188
|
- !ruby/object:Gem::Dependency
|
189
|
-
name:
|
189
|
+
name: opal-rails
|
190
190
|
requirement: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
|
-
- - "
|
192
|
+
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version:
|
194
|
+
version: 0.9.4
|
195
195
|
type: :development
|
196
196
|
prerelease: false
|
197
197
|
version_requirements: !ruby/object:Gem::Requirement
|
198
198
|
requirements:
|
199
|
-
- - "
|
199
|
+
- - "~>"
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version:
|
201
|
+
version: 0.9.4
|
202
202
|
- !ruby/object:Gem::Dependency
|
203
|
-
name:
|
203
|
+
name: mini_racer
|
204
204
|
requirement: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
|
-
- - "
|
206
|
+
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version:
|
208
|
+
version: 0.1.15
|
209
209
|
type: :development
|
210
210
|
prerelease: false
|
211
211
|
version_requirements: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
|
-
- - "
|
213
|
+
- - "~>"
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version:
|
215
|
+
version: 0.1.15
|
216
216
|
- !ruby/object:Gem::Dependency
|
217
217
|
name: puma
|
218
218
|
requirement: !ruby/object:Gem::Requirement
|
@@ -261,20 +261,14 @@ dependencies:
|
|
261
261
|
requirements:
|
262
262
|
- - ">="
|
263
263
|
- !ruby/object:Gem::Version
|
264
|
-
version:
|
265
|
-
- - "<"
|
266
|
-
- !ruby/object:Gem::Version
|
267
|
-
version: '7.0'
|
264
|
+
version: 4.0.0
|
268
265
|
type: :development
|
269
266
|
prerelease: false
|
270
267
|
version_requirements: !ruby/object:Gem::Requirement
|
271
268
|
requirements:
|
272
269
|
- - ">="
|
273
270
|
- !ruby/object:Gem::Version
|
274
|
-
version:
|
275
|
-
- - "<"
|
276
|
-
- !ruby/object:Gem::Version
|
277
|
-
version: '7.0'
|
271
|
+
version: 4.0.0
|
278
272
|
- !ruby/object:Gem::Dependency
|
279
273
|
name: rake
|
280
274
|
requirement: !ruby/object:Gem::Requirement
|
@@ -309,20 +303,6 @@ dependencies:
|
|
309
303
|
- - "<"
|
310
304
|
- !ruby/object:Gem::Version
|
311
305
|
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'
|
326
306
|
- !ruby/object:Gem::Dependency
|
327
307
|
name: rspec-rails
|
328
308
|
requirement: !ruby/object:Gem::Requirement
|
@@ -369,16 +349,16 @@ dependencies:
|
|
369
349
|
name: sqlite3
|
370
350
|
requirement: !ruby/object:Gem::Requirement
|
371
351
|
requirements:
|
372
|
-
- - "
|
352
|
+
- - ">="
|
373
353
|
- !ruby/object:Gem::Version
|
374
|
-
version:
|
354
|
+
version: '0'
|
375
355
|
type: :development
|
376
356
|
prerelease: false
|
377
357
|
version_requirements: !ruby/object:Gem::Requirement
|
378
358
|
requirements:
|
379
|
-
- - "
|
359
|
+
- - ">="
|
380
360
|
- !ruby/object:Gem::Version
|
381
|
-
version:
|
361
|
+
version: '0'
|
382
362
|
- !ruby/object:Gem::Dependency
|
383
363
|
name: timecop
|
384
364
|
requirement: !ruby/object:Gem::Requirement
|
@@ -403,13 +383,19 @@ extra_rdoc_files: []
|
|
403
383
|
files:
|
404
384
|
- ".gitignore"
|
405
385
|
- ".travis.yml"
|
386
|
+
- CODE_OF_CONDUCT.md
|
387
|
+
- DOCS-POLICIES.md
|
388
|
+
- DOCS.md
|
406
389
|
- Gemfile
|
390
|
+
- LICENSE.txt
|
391
|
+
- README.md
|
407
392
|
- Rakefile
|
393
|
+
- dciy.toml
|
408
394
|
- hyper-operation.gemspec
|
409
395
|
- lib/hyper-operation.rb
|
410
396
|
- lib/hyper-operation/api.rb
|
411
|
-
- lib/hyper-operation/async_sleep.rb
|
412
397
|
- lib/hyper-operation/boot.rb
|
398
|
+
- lib/hyper-operation/delay_and_interval.rb
|
413
399
|
- lib/hyper-operation/engine.rb
|
414
400
|
- lib/hyper-operation/exception.rb
|
415
401
|
- lib/hyper-operation/filters/acting_user.rb
|
@@ -429,22 +415,13 @@ files:
|
|
429
415
|
- lib/hyper-operation/transport/active_record.rb
|
430
416
|
- lib/hyper-operation/transport/client_drivers.rb
|
431
417
|
- lib/hyper-operation/transport/connection.rb
|
432
|
-
- lib/hyper-operation/transport/
|
433
|
-
- lib/hyper-operation/transport/
|
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
|
440
|
-
- lib/hyper-operation/transport/hyperstack.rb
|
441
|
-
- lib/hyper-operation/transport/hyperstack_controller.rb
|
418
|
+
- lib/hyper-operation/transport/hyperloop.rb
|
419
|
+
- lib/hyper-operation/transport/hyperloop_controller.rb
|
442
420
|
- lib/hyper-operation/transport/pluck.rb
|
443
421
|
- lib/hyper-operation/transport/policy.rb
|
444
|
-
- lib/hyper-operation/transport/policy_diagnostics.rb
|
445
422
|
- lib/hyper-operation/version.rb
|
446
|
-
- lib/sources/
|
447
|
-
homepage: http://ruby-
|
423
|
+
- lib/sources/hyperloop/pusher.js
|
424
|
+
homepage: http://ruby-hyperloop.org
|
448
425
|
licenses:
|
449
426
|
- MIT
|
450
427
|
metadata: {}
|
@@ -463,8 +440,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
463
440
|
- !ruby/object:Gem::Version
|
464
441
|
version: 1.3.1
|
465
442
|
requirements: []
|
466
|
-
|
443
|
+
rubyforge_project:
|
444
|
+
rubygems_version: 2.7.6
|
467
445
|
signing_key:
|
468
446
|
specification_version: 4
|
469
|
-
summary:
|
447
|
+
summary: Compose your business logic into isomorphic commands that sanitize and validate
|
448
|
+
input. Write safe, reusable, and maintainable code for Ruby and Rails app
|
470
449
|
test_files: []
|