isomorfeus-operation 1.0.0.zeta22 → 2.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +21 -21
- data/README.md +16 -16
- data/lib/isomorfeus/operation/config.rb +29 -29
- data/lib/isomorfeus/operation/handler/operation_handler.rb +65 -65
- data/lib/isomorfeus/operation/version.rb +5 -5
- data/lib/isomorfeus-operation.rb +29 -27
- data/lib/isomorfeus_operation/lucid_local_operation/base.rb +9 -10
- data/lib/isomorfeus_operation/lucid_local_operation/mixin.rb +35 -35
- data/lib/isomorfeus_operation/lucid_operation/base.rb +10 -11
- data/lib/isomorfeus_operation/lucid_operation/gherkin.rb +63 -63
- data/lib/isomorfeus_operation/lucid_operation/mixin.rb +95 -96
- data/lib/isomorfeus_operation/lucid_operation/promise_run.rb +67 -67
- data/lib/isomorfeus_operation/lucid_operation/steps.rb +58 -58
- data/lib/isomorfeus_operation/lucid_quick_op/base.rb +10 -11
- data/lib/isomorfeus_operation/lucid_quick_op/mixin.rb +80 -81
- metadata +38 -38
@@ -1,96 +1,95 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module LucidOperation
|
4
|
-
module Mixin
|
5
|
-
def self.included(base)
|
6
|
-
base.extend(LucidPropDeclaration::Mixin)
|
7
|
-
|
8
|
-
if RUBY_ENGINE == 'opal'
|
9
|
-
base.instance_exec do
|
10
|
-
def procedure(gherkin_text)
|
11
|
-
end
|
12
|
-
|
13
|
-
def steps
|
14
|
-
end
|
15
|
-
alias :gherkin :steps
|
16
|
-
alias :ensure_steps :steps
|
17
|
-
alias :failure_steps :steps
|
18
|
-
alias :Given :steps
|
19
|
-
alias :And :steps
|
20
|
-
alias :Then :steps
|
21
|
-
alias :When :steps
|
22
|
-
alias :Ensure :steps
|
23
|
-
alias :Failed :steps
|
24
|
-
alias :If_failing :steps
|
25
|
-
alias :When_failing :steps
|
26
|
-
alias :If_this_failed :steps
|
27
|
-
alias :If_that_failed :steps
|
28
|
-
|
29
|
-
def First(regular_expression, &block)
|
30
|
-
Isomorfeus.raise_error(message: "#{self}: First already defined, can only be defined once!") if @first_defined
|
31
|
-
@first_defined = true
|
32
|
-
end
|
33
|
-
|
34
|
-
def Finally(regular_expression, &block)
|
35
|
-
Isomorfeus.raise_error(message: "#{self}: Finally already defined, can only be defined once!") if @finally_defined
|
36
|
-
@finally_defined = true
|
37
|
-
end
|
38
|
-
|
39
|
-
def promise_run(**props_hash)
|
40
|
-
props = validated_props(props_hash)
|
41
|
-
Isomorfeus::Transport.promise_send_path('Isomorfeus::Operation::Handler::OperationHandler', self.name, props).then do |agent|
|
42
|
-
unless agent.processed
|
43
|
-
agent.processed = true
|
44
|
-
if agent.response.key?(:error)
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
exception
|
56
|
-
exception
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
base.
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module LucidOperation
|
4
|
+
module Mixin
|
5
|
+
def self.included(base)
|
6
|
+
base.extend(LucidPropDeclaration::Mixin)
|
7
|
+
|
8
|
+
if RUBY_ENGINE == 'opal'
|
9
|
+
base.instance_exec do
|
10
|
+
def procedure(gherkin_text)
|
11
|
+
end
|
12
|
+
|
13
|
+
def steps
|
14
|
+
end
|
15
|
+
alias :gherkin :steps
|
16
|
+
alias :ensure_steps :steps
|
17
|
+
alias :failure_steps :steps
|
18
|
+
alias :Given :steps
|
19
|
+
alias :And :steps
|
20
|
+
alias :Then :steps
|
21
|
+
alias :When :steps
|
22
|
+
alias :Ensure :steps
|
23
|
+
alias :Failed :steps
|
24
|
+
alias :If_failing :steps
|
25
|
+
alias :When_failing :steps
|
26
|
+
alias :If_this_failed :steps
|
27
|
+
alias :If_that_failed :steps
|
28
|
+
|
29
|
+
def First(regular_expression, &block)
|
30
|
+
Isomorfeus.raise_error(message: "#{self}: First already defined, can only be defined once!") if @first_defined
|
31
|
+
@first_defined = true
|
32
|
+
end
|
33
|
+
|
34
|
+
def Finally(regular_expression, &block)
|
35
|
+
Isomorfeus.raise_error(message: "#{self}: Finally already defined, can only be defined once!") if @finally_defined
|
36
|
+
@finally_defined = true
|
37
|
+
end
|
38
|
+
|
39
|
+
def promise_run(**props_hash)
|
40
|
+
props = validated_props(props_hash)
|
41
|
+
Isomorfeus::Transport.promise_send_path('Isomorfeus::Operation::Handler::OperationHandler', self.name, props).then do |agent|
|
42
|
+
unless agent.processed
|
43
|
+
agent.processed = true
|
44
|
+
if agent.response.key?(:error)
|
45
|
+
Isomorfeus.raise_error(message: agent.response[:error])
|
46
|
+
end
|
47
|
+
agent.result = agent.response[:result]
|
48
|
+
end
|
49
|
+
if agent.result.key?(:rejected)
|
50
|
+
if agent.result.key?(:error)
|
51
|
+
e = agent.result[:error]
|
52
|
+
exception_class_name = e[:class_name]
|
53
|
+
exception_class = exception_class_name.constantize
|
54
|
+
exception = exception_class.new(e[:message])
|
55
|
+
exception.set_backtrace(e[:backtrace])
|
56
|
+
raise exception
|
57
|
+
else
|
58
|
+
raise agent.result[:rejected]
|
59
|
+
end
|
60
|
+
else
|
61
|
+
agent.result[:resolved]
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
else
|
67
|
+
Isomorfeus.add_valid_operation_class(base) unless base == LucidOperation::Base
|
68
|
+
base.extend(LucidOperation::Steps)
|
69
|
+
base.include(LucidOperation::PromiseRun)
|
70
|
+
|
71
|
+
base.instance_exec do
|
72
|
+
def promise_run(**props_hash)
|
73
|
+
self.new(**props_hash).promise_run
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
attr_reader :props
|
78
|
+
attr_accessor :step_result
|
79
|
+
|
80
|
+
def initialize(**props_hash)
|
81
|
+
props_hash = self.class.validated_props(props_hash)
|
82
|
+
@props = LucidProps.new(props_hash)
|
83
|
+
end
|
84
|
+
|
85
|
+
def current_user
|
86
|
+
Isomorfeus.current_user
|
87
|
+
end
|
88
|
+
|
89
|
+
def pub_sub_client
|
90
|
+
Isomorfeus.pub_sub_client
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
@@ -1,67 +1,67 @@
|
|
1
|
-
module LucidOperation
|
2
|
-
module PromiseRun
|
3
|
-
def promise_run
|
4
|
-
promise = Promise.new
|
5
|
-
original_promise = promise
|
6
|
-
operation = self
|
7
|
-
|
8
|
-
# steps
|
9
|
-
self.class.gherkin[:steps].each do |gherkin_step|
|
10
|
-
matched = false
|
11
|
-
self.class.steps.each do |step|
|
12
|
-
# step[0] -> regular_expression
|
13
|
-
# step[1] -> block
|
14
|
-
match_data = gherkin_step.match(step[0])
|
15
|
-
if match_data
|
16
|
-
matched = true
|
17
|
-
promise = promise.then do |result|
|
18
|
-
operation.step_result = result
|
19
|
-
operation.instance_exec(*match_data, &step[1])
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
Isomorfeus.raise_error(message: "No match found for step #{gherkin_step}!") unless matched
|
24
|
-
end
|
25
|
-
|
26
|
-
# fail track
|
27
|
-
self.class.gherkin[:failure].each do |gherkin_step|
|
28
|
-
matched = false
|
29
|
-
self.class.failure_steps.each do |step|
|
30
|
-
# step[0] -> regular_expression
|
31
|
-
# step[1] -> block
|
32
|
-
match_data = gherkin_step.match(step[0])
|
33
|
-
if match_data
|
34
|
-
matched = true
|
35
|
-
promise = promise.fail do |result|
|
36
|
-
operation.step_result = result
|
37
|
-
operation.instance_exec(*match_data, &step[1])
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
Isomorfeus.raise_error(message: "No match found for failure step #{gherkin_step}!") unless matched
|
42
|
-
end
|
43
|
-
|
44
|
-
# ensure
|
45
|
-
self.class.gherkin[:ensure].each do |gherkin_step|
|
46
|
-
matched = false
|
47
|
-
self.class.ensure_steps.each do |step|
|
48
|
-
# step[0] -> regular_expression
|
49
|
-
# step[1] -> block
|
50
|
-
match_data = gherkin_step.match(step[0])
|
51
|
-
if match_data
|
52
|
-
matched = true
|
53
|
-
|
54
|
-
promise = promise.ensure do |result|
|
55
|
-
operation.step_result = result
|
56
|
-
operation.instance_exec(*match_data, &step[1])
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
Isomorfeus.raise_error(message: "No match found for ensure step #{gherkin_step}!") unless matched
|
61
|
-
end
|
62
|
-
|
63
|
-
original_promise.resolve
|
64
|
-
promise
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
1
|
+
module LucidOperation
|
2
|
+
module PromiseRun
|
3
|
+
def promise_run
|
4
|
+
promise = Promise.new
|
5
|
+
original_promise = promise
|
6
|
+
operation = self
|
7
|
+
|
8
|
+
# steps
|
9
|
+
self.class.gherkin[:steps].each do |gherkin_step|
|
10
|
+
matched = false
|
11
|
+
self.class.steps.each do |step|
|
12
|
+
# step[0] -> regular_expression
|
13
|
+
# step[1] -> block
|
14
|
+
match_data = gherkin_step.match(step[0])
|
15
|
+
if match_data
|
16
|
+
matched = true
|
17
|
+
promise = promise.then do |result|
|
18
|
+
operation.step_result = result
|
19
|
+
operation.instance_exec(*match_data, &step[1])
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
Isomorfeus.raise_error(message: "No match found for step #{gherkin_step}!") unless matched
|
24
|
+
end
|
25
|
+
|
26
|
+
# fail track
|
27
|
+
self.class.gherkin[:failure].each do |gherkin_step|
|
28
|
+
matched = false
|
29
|
+
self.class.failure_steps.each do |step|
|
30
|
+
# step[0] -> regular_expression
|
31
|
+
# step[1] -> block
|
32
|
+
match_data = gherkin_step.match(step[0])
|
33
|
+
if match_data
|
34
|
+
matched = true
|
35
|
+
promise = promise.fail do |result|
|
36
|
+
operation.step_result = result
|
37
|
+
operation.instance_exec(*match_data, &step[1])
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
Isomorfeus.raise_error(message: "No match found for failure step #{gherkin_step}!") unless matched
|
42
|
+
end
|
43
|
+
|
44
|
+
# ensure
|
45
|
+
self.class.gherkin[:ensure].each do |gherkin_step|
|
46
|
+
matched = false
|
47
|
+
self.class.ensure_steps.each do |step|
|
48
|
+
# step[0] -> regular_expression
|
49
|
+
# step[1] -> block
|
50
|
+
match_data = gherkin_step.match(step[0])
|
51
|
+
if match_data
|
52
|
+
matched = true
|
53
|
+
|
54
|
+
promise = promise.ensure do |result|
|
55
|
+
operation.step_result = result
|
56
|
+
operation.instance_exec(*match_data, &step[1])
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
Isomorfeus.raise_error(message: "No match found for ensure step #{gherkin_step}!") unless matched
|
61
|
+
end
|
62
|
+
|
63
|
+
original_promise.resolve
|
64
|
+
promise
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -1,58 +1,58 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module LucidOperation
|
4
|
-
module Steps
|
5
|
-
def procedure(gherkin_text)
|
6
|
-
feature_line = gherkin_text.include?('Operation: ') ? '' : "Operation: #{self.name}\n"
|
7
|
-
scenario_line = feature_line == '' || gherkin_text.include?('Procedure: ') ? '' : " Procedure: #{self.name} executing\n"
|
8
|
-
@procedure = feature_line + scenario_line + gherkin_text
|
9
|
-
end
|
10
|
-
|
11
|
-
def gherkin
|
12
|
-
@gherkin ||= LucidOperation::Gherkin.parse(@procedure)
|
13
|
-
end
|
14
|
-
|
15
|
-
def ensure_steps
|
16
|
-
@ensure_steps ||= []
|
17
|
-
end
|
18
|
-
|
19
|
-
def failure_steps
|
20
|
-
@failure_steps ||= []
|
21
|
-
end
|
22
|
-
|
23
|
-
def steps
|
24
|
-
@steps ||= []
|
25
|
-
end
|
26
|
-
|
27
|
-
def First(regular_expression, &block)
|
28
|
-
Isomorfeus.raise_error(message: "#{self}: First already defined, can only be defined once!") if @first_defined
|
29
|
-
@first_defined = true
|
30
|
-
steps << [regular_expression, block]
|
31
|
-
end
|
32
|
-
|
33
|
-
def Given(regular_expression, &block)
|
34
|
-
steps << [regular_expression, block]
|
35
|
-
end
|
36
|
-
alias :And :Given
|
37
|
-
alias :Then :Given
|
38
|
-
alias :When :Given
|
39
|
-
|
40
|
-
def Finally(regular_expression, &block)
|
41
|
-
Isomorfeus.raise_error(message: "#{self}: Finally already defined, can only be defined once!") if @finally_defined
|
42
|
-
@finally_defined = true
|
43
|
-
steps << [regular_expression, block]
|
44
|
-
end
|
45
|
-
|
46
|
-
def Ensure(regular_expression, &block)
|
47
|
-
ensure_steps << [regular_expression, block]
|
48
|
-
end
|
49
|
-
|
50
|
-
def Failed(regular_expression, &block)
|
51
|
-
failure_steps << [regular_expression, block]
|
52
|
-
end
|
53
|
-
alias :If_failing :Failed
|
54
|
-
alias :When_failing :Failed
|
55
|
-
alias :If_this_failed :Failed
|
56
|
-
alias :If_that_failed :Failed
|
57
|
-
end
|
58
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module LucidOperation
|
4
|
+
module Steps
|
5
|
+
def procedure(gherkin_text)
|
6
|
+
feature_line = gherkin_text.include?('Operation: ') ? '' : "Operation: #{self.name}\n"
|
7
|
+
scenario_line = feature_line == '' || gherkin_text.include?('Procedure: ') ? '' : " Procedure: #{self.name} executing\n"
|
8
|
+
@procedure = feature_line + scenario_line + gherkin_text
|
9
|
+
end
|
10
|
+
|
11
|
+
def gherkin
|
12
|
+
@gherkin ||= LucidOperation::Gherkin.parse(@procedure)
|
13
|
+
end
|
14
|
+
|
15
|
+
def ensure_steps
|
16
|
+
@ensure_steps ||= []
|
17
|
+
end
|
18
|
+
|
19
|
+
def failure_steps
|
20
|
+
@failure_steps ||= []
|
21
|
+
end
|
22
|
+
|
23
|
+
def steps
|
24
|
+
@steps ||= []
|
25
|
+
end
|
26
|
+
|
27
|
+
def First(regular_expression, &block)
|
28
|
+
Isomorfeus.raise_error(message: "#{self}: First already defined, can only be defined once!") if @first_defined
|
29
|
+
@first_defined = true
|
30
|
+
steps << [regular_expression, block]
|
31
|
+
end
|
32
|
+
|
33
|
+
def Given(regular_expression, &block)
|
34
|
+
steps << [regular_expression, block]
|
35
|
+
end
|
36
|
+
alias :And :Given
|
37
|
+
alias :Then :Given
|
38
|
+
alias :When :Given
|
39
|
+
|
40
|
+
def Finally(regular_expression, &block)
|
41
|
+
Isomorfeus.raise_error(message: "#{self}: Finally already defined, can only be defined once!") if @finally_defined
|
42
|
+
@finally_defined = true
|
43
|
+
steps << [regular_expression, block]
|
44
|
+
end
|
45
|
+
|
46
|
+
def Ensure(regular_expression, &block)
|
47
|
+
ensure_steps << [regular_expression, block]
|
48
|
+
end
|
49
|
+
|
50
|
+
def Failed(regular_expression, &block)
|
51
|
+
failure_steps << [regular_expression, block]
|
52
|
+
end
|
53
|
+
alias :If_failing :Failed
|
54
|
+
alias :When_failing :Failed
|
55
|
+
alias :If_this_failed :Failed
|
56
|
+
alias :If_that_failed :Failed
|
57
|
+
end
|
58
|
+
end
|
@@ -1,11 +1,10 @@
|
|
1
|
-
module LucidQuickOp
|
2
|
-
class Base
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
end
|
1
|
+
module LucidQuickOp
|
2
|
+
class Base
|
3
|
+
def self.inherited(base)
|
4
|
+
base.include LucidQuickOp::Mixin
|
5
|
+
if RUBY_ENGINE != 'opal'
|
6
|
+
Isomorfeus.add_valid_operation_class(base)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -1,81 +1,80 @@
|
|
1
|
-
module LucidQuickOp
|
2
|
-
module Mixin
|
3
|
-
def self.included(base)
|
4
|
-
base.extend(LucidPropDeclaration::Mixin)
|
5
|
-
|
6
|
-
if RUBY_ENGINE == 'opal'
|
7
|
-
base.instance_exec do
|
8
|
-
def op
|
9
|
-
end
|
10
|
-
|
11
|
-
def promise_run(**props_hash)
|
12
|
-
props = validated_props(props_hash)
|
13
|
-
Isomorfeus::Transport.promise_send_path('Isomorfeus::Operation::Handler::OperationHandler', self.name, props).then do |agent|
|
14
|
-
unless agent.processed
|
15
|
-
agent.processed = true
|
16
|
-
if agent.response.key?(:error)
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
exception
|
28
|
-
exception
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
end
|
1
|
+
module LucidQuickOp
|
2
|
+
module Mixin
|
3
|
+
def self.included(base)
|
4
|
+
base.extend(LucidPropDeclaration::Mixin)
|
5
|
+
|
6
|
+
if RUBY_ENGINE == 'opal'
|
7
|
+
base.instance_exec do
|
8
|
+
def op
|
9
|
+
end
|
10
|
+
|
11
|
+
def promise_run(**props_hash)
|
12
|
+
props = validated_props(props_hash)
|
13
|
+
Isomorfeus::Transport.promise_send_path('Isomorfeus::Operation::Handler::OperationHandler', self.name, props).then do |agent|
|
14
|
+
unless agent.processed
|
15
|
+
agent.processed = true
|
16
|
+
if agent.response.key?(:error)
|
17
|
+
Isomorfeus.raise_error(message: agent.response[:error])
|
18
|
+
end
|
19
|
+
agent.result = agent.response[:result]
|
20
|
+
end
|
21
|
+
if agent.result.key?(:rejected)
|
22
|
+
if agent.result.key?(:error)
|
23
|
+
e = agent.result[:error]
|
24
|
+
exception_class_name = e[:class_name]
|
25
|
+
exception_class = exception_class_name.constantize
|
26
|
+
exception = exception_class.new(e[:message])
|
27
|
+
exception.set_backtrace(e[:backtrace])
|
28
|
+
raise exception
|
29
|
+
else
|
30
|
+
raise agent.result[:rejected]
|
31
|
+
end
|
32
|
+
else
|
33
|
+
agent.result[:resolved]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
else
|
39
|
+
Isomorfeus.add_valid_operation_class(base) unless base == LucidQuickOp::Base
|
40
|
+
|
41
|
+
base.instance_exec do
|
42
|
+
def op(&block)
|
43
|
+
@op = block
|
44
|
+
end
|
45
|
+
|
46
|
+
def promise_run(**props_hash)
|
47
|
+
self.new(**props_hash).promise_run
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
attr_reader :props
|
54
|
+
|
55
|
+
def initialize(**props_hash)
|
56
|
+
props_hash = self.class.validated_props(props_hash)
|
57
|
+
@props = LucidProps.new(props_hash)
|
58
|
+
end
|
59
|
+
|
60
|
+
def promise_run
|
61
|
+
original_promise = Promise.new
|
62
|
+
|
63
|
+
operation = self
|
64
|
+
promise = original_promise.then do |_|
|
65
|
+
operation.instance_exec(&operation.class.instance_variable_get(:@op))
|
66
|
+
end
|
67
|
+
|
68
|
+
original_promise.resolve
|
69
|
+
promise
|
70
|
+
end
|
71
|
+
|
72
|
+
def current_user
|
73
|
+
Isomorfeus.current_user
|
74
|
+
end
|
75
|
+
|
76
|
+
def pub_sub_client
|
77
|
+
Isomorfeus.pub_sub_client
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|