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