stimulus_reflex 3.4.1 → 3.4.2
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/Gemfile.lock +155 -107
- data/app/channels/stimulus_reflex/channel.rb +3 -8
- data/lib/stimulus_reflex/reflex_factory.rb +62 -0
- data/lib/stimulus_reflex/version.rb +1 -1
- data/lib/stimulus_reflex.rb +1 -0
- data/package.json +2 -2
- data/stimulus_reflex.gemspec +1 -1
- data/test/reflex_factory_test.rb +79 -0
- data/test/test_helper.rb +34 -0
- data/yarn.lock +1 -1
- metadata +13 -15
- data/tags +0 -156
- data/test/tmp/app/reflexes/application_reflex.rb +0 -12
- data/test/tmp/app/reflexes/user_reflex.rb +0 -43
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2c20bc83a1fd5adac26fb305aa6cee7e90f81082519428bc5b2d2907f300f121
|
|
4
|
+
data.tar.gz: f4f21bf47ebab3dcca9aea10ffe1211ba24d862fcd46c877745c0bbb7cb98e80
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 920a38e28bdff1331fc3a3ada0b68f361aab2fef1cd9d680dedf8f17748809853b5f61e1c10f70427135545daa4c581e0e8dcfe014c43b85cc52d14fa314de27
|
|
7
|
+
data.tar.gz: 230110002f7f182bbaddc3037fc042853f0189a2b6573882f9668eba3db2223084820462e7bd800b27384c7ebe9267119884c317b5c7ae6588923142e8ec5371
|
data/Gemfile.lock
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
stimulus_reflex (3.4.
|
|
5
|
-
cable_ready (
|
|
4
|
+
stimulus_reflex (3.4.2)
|
|
5
|
+
cable_ready (~> 4.5)
|
|
6
6
|
nokogiri
|
|
7
7
|
rack
|
|
8
8
|
rails (>= 5.2)
|
|
@@ -11,93 +11,128 @@ PATH
|
|
|
11
11
|
GEM
|
|
12
12
|
remote: https://rubygems.org/
|
|
13
13
|
specs:
|
|
14
|
-
actioncable (
|
|
15
|
-
actionpack (=
|
|
16
|
-
activesupport (=
|
|
14
|
+
actioncable (7.1.3.2)
|
|
15
|
+
actionpack (= 7.1.3.2)
|
|
16
|
+
activesupport (= 7.1.3.2)
|
|
17
17
|
nio4r (~> 2.0)
|
|
18
18
|
websocket-driver (>= 0.6.1)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
zeitwerk (~> 2.6)
|
|
20
|
+
actionmailbox (7.1.3.2)
|
|
21
|
+
actionpack (= 7.1.3.2)
|
|
22
|
+
activejob (= 7.1.3.2)
|
|
23
|
+
activerecord (= 7.1.3.2)
|
|
24
|
+
activestorage (= 7.1.3.2)
|
|
25
|
+
activesupport (= 7.1.3.2)
|
|
25
26
|
mail (>= 2.7.1)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
net-imap
|
|
28
|
+
net-pop
|
|
29
|
+
net-smtp
|
|
30
|
+
actionmailer (7.1.3.2)
|
|
31
|
+
actionpack (= 7.1.3.2)
|
|
32
|
+
actionview (= 7.1.3.2)
|
|
33
|
+
activejob (= 7.1.3.2)
|
|
34
|
+
activesupport (= 7.1.3.2)
|
|
31
35
|
mail (~> 2.5, >= 2.5.4)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
net-imap
|
|
37
|
+
net-pop
|
|
38
|
+
net-smtp
|
|
39
|
+
rails-dom-testing (~> 2.2)
|
|
40
|
+
actionpack (7.1.3.2)
|
|
41
|
+
actionview (= 7.1.3.2)
|
|
42
|
+
activesupport (= 7.1.3.2)
|
|
43
|
+
nokogiri (>= 1.8.5)
|
|
44
|
+
racc
|
|
45
|
+
rack (>= 2.2.4)
|
|
46
|
+
rack-session (>= 1.0.1)
|
|
37
47
|
rack-test (>= 0.6.3)
|
|
38
|
-
rails-dom-testing (~> 2.
|
|
39
|
-
rails-html-sanitizer (~> 1.
|
|
40
|
-
actiontext (
|
|
41
|
-
actionpack (=
|
|
42
|
-
activerecord (=
|
|
43
|
-
activestorage (=
|
|
44
|
-
activesupport (=
|
|
48
|
+
rails-dom-testing (~> 2.2)
|
|
49
|
+
rails-html-sanitizer (~> 1.6)
|
|
50
|
+
actiontext (7.1.3.2)
|
|
51
|
+
actionpack (= 7.1.3.2)
|
|
52
|
+
activerecord (= 7.1.3.2)
|
|
53
|
+
activestorage (= 7.1.3.2)
|
|
54
|
+
activesupport (= 7.1.3.2)
|
|
55
|
+
globalid (>= 0.6.0)
|
|
45
56
|
nokogiri (>= 1.8.5)
|
|
46
|
-
actionview (
|
|
47
|
-
activesupport (=
|
|
57
|
+
actionview (7.1.3.2)
|
|
58
|
+
activesupport (= 7.1.3.2)
|
|
48
59
|
builder (~> 3.1)
|
|
49
|
-
erubi (~> 1.
|
|
50
|
-
rails-dom-testing (~> 2.
|
|
51
|
-
rails-html-sanitizer (~> 1.
|
|
52
|
-
activejob (
|
|
53
|
-
activesupport (=
|
|
60
|
+
erubi (~> 1.11)
|
|
61
|
+
rails-dom-testing (~> 2.2)
|
|
62
|
+
rails-html-sanitizer (~> 1.6)
|
|
63
|
+
activejob (7.1.3.2)
|
|
64
|
+
activesupport (= 7.1.3.2)
|
|
54
65
|
globalid (>= 0.3.6)
|
|
55
|
-
activemodel (
|
|
56
|
-
activesupport (=
|
|
57
|
-
activerecord (
|
|
58
|
-
activemodel (=
|
|
59
|
-
activesupport (=
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
activesupport (
|
|
66
|
+
activemodel (7.1.3.2)
|
|
67
|
+
activesupport (= 7.1.3.2)
|
|
68
|
+
activerecord (7.1.3.2)
|
|
69
|
+
activemodel (= 7.1.3.2)
|
|
70
|
+
activesupport (= 7.1.3.2)
|
|
71
|
+
timeout (>= 0.4.0)
|
|
72
|
+
activestorage (7.1.3.2)
|
|
73
|
+
actionpack (= 7.1.3.2)
|
|
74
|
+
activejob (= 7.1.3.2)
|
|
75
|
+
activerecord (= 7.1.3.2)
|
|
76
|
+
activesupport (= 7.1.3.2)
|
|
77
|
+
marcel (~> 1.0)
|
|
78
|
+
activesupport (7.1.3.2)
|
|
79
|
+
base64
|
|
80
|
+
bigdecimal
|
|
68
81
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
82
|
+
connection_pool (>= 2.2.5)
|
|
83
|
+
drb
|
|
69
84
|
i18n (>= 1.6, < 2)
|
|
70
85
|
minitest (>= 5.1)
|
|
86
|
+
mutex_m
|
|
71
87
|
tzinfo (~> 2.0)
|
|
72
|
-
zeitwerk (~> 2.3)
|
|
73
88
|
ast (2.4.2)
|
|
89
|
+
base64 (0.2.0)
|
|
90
|
+
bigdecimal (3.1.6)
|
|
74
91
|
builder (3.2.4)
|
|
75
92
|
cable_ready (4.5.0)
|
|
76
93
|
rails (>= 5.2)
|
|
77
94
|
thread-local (>= 1.1.0)
|
|
78
95
|
coderay (1.1.3)
|
|
79
|
-
concurrent-ruby (1.
|
|
96
|
+
concurrent-ruby (1.2.3)
|
|
97
|
+
connection_pool (2.4.1)
|
|
80
98
|
crass (1.0.6)
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
99
|
+
date (3.3.4)
|
|
100
|
+
drb (2.2.1)
|
|
101
|
+
erubi (1.12.0)
|
|
102
|
+
globalid (1.2.1)
|
|
103
|
+
activesupport (>= 6.1)
|
|
104
|
+
i18n (1.14.4)
|
|
85
105
|
concurrent-ruby (~> 1.0)
|
|
86
|
-
|
|
106
|
+
io-console (0.7.2)
|
|
107
|
+
irb (1.12.0)
|
|
108
|
+
rdoc
|
|
109
|
+
reline (>= 0.4.2)
|
|
110
|
+
loofah (2.22.0)
|
|
87
111
|
crass (~> 1.0.2)
|
|
88
|
-
nokogiri (>= 1.
|
|
89
|
-
mail (2.
|
|
112
|
+
nokogiri (>= 1.12.0)
|
|
113
|
+
mail (2.8.1)
|
|
90
114
|
mini_mime (>= 0.1.1)
|
|
91
|
-
|
|
92
|
-
|
|
115
|
+
net-imap
|
|
116
|
+
net-pop
|
|
117
|
+
net-smtp
|
|
118
|
+
marcel (1.0.4)
|
|
93
119
|
method_source (0.9.2)
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
120
|
+
mini_mime (1.1.5)
|
|
121
|
+
mini_portile2 (2.8.5)
|
|
122
|
+
minitest (5.22.2)
|
|
123
|
+
mutex_m (0.2.0)
|
|
124
|
+
net-imap (0.4.10)
|
|
125
|
+
date
|
|
126
|
+
net-protocol
|
|
127
|
+
net-pop (0.1.2)
|
|
128
|
+
net-protocol
|
|
129
|
+
net-protocol (0.2.2)
|
|
130
|
+
timeout
|
|
131
|
+
net-smtp (0.4.0.1)
|
|
132
|
+
net-protocol
|
|
133
|
+
nio4r (2.7.0)
|
|
134
|
+
nokogiri (1.16.2)
|
|
135
|
+
mini_portile2 (~> 2.8.2)
|
|
101
136
|
racc (~> 1.4)
|
|
102
137
|
parallel (1.20.1)
|
|
103
138
|
parser (3.0.0.0)
|
|
@@ -107,40 +142,57 @@ GEM
|
|
|
107
142
|
method_source (~> 0.9.0)
|
|
108
143
|
pry-nav (0.3.0)
|
|
109
144
|
pry (>= 0.9.10, < 0.13.0)
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
145
|
+
psych (5.1.2)
|
|
146
|
+
stringio
|
|
147
|
+
racc (1.7.3)
|
|
148
|
+
rack (3.0.9.1)
|
|
149
|
+
rack-session (2.0.0)
|
|
150
|
+
rack (>= 3.0.0)
|
|
151
|
+
rack-test (2.1.0)
|
|
152
|
+
rack (>= 1.3)
|
|
153
|
+
rackup (2.1.0)
|
|
154
|
+
rack (>= 3)
|
|
155
|
+
webrick (~> 1.8)
|
|
156
|
+
rails (7.1.3.2)
|
|
157
|
+
actioncable (= 7.1.3.2)
|
|
158
|
+
actionmailbox (= 7.1.3.2)
|
|
159
|
+
actionmailer (= 7.1.3.2)
|
|
160
|
+
actionpack (= 7.1.3.2)
|
|
161
|
+
actiontext (= 7.1.3.2)
|
|
162
|
+
actionview (= 7.1.3.2)
|
|
163
|
+
activejob (= 7.1.3.2)
|
|
164
|
+
activemodel (= 7.1.3.2)
|
|
165
|
+
activerecord (= 7.1.3.2)
|
|
166
|
+
activestorage (= 7.1.3.2)
|
|
167
|
+
activesupport (= 7.1.3.2)
|
|
126
168
|
bundler (>= 1.15.0)
|
|
127
|
-
railties (=
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
169
|
+
railties (= 7.1.3.2)
|
|
170
|
+
rails-dom-testing (2.2.0)
|
|
171
|
+
activesupport (>= 5.0.0)
|
|
172
|
+
minitest
|
|
131
173
|
nokogiri (>= 1.6)
|
|
132
|
-
rails-html-sanitizer (1.
|
|
133
|
-
loofah (~> 2.
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
174
|
+
rails-html-sanitizer (1.6.0)
|
|
175
|
+
loofah (~> 2.21)
|
|
176
|
+
nokogiri (~> 1.14)
|
|
177
|
+
railties (7.1.3.2)
|
|
178
|
+
actionpack (= 7.1.3.2)
|
|
179
|
+
activesupport (= 7.1.3.2)
|
|
180
|
+
irb
|
|
181
|
+
rackup (>= 1.0.0)
|
|
182
|
+
rake (>= 12.2)
|
|
183
|
+
thor (~> 1.0, >= 1.2.2)
|
|
184
|
+
zeitwerk (~> 2.6)
|
|
140
185
|
rainbow (3.0.0)
|
|
141
186
|
rake (13.0.3)
|
|
142
|
-
|
|
187
|
+
rdoc (6.6.2)
|
|
188
|
+
psych (>= 4.0.0)
|
|
189
|
+
redis (5.1.0)
|
|
190
|
+
redis-client (>= 0.17.0)
|
|
191
|
+
redis-client (0.21.0)
|
|
192
|
+
connection_pool
|
|
143
193
|
regexp_parser (2.0.3)
|
|
194
|
+
reline (0.4.3)
|
|
195
|
+
io-console (~> 0.5)
|
|
144
196
|
rexml (3.2.4)
|
|
145
197
|
rubocop (1.7.0)
|
|
146
198
|
parallel (~> 1.10)
|
|
@@ -157,27 +209,23 @@ GEM
|
|
|
157
209
|
rubocop (>= 0.90.0, < 2.0)
|
|
158
210
|
rubocop-ast (>= 0.4.0)
|
|
159
211
|
ruby-progressbar (1.11.0)
|
|
160
|
-
sprockets (4.0.2)
|
|
161
|
-
concurrent-ruby (~> 1.0)
|
|
162
|
-
rack (> 1, < 3)
|
|
163
|
-
sprockets-rails (3.2.2)
|
|
164
|
-
actionpack (>= 4.0)
|
|
165
|
-
activesupport (>= 4.0)
|
|
166
|
-
sprockets (>= 3.0.0)
|
|
167
212
|
standard (0.11.0)
|
|
168
213
|
rubocop (= 1.7.0)
|
|
169
214
|
rubocop-performance (= 1.9.2)
|
|
170
215
|
standardrb (1.0.0)
|
|
171
216
|
standard
|
|
172
|
-
|
|
217
|
+
stringio (3.1.0)
|
|
218
|
+
thor (1.3.1)
|
|
173
219
|
thread-local (1.1.0)
|
|
174
|
-
|
|
220
|
+
timeout (0.4.1)
|
|
221
|
+
tzinfo (2.0.6)
|
|
175
222
|
concurrent-ruby (~> 1.0)
|
|
176
223
|
unicode-display_width (1.7.0)
|
|
177
|
-
|
|
224
|
+
webrick (1.8.1)
|
|
225
|
+
websocket-driver (0.7.6)
|
|
178
226
|
websocket-extensions (>= 0.1.0)
|
|
179
227
|
websocket-extensions (0.1.5)
|
|
180
|
-
zeitwerk (2.
|
|
228
|
+
zeitwerk (2.6.13)
|
|
181
229
|
|
|
182
230
|
PLATFORMS
|
|
183
231
|
ruby
|
|
@@ -191,4 +239,4 @@ DEPENDENCIES
|
|
|
191
239
|
stimulus_reflex!
|
|
192
240
|
|
|
193
241
|
BUNDLED WITH
|
|
194
|
-
2.
|
|
242
|
+
2.2.33
|
|
@@ -20,9 +20,9 @@ class StimulusReflex::Channel < StimulusReflex.configuration.parent_channel.cons
|
|
|
20
20
|
selectors = (data["selectors"] || []).select(&:present?)
|
|
21
21
|
selectors = data["selectors"] = ["body"] if selectors.blank?
|
|
22
22
|
target = data["target"].to_s
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
factory = StimulusReflex::ReflexFactory.new(target)
|
|
24
|
+
reflex_class = factory.call
|
|
25
|
+
method_name = factory.method_name
|
|
26
26
|
arguments = (data["args"] || []).map { |arg| object_with_indifferent_access arg }
|
|
27
27
|
element = StimulusReflex::Element.new(data)
|
|
28
28
|
permanent_attribute_name = data["permanentAttributeName"]
|
|
@@ -31,7 +31,6 @@ class StimulusReflex::Channel < StimulusReflex.configuration.parent_channel.cons
|
|
|
31
31
|
|
|
32
32
|
begin
|
|
33
33
|
begin
|
|
34
|
-
reflex_class = reflex_name.constantize.tap { |klass| raise ArgumentError.new("#{reflex_name} is not a StimulusReflex::Reflex") unless is_reflex?(klass) }
|
|
35
34
|
reflex = reflex_class.new(self,
|
|
36
35
|
url: url,
|
|
37
36
|
element: element,
|
|
@@ -109,10 +108,6 @@ class StimulusReflex::Channel < StimulusReflex.configuration.parent_channel.cons
|
|
|
109
108
|
object
|
|
110
109
|
end
|
|
111
110
|
|
|
112
|
-
def is_reflex?(reflex_class)
|
|
113
|
-
reflex_class.ancestors.include? StimulusReflex::Reflex
|
|
114
|
-
end
|
|
115
|
-
|
|
116
111
|
def delegate_call_to_reflex(reflex, method_name, arguments = [])
|
|
117
112
|
method = reflex.method(method_name)
|
|
118
113
|
required_params = method.parameters.select { |(kind, _)| kind == :req }
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class StimulusReflex::ReflexFactory
|
|
4
|
+
attr_reader :reflex_name, :method_name
|
|
5
|
+
|
|
6
|
+
def initialize(target)
|
|
7
|
+
reflex_name, method_name = target.split("#")
|
|
8
|
+
reflex_name = reflex_name.camelize
|
|
9
|
+
reflex_name = reflex_name.end_with?("Reflex") ? reflex_name : "#{reflex_name}Reflex"
|
|
10
|
+
|
|
11
|
+
@method_name = method_name
|
|
12
|
+
@reflex_name = reflex_name
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def call
|
|
16
|
+
verify_method_name!
|
|
17
|
+
|
|
18
|
+
reflex_class
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
def verify_method_name!
|
|
24
|
+
return if default_reflex?
|
|
25
|
+
|
|
26
|
+
argument_error = ArgumentError.new("Reflex method '#{method_name}' is not defined on class '#{reflex_name}' or on any of its ancestors")
|
|
27
|
+
|
|
28
|
+
if reflex_method.nil?
|
|
29
|
+
raise argument_error
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
if !safe_ancestors.include?(reflex_method.owner)
|
|
33
|
+
raise argument_error
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def reflex_class
|
|
38
|
+
@reflex_class ||= reflex_name.constantize.tap do |klass|
|
|
39
|
+
unless klass.ancestors.include?(StimulusReflex::Reflex)
|
|
40
|
+
raise ArgumentError.new("#{reflex_name} is not a StimulusReflex::Reflex")
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def reflex_method
|
|
46
|
+
if reflex_class.public_instance_methods.include?(method_name.to_sym)
|
|
47
|
+
reflex_class.public_instance_method(method_name)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def default_reflex?
|
|
52
|
+
method_name == "default_reflex" && reflex_method.owner == ::StimulusReflex::Reflex
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def safe_ancestors
|
|
56
|
+
# We want to include every class and module up to the `StimulusReflex::Reflex` class,
|
|
57
|
+
# but not the StimulusReflex::Reflex itself
|
|
58
|
+
reflex_class_index = reflex_class.ancestors.index(StimulusReflex::Reflex) - 1
|
|
59
|
+
|
|
60
|
+
reflex_class.ancestors.to(reflex_class_index)
|
|
61
|
+
end
|
|
62
|
+
end
|
data/lib/stimulus_reflex.rb
CHANGED
|
@@ -13,6 +13,7 @@ require "stimulus_reflex/cable_ready_channels"
|
|
|
13
13
|
require "stimulus_reflex/configuration"
|
|
14
14
|
require "stimulus_reflex/callbacks"
|
|
15
15
|
require "stimulus_reflex/reflex"
|
|
16
|
+
require "stimulus_reflex/reflex_factory"
|
|
16
17
|
require "stimulus_reflex/element"
|
|
17
18
|
require "stimulus_reflex/sanity_checker"
|
|
18
19
|
require "stimulus_reflex/broadcasters/broadcaster"
|
data/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stimulus_reflex",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.2",
|
|
4
4
|
"description": "Build reactive applications with the Rails tooling you already know and love.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ruby",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@rails/actioncable": ">= 6.0",
|
|
44
|
-
"cable_ready": "
|
|
44
|
+
"cable_ready": "^4.5.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@babel/core": "^7.6.2",
|
data/stimulus_reflex.gemspec
CHANGED
|
@@ -32,7 +32,7 @@ Gem::Specification.new do |gem|
|
|
|
32
32
|
gem.add_dependency "nokogiri"
|
|
33
33
|
gem.add_dependency "rails", ">= 5.2"
|
|
34
34
|
gem.add_dependency "redis"
|
|
35
|
-
gem.add_dependency "cable_ready", "
|
|
35
|
+
gem.add_dependency "cable_ready", "~> 4.5"
|
|
36
36
|
|
|
37
37
|
gem.add_development_dependency "bundler", "~> 2.0"
|
|
38
38
|
gem.add_development_dependency "pry-nav"
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "test_helper"
|
|
4
|
+
|
|
5
|
+
class StimulusReflex::ReflexFactoryTest < ActionCable::Channel::TestCase
|
|
6
|
+
tests StimulusReflex::Channel
|
|
7
|
+
|
|
8
|
+
test "reflex class needs to be an ancestor of StimulusReflex::Reflex" do
|
|
9
|
+
exception = assert_raises(NameError) { StimulusReflex::ReflexFactory.new("Object#inspect").call }
|
|
10
|
+
assert_equal "uninitialized constant ObjectReflex Did you mean? ObjectSpace", exception.message.squish
|
|
11
|
+
|
|
12
|
+
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("NoReflex#no_reflex").call }
|
|
13
|
+
assert_equal "NoReflex is not a StimulusReflex::Reflex", exception.message
|
|
14
|
+
|
|
15
|
+
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("No#no_reflex").call }
|
|
16
|
+
assert_equal "NoReflex is not a StimulusReflex::Reflex", exception.message
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
test "doesn't raise if owner of method is ancestor of reflex class and descendant of StimulusReflex::Reflex" do
|
|
20
|
+
assert_nothing_raised { StimulusReflex::ReflexFactory.new("ApplicationReflex#default_reflex").call }
|
|
21
|
+
assert_nothing_raised { StimulusReflex::ReflexFactory.new("ApplicationReflex#application_reflex").call }
|
|
22
|
+
|
|
23
|
+
assert_nothing_raised { StimulusReflex::ReflexFactory.new("PostReflex#default_reflex").call }
|
|
24
|
+
assert_nothing_raised { StimulusReflex::ReflexFactory.new("PostReflex#application_reflex").call }
|
|
25
|
+
assert_nothing_raised { StimulusReflex::ReflexFactory.new("PostReflex#post_reflex").call }
|
|
26
|
+
|
|
27
|
+
assert_nothing_raised { StimulusReflex::ReflexFactory.new("CounterReflex#default_reflex").call }
|
|
28
|
+
assert_nothing_raised { StimulusReflex::ReflexFactory.new("CounterReflex#application_reflex").call }
|
|
29
|
+
assert_nothing_raised { StimulusReflex::ReflexFactory.new("CounterReflex#increment").call }
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
test "raises if method is not owned by a descendant of StimulusReflex::Reflex" do
|
|
33
|
+
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("ApplicationReflex#itself").call }
|
|
34
|
+
assert_equal "Reflex method 'itself' is not defined on class 'ApplicationReflex' or on any of its ancestors", exception.message
|
|
35
|
+
|
|
36
|
+
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("ApplicationReflex#itself").call }
|
|
37
|
+
assert_equal "Reflex method 'itself' is not defined on class 'ApplicationReflex' or on any of its ancestors", exception.message
|
|
38
|
+
|
|
39
|
+
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("PostReflex#itself").call }
|
|
40
|
+
assert_equal "Reflex method 'itself' is not defined on class 'PostReflex' or on any of its ancestors", exception.message
|
|
41
|
+
|
|
42
|
+
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("PostReflex#binding").call }
|
|
43
|
+
assert_equal "Reflex method 'binding' is not defined on class 'PostReflex' or on any of its ancestors", exception.message
|
|
44
|
+
|
|
45
|
+
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("PostReflex#byebug").call }
|
|
46
|
+
assert_equal "Reflex method 'byebug' is not defined on class 'PostReflex' or on any of its ancestors", exception.message
|
|
47
|
+
|
|
48
|
+
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("PostReflex#debug").call }
|
|
49
|
+
assert_equal "Reflex method 'debug' is not defined on class 'PostReflex' or on any of its ancestors", exception.message
|
|
50
|
+
|
|
51
|
+
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("ApplicationReflex#post_reflex").call }
|
|
52
|
+
assert_equal "Reflex method 'post_reflex' is not defined on class 'ApplicationReflex' or on any of its ancestors", exception.message
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
test "raises if method is a private method" do
|
|
56
|
+
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("ApplicationReflex#private_application_reflex").call }
|
|
57
|
+
assert_equal "Reflex method 'private_application_reflex' is not defined on class 'ApplicationReflex' or on any of its ancestors", exception.message
|
|
58
|
+
|
|
59
|
+
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("PostReflex#private_application_reflex").call }
|
|
60
|
+
assert_equal "Reflex method 'private_application_reflex' is not defined on class 'PostReflex' or on any of its ancestors", exception.message
|
|
61
|
+
|
|
62
|
+
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("PostReflex#private_post_reflex").call }
|
|
63
|
+
assert_equal "Reflex method 'private_post_reflex' is not defined on class 'PostReflex' or on any of its ancestors", exception.message
|
|
64
|
+
|
|
65
|
+
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("CounterReflex#private_post_reflex").call }
|
|
66
|
+
assert_equal "Reflex method 'private_post_reflex' is not defined on class 'CounterReflex' or on any of its ancestors", exception.message
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
test "safe_ancestors" do
|
|
70
|
+
reflex_factory = StimulusReflex::ReflexFactory.new("ApplicationReflex#default_reflex")
|
|
71
|
+
assert_equal [ApplicationReflex], reflex_factory.send(:safe_ancestors)
|
|
72
|
+
|
|
73
|
+
reflex_factory = StimulusReflex::ReflexFactory.new("PostReflex#default_reflex")
|
|
74
|
+
assert_equal [PostReflex, ApplicationReflex], reflex_factory.send(:safe_ancestors)
|
|
75
|
+
|
|
76
|
+
reflex_factory = StimulusReflex::ReflexFactory.new("CounterReflex#increment")
|
|
77
|
+
assert_equal [CounterReflex, CounterConcern, ApplicationReflex], reflex_factory.send(:safe_ancestors)
|
|
78
|
+
end
|
|
79
|
+
end
|
data/test/test_helper.rb
CHANGED
|
@@ -29,6 +29,40 @@ class SessionMock
|
|
|
29
29
|
end
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
+
class ApplicationReflex < StimulusReflex::Reflex
|
|
33
|
+
def application_reflex
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
private
|
|
37
|
+
|
|
38
|
+
def private_application_reflex
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
class PostReflex < ApplicationReflex
|
|
43
|
+
def post_reflex
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
private
|
|
47
|
+
|
|
48
|
+
def private_post_reflex
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
class NoReflex
|
|
53
|
+
def no_reflex
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
module CounterConcern
|
|
58
|
+
def increment
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
class CounterReflex < ApplicationReflex
|
|
63
|
+
include CounterConcern
|
|
64
|
+
end
|
|
65
|
+
|
|
32
66
|
class ActionDispatch::Request
|
|
33
67
|
def session
|
|
34
68
|
@session ||= SessionMock.new
|
data/yarn.lock
CHANGED
|
@@ -1254,7 +1254,7 @@ buffer-from@^1.0.0:
|
|
|
1254
1254
|
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
|
|
1255
1255
|
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
|
|
1256
1256
|
|
|
1257
|
-
|
|
1257
|
+
cable_ready@^4.5.0:
|
|
1258
1258
|
version "4.5.0"
|
|
1259
1259
|
resolved "https://registry.yarnpkg.com/cable_ready/-/cable_ready-4.5.0.tgz#1207218dd16934d12addfbd34c26ead853570672"
|
|
1260
1260
|
integrity sha512-9bom1DuYe1teBdRckgKWjg+rWRLWrkOvkhzlXkhb33X+Pfu/QK9e4vGk6hGK9PVKVr0SYZC41dByFGknW4spLg==
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: stimulus_reflex
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.4.
|
|
4
|
+
version: 3.4.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nathan Hopkins
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-03-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rack
|
|
@@ -70,14 +70,14 @@ dependencies:
|
|
|
70
70
|
name: cable_ready
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
|
-
- - "
|
|
73
|
+
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
75
|
version: '4.5'
|
|
76
76
|
type: :runtime
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
|
-
- - "
|
|
80
|
+
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '4.5'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
@@ -189,23 +189,22 @@ files:
|
|
|
189
189
|
- lib/stimulus_reflex/element.rb
|
|
190
190
|
- lib/stimulus_reflex/logger.rb
|
|
191
191
|
- lib/stimulus_reflex/reflex.rb
|
|
192
|
+
- lib/stimulus_reflex/reflex_factory.rb
|
|
192
193
|
- lib/stimulus_reflex/sanity_checker.rb
|
|
193
194
|
- lib/stimulus_reflex/utils/colorize.rb
|
|
194
195
|
- lib/stimulus_reflex/version.rb
|
|
195
196
|
- lib/tasks/stimulus_reflex/install.rake
|
|
196
197
|
- package.json
|
|
197
198
|
- stimulus_reflex.gemspec
|
|
198
|
-
- tags
|
|
199
199
|
- test/broadcasters/broadcaster_test.rb
|
|
200
200
|
- test/broadcasters/broadcaster_test_case.rb
|
|
201
201
|
- test/broadcasters/nothing_broadcaster_test.rb
|
|
202
202
|
- test/broadcasters/page_broadcaster_test.rb
|
|
203
203
|
- test/broadcasters/selector_broadcaster_test.rb
|
|
204
204
|
- test/generators/stimulus_reflex_generator_test.rb
|
|
205
|
+
- test/reflex_factory_test.rb
|
|
205
206
|
- test/reflex_test.rb
|
|
206
207
|
- test/test_helper.rb
|
|
207
|
-
- test/tmp/app/reflexes/application_reflex.rb
|
|
208
|
-
- test/tmp/app/reflexes/user_reflex.rb
|
|
209
208
|
- yarn.lock
|
|
210
209
|
homepage: https://github.com/hopsoft/stimulus_reflex
|
|
211
210
|
licenses:
|
|
@@ -235,18 +234,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
235
234
|
- !ruby/object:Gem::Version
|
|
236
235
|
version: '0'
|
|
237
236
|
requirements: []
|
|
238
|
-
rubygems_version: 3.
|
|
237
|
+
rubygems_version: 3.2.33
|
|
239
238
|
signing_key:
|
|
240
239
|
specification_version: 4
|
|
241
240
|
summary: Build reactive applications with the Rails tooling you already know and love.
|
|
242
241
|
test_files:
|
|
243
|
-
- test/reflex_test.rb
|
|
244
|
-
- test/test_helper.rb
|
|
245
|
-
- test/generators/stimulus_reflex_generator_test.rb
|
|
246
|
-
- test/tmp/app/reflexes/application_reflex.rb
|
|
247
|
-
- test/tmp/app/reflexes/user_reflex.rb
|
|
248
242
|
- test/broadcasters/broadcaster_test.rb
|
|
249
|
-
- test/broadcasters/selector_broadcaster_test.rb
|
|
250
|
-
- test/broadcasters/page_broadcaster_test.rb
|
|
251
243
|
- test/broadcasters/broadcaster_test_case.rb
|
|
252
244
|
- test/broadcasters/nothing_broadcaster_test.rb
|
|
245
|
+
- test/broadcasters/page_broadcaster_test.rb
|
|
246
|
+
- test/broadcasters/selector_broadcaster_test.rb
|
|
247
|
+
- test/generators/stimulus_reflex_generator_test.rb
|
|
248
|
+
- test/reflex_factory_test.rb
|
|
249
|
+
- test/reflex_test.rb
|
|
250
|
+
- test/test_helper.rb
|
data/tags
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
|
|
2
|
-
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
|
|
3
|
-
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
|
|
4
|
-
!_TAG_PROGRAM_NAME Exuberant Ctags //
|
|
5
|
-
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
|
|
6
|
-
!_TAG_PROGRAM_VERSION 5.8 //
|
|
7
|
-
ActionDispatch test/test_helper.rb /^class ActionDispatch::Request$/;" c
|
|
8
|
-
ApplicationController test/test_helper.rb /^class ApplicationController < ActionController::Base; end$/;" c
|
|
9
|
-
ApplicationReflex test/tmp/app/reflexes/application_reflex.rb /^class ApplicationReflex < StimulusReflex::Reflex$/;" c
|
|
10
|
-
Broadcaster lib/stimulus_reflex/broadcasters/broadcaster.rb /^ class Broadcaster$/;" c class:StimulusReflex
|
|
11
|
-
CableReadyChannels lib/stimulus_reflex/cable_ready_channels.rb /^ class CableReadyChannels$/;" c class:StimulusReflex
|
|
12
|
-
Colorize lib/stimulus_reflex/utils/colorize.rb /^ module Colorize$/;" m class:StimulusReflex.Utils
|
|
13
|
-
ConfigGenerator lib/generators/stimulus_reflex/config_generator.rb /^ class ConfigGenerator < Rails::Generators::Base$/;" c class:StimulusReflex
|
|
14
|
-
Configuration lib/stimulus_reflex/configuration.rb /^ class Configuration$/;" c
|
|
15
|
-
DemoReflex test/tmp/app/reflexes/demo_reflex.rb /^class DemoReflex < ApplicationReflex$/;" c
|
|
16
|
-
Engine lib/stimulus_reflex.rb /^ class Engine < Rails::Engine$/;" c class:StimulusReflex
|
|
17
|
-
Logger lib/stimulus_reflex/logger.rb /^ class Logger$/;" c class:StimulusReflex
|
|
18
|
-
NothingBroadcaster lib/stimulus_reflex/broadcasters/nothing_broadcaster.rb /^ class NothingBroadcaster < Broadcaster$/;" c class:StimulusReflex
|
|
19
|
-
PageBroadcaster lib/stimulus_reflex/broadcasters/page_broadcaster.rb /^ class PageBroadcaster < Broadcaster$/;" c class:StimulusReflex
|
|
20
|
-
SelectorBroadcaster lib/stimulus_reflex/broadcasters/selector_broadcaster.rb /^ class SelectorBroadcaster < Broadcaster$/;" c class:StimulusReflex
|
|
21
|
-
SessionMock test/test_helper.rb /^class SessionMock$/;" c
|
|
22
|
-
StimulusReflex app/channels/stimulus_reflex/channel.rb /^class StimulusReflex::Channel < StimulusReflex.configuration.parent_channel.constantize$/;" c
|
|
23
|
-
StimulusReflex lib/generators/stimulus_reflex/config_generator.rb /^module StimulusReflex$/;" m
|
|
24
|
-
StimulusReflex lib/stimulus_reflex.rb /^module StimulusReflex$/;" m
|
|
25
|
-
StimulusReflex lib/stimulus_reflex/broadcasters/broadcaster.rb /^module StimulusReflex$/;" m
|
|
26
|
-
StimulusReflex lib/stimulus_reflex/broadcasters/nothing_broadcaster.rb /^module StimulusReflex$/;" m
|
|
27
|
-
StimulusReflex lib/stimulus_reflex/broadcasters/page_broadcaster.rb /^module StimulusReflex$/;" m
|
|
28
|
-
StimulusReflex lib/stimulus_reflex/broadcasters/selector_broadcaster.rb /^module StimulusReflex$/;" m
|
|
29
|
-
StimulusReflex lib/stimulus_reflex/cable_ready_channels.rb /^module StimulusReflex$/;" m
|
|
30
|
-
StimulusReflex lib/stimulus_reflex/configuration.rb /^module StimulusReflex$/;" m
|
|
31
|
-
StimulusReflex lib/stimulus_reflex/element.rb /^class StimulusReflex::Element < OpenStruct$/;" c
|
|
32
|
-
StimulusReflex lib/stimulus_reflex/logger.rb /^module StimulusReflex$/;" m
|
|
33
|
-
StimulusReflex lib/stimulus_reflex/reflex.rb /^class StimulusReflex::Reflex$/;" c
|
|
34
|
-
StimulusReflex lib/stimulus_reflex/sanity_checker.rb /^class StimulusReflex::SanityChecker$/;" c
|
|
35
|
-
StimulusReflex lib/stimulus_reflex/utils/colorize.rb /^module StimulusReflex$/;" m
|
|
36
|
-
StimulusReflex lib/stimulus_reflex/version.rb /^module StimulusReflex$/;" m
|
|
37
|
-
StimulusReflex test/broadcasters/broadcaster_test.rb /^class StimulusReflex::BroadcasterTest < StimulusReflex::BroadcasterTestCase$/;" c
|
|
38
|
-
StimulusReflex test/broadcasters/broadcaster_test_case.rb /^class StimulusReflex::BroadcasterTestCase < ActionCable::Channel::TestCase$/;" c
|
|
39
|
-
StimulusReflex test/broadcasters/nothing_broadcaster_test.rb /^class StimulusReflex::NothingBroadcasterTest < StimulusReflex::BroadcasterTestCase$/;" c
|
|
40
|
-
StimulusReflex test/broadcasters/page_broadcaster_test.rb /^class StimulusReflex::PageBroadcasterTest < StimulusReflex::BroadcasterTestCase$/;" c
|
|
41
|
-
StimulusReflex test/reflex_test.rb /^class StimulusReflex::ReflexTest < ActionCable::Channel::TestCase$/;" c
|
|
42
|
-
StimulusReflexGenerator lib/generators/stimulus_reflex/stimulus_reflex_generator.rb /^class StimulusReflexGenerator < Rails::Generators::NamedBase$/;" c
|
|
43
|
-
StimulusReflexGeneratorTest test/generators/stimulus_reflex_generator_test.rb /^class StimulusReflexGeneratorTest < Rails::Generators::TestCase$/;" c
|
|
44
|
-
TestApp test/test_helper.rb /^class TestApp < Rails::Application$/;" c
|
|
45
|
-
TestController test/test_helper.rb /^class TestController < ApplicationController$/;" c
|
|
46
|
-
TestModel test/test_helper.rb /^class TestModel$/;" c
|
|
47
|
-
Utils lib/stimulus_reflex/utils/colorize.rb /^ module Utils$/;" m class:StimulusReflex
|
|
48
|
-
add_callback lib/stimulus_reflex/reflex.rb /^ def add_callback(kind, *args, &block)$/;" f class:StimulusReflex
|
|
49
|
-
after_reflex lib/stimulus_reflex/reflex.rb /^ def after_reflex(*args, &block)$/;" f class:StimulusReflex
|
|
50
|
-
append_morph lib/stimulus_reflex/broadcasters/selector_broadcaster.rb /^ def append_morph(selectors, html)$/;" f class:StimulusReflex.SelectorBroadcaster
|
|
51
|
-
around_reflex lib/stimulus_reflex/reflex.rb /^ def around_reflex(*args, &block)$/;" f class:StimulusReflex
|
|
52
|
-
before_reflex lib/stimulus_reflex/reflex.rb /^ def before_reflex(*args, &block)$/;" f class:StimulusReflex
|
|
53
|
-
body test/broadcasters/page_broadcaster_test.rb /^ def body$/;" f
|
|
54
|
-
broadcast lib/stimulus_reflex/broadcasters/broadcaster.rb /^ def broadcast(*args)$/;" f class:StimulusReflex.Broadcaster
|
|
55
|
-
broadcast lib/stimulus_reflex/broadcasters/nothing_broadcaster.rb /^ def broadcast(_, data)$/;" f class:StimulusReflex.NothingBroadcaster
|
|
56
|
-
broadcast lib/stimulus_reflex/broadcasters/page_broadcaster.rb /^ def broadcast(selectors, data)$/;" f class:StimulusReflex.PageBroadcaster
|
|
57
|
-
broadcast lib/stimulus_reflex/broadcasters/selector_broadcaster.rb /^ def broadcast(_, data = {})$/;" f class:StimulusReflex.SelectorBroadcaster
|
|
58
|
-
broadcast_message lib/stimulus_reflex/broadcasters/broadcaster.rb /^ def broadcast_message(subject:, body: nil, data: {}, error: nil)$/;" f class:StimulusReflex.Broadcaster
|
|
59
|
-
cable_ready_channels lib/stimulus_reflex/cable_ready_channels.rb /^ def cable_ready_channels$/;" f class:StimulusReflex.CableReadyChannels
|
|
60
|
-
caching_enabled? lib/stimulus_reflex/sanity_checker.rb /^ def caching_enabled?$/;" f
|
|
61
|
-
called_by_generate_config? lib/stimulus_reflex/sanity_checker.rb /^ def called_by_generate_config?$/;" f class:StimulusReflex
|
|
62
|
-
called_by_installer? lib/stimulus_reflex/sanity_checker.rb /^ def called_by_installer?$/;" f class:StimulusReflex
|
|
63
|
-
check! lib/stimulus_reflex/sanity_checker.rb /^ def check!$/;" f class:StimulusReflex
|
|
64
|
-
check_caching_enabled lib/stimulus_reflex/sanity_checker.rb /^ def check_caching_enabled$/;" f
|
|
65
|
-
check_javascript_package_version lib/stimulus_reflex/sanity_checker.rb /^ def check_javascript_package_version$/;" f
|
|
66
|
-
commit_session app/channels/stimulus_reflex/channel.rb /^ def commit_session(reflex)$/;" f class:StimulusReflex.receive
|
|
67
|
-
config_logging lib/stimulus_reflex/logger.rb /^ def config_logging$/;" f class:StimulusReflex.Logger
|
|
68
|
-
configuration lib/stimulus_reflex/configuration.rb /^ def configuration$/;" f class:StimulusReflex
|
|
69
|
-
configure lib/stimulus_reflex/configuration.rb /^ def configure$/;" f class:StimulusReflex
|
|
70
|
-
connection_id lib/stimulus_reflex/logger.rb /^ def connection_id$/;" f class:StimulusReflex.Logger
|
|
71
|
-
connection_id_full lib/stimulus_reflex/logger.rb /^ def connection_id_full$/;" f class:StimulusReflex.Logger
|
|
72
|
-
controller lib/stimulus_reflex/reflex.rb /^ def controller$/;" f
|
|
73
|
-
copy_application_files lib/generators/stimulus_reflex/stimulus_reflex_generator.rb /^ def copy_application_files$/;" f class:StimulusReflexGenerator
|
|
74
|
-
copy_config_file lib/generators/stimulus_reflex/config_generator.rb /^ def copy_config_file$/;" f class:StimulusReflex.ConfigGenerator
|
|
75
|
-
dataset lib/stimulus_reflex/element.rb /^ def dataset$/;" f class:StimulusReflex
|
|
76
|
-
default_reflex lib/stimulus_reflex/reflex.rb /^ def default_reflex$/;" f
|
|
77
|
-
delegate_call_to_reflex app/channels/stimulus_reflex/channel.rb /^ def delegate_call_to_reflex(reflex, method_name, arguments = [])$/;" f class:StimulusReflex.receive
|
|
78
|
-
dom_id lib/stimulus_reflex/reflex.rb /^ def dom_id(record_or_class, prefix = nil, hash: true)$/;" f
|
|
79
|
-
env test/broadcasters/broadcaster_test_case.rb /^ def connection.env$/;" F class:StimulusReflex
|
|
80
|
-
env test/reflex_test.rb /^ def connection.env$/;" F class:StimulusReflex
|
|
81
|
-
exception_message_with_backtrace app/channels/stimulus_reflex/channel.rb /^ def exception_message_with_backtrace(exception)$/;" f class:StimulusReflex.receive
|
|
82
|
-
execute lib/generators/stimulus_reflex/stimulus_reflex_generator.rb /^ def execute$/;" f class:StimulusReflexGenerator
|
|
83
|
-
exit_with_info lib/stimulus_reflex/sanity_checker.rb /^ def exit_with_info$/;" f
|
|
84
|
-
export.reflexAttribute javascript/schema.js /^ reflexAttribute: 'data-reflex',$/;" p
|
|
85
|
-
export.reflexDatasetAttribute javascript/schema.js /^ reflexDatasetAttribute: 'data-reflex-dataset'$/;" p
|
|
86
|
-
export.reflexPermanentAttribute javascript/schema.js /^ reflexPermanentAttribute: 'data-reflex-permanent',$/;" p
|
|
87
|
-
export.reflexRootAttribute javascript/schema.js /^ reflexRootAttribute: 'data-reflex-root',$/;" p
|
|
88
|
-
findConsumer javascript/consumer.js /^function findConsumer (object, depth = 0) {$/;" f
|
|
89
|
-
find_javascript_package_version lib/stimulus_reflex/sanity_checker.rb /^ def find_javascript_package_version$/;" f
|
|
90
|
-
fix_environment! app/channels/stimulus_reflex/channel.rb /^ def fix_environment!$/;" f class:StimulusReflex.receive
|
|
91
|
-
function.error javascript/log.js /^function error (event) {$/;" f
|
|
92
|
-
gem_version lib/stimulus_reflex/sanity_checker.rb /^ def gem_version$/;" f
|
|
93
|
-
halted? lib/stimulus_reflex/reflex.rb /^ def halted?$/;" f
|
|
94
|
-
index test/test_helper.rb /^ def index$/;" f class:TestController
|
|
95
|
-
initialize lib/stimulus_reflex/broadcasters/broadcaster.rb /^ def initialize(reflex)$/;" f class:StimulusReflex.Broadcaster
|
|
96
|
-
initialize lib/stimulus_reflex/cable_ready_channels.rb /^ def initialize(stream_name)$/;" f class:StimulusReflex.CableReadyChannels
|
|
97
|
-
initialize lib/stimulus_reflex/configuration.rb /^ def initialize$/;" f class:Configuration
|
|
98
|
-
initialize lib/stimulus_reflex/element.rb /^ def initialize(data = {})$/;" f class:StimulusReflex
|
|
99
|
-
initialize lib/stimulus_reflex/logger.rb /^ def initialize(reflex)$/;" f class:StimulusReflex.Logger
|
|
100
|
-
initialize lib/stimulus_reflex/reflex.rb /^ def initialize(channel, url: nil, element: nil, selectors: [], method_name: nil, params: {}, client_attributes: {})$/;" f
|
|
101
|
-
initializer_path lib/stimulus_reflex/sanity_checker.rb /^ def initializer_path$/;" f
|
|
102
|
-
is_reflex? app/channels/stimulus_reflex/channel.rb /^ def is_reflex?(reflex_class)$/;" f class:StimulusReflex.receive
|
|
103
|
-
javascript_package_version lib/stimulus_reflex/sanity_checker.rb /^ def javascript_package_version$/;" f
|
|
104
|
-
javascript_version_matches? lib/stimulus_reflex/sanity_checker.rb /^ def javascript_version_matches?$/;" f
|
|
105
|
-
load! test/test_helper.rb /^ def load!$/;" f class:SessionMock
|
|
106
|
-
method_missing lib/stimulus_reflex/logger.rb /^ def method_missing method$/;" f class:StimulusReflex.Logger
|
|
107
|
-
mode lib/stimulus_reflex/logger.rb /^ def mode$/;" f class:StimulusReflex.Logger
|
|
108
|
-
morph lib/stimulus_reflex/reflex.rb /^ def morph(selectors, html = "")$/;" f
|
|
109
|
-
morphs lib/stimulus_reflex/broadcasters/selector_broadcaster.rb /^ def morphs$/;" f class:StimulusReflex.SelectorBroadcaster
|
|
110
|
-
normalize_callback_option! lib/stimulus_reflex/reflex.rb /^ def normalize_callback_option!(options, from, to)$/;" f class:StimulusReflex
|
|
111
|
-
normalize_callback_options! lib/stimulus_reflex/reflex.rb /^ def normalize_callback_options!(options)$/;" f class:StimulusReflex
|
|
112
|
-
not_null_store? lib/stimulus_reflex/sanity_checker.rb /^ def not_null_store?$/;" f
|
|
113
|
-
nothing? lib/stimulus_reflex/broadcasters/broadcaster.rb /^ def nothing?$/;" f class:StimulusReflex.Broadcaster
|
|
114
|
-
nothing? lib/stimulus_reflex/broadcasters/nothing_broadcaster.rb /^ def nothing?$/;" f class:StimulusReflex.NothingBroadcaster
|
|
115
|
-
object_with_indifferent_access app/channels/stimulus_reflex/channel.rb /^ def object_with_indifferent_access(object)$/;" f class:StimulusReflex.receive
|
|
116
|
-
operation lib/stimulus_reflex/logger.rb /^ def operation$/;" f class:StimulusReflex.Logger
|
|
117
|
-
operation_counter lib/stimulus_reflex/logger.rb /^ def operation_counter$/;" f class:StimulusReflex.Logger
|
|
118
|
-
package_json_path lib/stimulus_reflex/sanity_checker.rb /^ def package_json_path$/;" f
|
|
119
|
-
page? lib/stimulus_reflex/broadcasters/broadcaster.rb /^ def page?$/;" f class:StimulusReflex.Broadcaster
|
|
120
|
-
page? lib/stimulus_reflex/broadcasters/page_broadcaster.rb /^ def page?$/;" f class:StimulusReflex.PageBroadcaster
|
|
121
|
-
params lib/stimulus_reflex/reflex.rb /^ def params$/;" f
|
|
122
|
-
print lib/stimulus_reflex/logger.rb /^ def print$/;" f class:StimulusReflex.Logger
|
|
123
|
-
private_instance_methods lib/stimulus_reflex/logger.rb /^ def private_instance_methods$/;" f class:StimulusReflex.Logger
|
|
124
|
-
process lib/stimulus_reflex/reflex.rb /^ def process(name, *args)$/;" f
|
|
125
|
-
receive app/channels/stimulus_reflex/channel.rb /^ def receive(data)$/;" f class:StimulusReflex
|
|
126
|
-
reflex javascript/lifecycle.js /^ const detail = { reflex: target, controller, reflexId }$/;" p
|
|
127
|
-
reflex_id lib/stimulus_reflex/logger.rb /^ def reflex_id$/;" f class:StimulusReflex.Logger
|
|
128
|
-
reflex_id_full lib/stimulus_reflex/logger.rb /^ def reflex_id_full$/;" f class:StimulusReflex.Logger
|
|
129
|
-
reflex_info lib/stimulus_reflex/logger.rb /^ def reflex_info$/;" f class:StimulusReflex.Logger
|
|
130
|
-
request javascript/log.js /^function request (reflexId, target, args, controller, element) {$/;" f
|
|
131
|
-
request lib/stimulus_reflex/reflex.rb /^ def request$/;" f
|
|
132
|
-
request.success javascript/log.js /^function success (event) {$/;" f
|
|
133
|
-
respond_to_missing? lib/stimulus_reflex/logger.rb /^ def respond_to_missing? method$/;" f class:StimulusReflex.Logger
|
|
134
|
-
search_file lib/stimulus_reflex/sanity_checker.rb /^ def search_file(path, regex:)$/;" f
|
|
135
|
-
selector lib/stimulus_reflex/logger.rb /^ def selector$/;" f class:StimulusReflex.Logger
|
|
136
|
-
selector? lib/stimulus_reflex/broadcasters/broadcaster.rb /^ def selector?$/;" f class:StimulusReflex.Broadcaster
|
|
137
|
-
selector? lib/stimulus_reflex/broadcasters/selector_broadcaster.rb /^ def selector?$/;" f class:StimulusReflex.SelectorBroadcaster
|
|
138
|
-
session test/test_helper.rb /^ def session$/;" f class:ActionDispatch
|
|
139
|
-
session_id lib/stimulus_reflex/logger.rb /^ def session_id$/;" f class:StimulusReflex.Logger
|
|
140
|
-
session_id_full lib/stimulus_reflex/logger.rb /^ def session_id_full$/;" f class:StimulusReflex.Logger
|
|
141
|
-
signed lib/stimulus_reflex/element.rb /^ def signed$/;" f class:StimulusReflex
|
|
142
|
-
stimulus_reflex_channel lib/stimulus_reflex/cable_ready_channels.rb /^ def stimulus_reflex_channel$/;" f class:StimulusReflex.CableReadyChannels
|
|
143
|
-
stream_name app/channels/stimulus_reflex/channel.rb /^ def stream_name$/;" f class:StimulusReflex
|
|
144
|
-
subscribed app/channels/stimulus_reflex/channel.rb /^ def subscribed$/;" f class:StimulusReflex
|
|
145
|
-
timestamp lib/stimulus_reflex/logger.rb /^ def timestamp$/;" f class:StimulusReflex.Logger
|
|
146
|
-
to_s lib/stimulus_reflex/broadcasters/broadcaster.rb /^ def to_s$/;" f class:StimulusReflex.Broadcaster
|
|
147
|
-
to_s lib/stimulus_reflex/broadcasters/nothing_broadcaster.rb /^ def to_s$/;" f class:StimulusReflex.NothingBroadcaster
|
|
148
|
-
to_s lib/stimulus_reflex/broadcasters/page_broadcaster.rb /^ def to_s$/;" f class:StimulusReflex.PageBroadcaster
|
|
149
|
-
to_s lib/stimulus_reflex/broadcasters/selector_broadcaster.rb /^ def to_s$/;" f class:StimulusReflex.SelectorBroadcaster
|
|
150
|
-
to_sym lib/stimulus_reflex/broadcasters/broadcaster.rb /^ def to_sym$/;" f class:StimulusReflex.Broadcaster
|
|
151
|
-
to_sym lib/stimulus_reflex/broadcasters/nothing_broadcaster.rb /^ def to_sym$/;" f class:StimulusReflex.NothingBroadcaster
|
|
152
|
-
to_sym lib/stimulus_reflex/broadcasters/page_broadcaster.rb /^ def to_sym$/;" f class:StimulusReflex.PageBroadcaster
|
|
153
|
-
to_sym lib/stimulus_reflex/broadcasters/selector_broadcaster.rb /^ def to_sym$/;" f class:StimulusReflex.SelectorBroadcaster
|
|
154
|
-
unsigned lib/stimulus_reflex/element.rb /^ def unsigned$/;" f class:StimulusReflex
|
|
155
|
-
warn_and_exit lib/stimulus_reflex/sanity_checker.rb /^ def warn_and_exit(text)$/;" f
|
|
156
|
-
yarn_lock_path lib/stimulus_reflex/sanity_checker.rb /^ def yarn_lock_path$/;" f
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
class ApplicationReflex < StimulusReflex::Reflex
|
|
4
|
-
# Put application-wide Reflex behavior and callbacks in this file.
|
|
5
|
-
#
|
|
6
|
-
# Example:
|
|
7
|
-
#
|
|
8
|
-
# # If your ActionCable connection is: `identified_by :current_user`
|
|
9
|
-
# delegate :current_user, to: :connection
|
|
10
|
-
#
|
|
11
|
-
# Learn more at: https://docs.stimulusreflex.com/reflexes#reflex-classes
|
|
12
|
-
end
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
class UserReflex < ApplicationReflex
|
|
4
|
-
# Add Reflex methods in this file.
|
|
5
|
-
#
|
|
6
|
-
# All Reflex instances include CableReady::Broadcaster and expose the following properties:
|
|
7
|
-
#
|
|
8
|
-
# - connection - the ActionCable connection
|
|
9
|
-
# - channel - the ActionCable channel
|
|
10
|
-
# - request - an ActionDispatch::Request proxy for the socket connection
|
|
11
|
-
# - session - the ActionDispatch::Session store for the current visitor
|
|
12
|
-
# - flash - the ActionDispatch::Flash::FlashHash for the current request
|
|
13
|
-
# - url - the URL of the page that triggered the reflex
|
|
14
|
-
# - params - parameters from the element's closest form (if any)
|
|
15
|
-
# - element - a Hash like object that represents the HTML element that triggered the reflex
|
|
16
|
-
# - signed - use a signed Global ID to map dataset attribute to a model eg. element.signed[:foo]
|
|
17
|
-
# - unsigned - use an unsigned Global ID to map dataset attribute to a model eg. element.unsigned[:foo]
|
|
18
|
-
# - cable_ready - a special cable_ready that can broadcast to the current visitor (no brackets needed)
|
|
19
|
-
# - reflex_id - a UUIDv4 that uniquely identies each Reflex
|
|
20
|
-
#
|
|
21
|
-
# Example:
|
|
22
|
-
#
|
|
23
|
-
# before_reflex do
|
|
24
|
-
# # throw :abort # this will prevent the Reflex from continuing
|
|
25
|
-
# # learn more about callbacks at https://docs.stimulusreflex.com/lifecycle
|
|
26
|
-
# end
|
|
27
|
-
#
|
|
28
|
-
# def example(argument=true)
|
|
29
|
-
# # Your logic here...
|
|
30
|
-
# # Any declared instance variables will be made available to the Rails controller and view.
|
|
31
|
-
# end
|
|
32
|
-
#
|
|
33
|
-
# Learn more at: https://docs.stimulusreflex.com/reflexes#reflex-classes
|
|
34
|
-
|
|
35
|
-
def update
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def do_stuff
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def do_more_stuff
|
|
42
|
-
end
|
|
43
|
-
end
|