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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6f74577e73a2f026446a9992c687779adc90905fc20d7023c0020079608e365c
4
- data.tar.gz: ea5c955d176363fdfd7634e51025c3b6948577b814f318e5674f7e7136d6a4a1
3
+ metadata.gz: 2c20bc83a1fd5adac26fb305aa6cee7e90f81082519428bc5b2d2907f300f121
4
+ data.tar.gz: f4f21bf47ebab3dcca9aea10ffe1211ba24d862fcd46c877745c0bbb7cb98e80
5
5
  SHA512:
6
- metadata.gz: f9410027ca56f055ef6cbf630cd1ecb6c1110d2021be6e1d1a854721525a2ab49bcc413b91d4d29ed4f952afba85d0168a2622dd3b1c06a7f87465dd01e7aaf1
7
- data.tar.gz: c1a0e8e3a4ed13bed29beee77c866877a9cbf781e85140d105168ba2e8574bb9f43cf8db7f6eba6249e07e673aa1efab541d84f5778a36bc34dd6c53e804c5b1
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.1)
5
- cable_ready (>= 4.5)
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 (6.1.1)
15
- actionpack (= 6.1.1)
16
- activesupport (= 6.1.1)
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
- actionmailbox (6.1.1)
20
- actionpack (= 6.1.1)
21
- activejob (= 6.1.1)
22
- activerecord (= 6.1.1)
23
- activestorage (= 6.1.1)
24
- activesupport (= 6.1.1)
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
- actionmailer (6.1.1)
27
- actionpack (= 6.1.1)
28
- actionview (= 6.1.1)
29
- activejob (= 6.1.1)
30
- activesupport (= 6.1.1)
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
- rails-dom-testing (~> 2.0)
33
- actionpack (6.1.1)
34
- actionview (= 6.1.1)
35
- activesupport (= 6.1.1)
36
- rack (~> 2.0, >= 2.0.9)
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.0)
39
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
40
- actiontext (6.1.1)
41
- actionpack (= 6.1.1)
42
- activerecord (= 6.1.1)
43
- activestorage (= 6.1.1)
44
- activesupport (= 6.1.1)
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 (6.1.1)
47
- activesupport (= 6.1.1)
57
+ actionview (7.1.3.2)
58
+ activesupport (= 7.1.3.2)
48
59
  builder (~> 3.1)
49
- erubi (~> 1.4)
50
- rails-dom-testing (~> 2.0)
51
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
52
- activejob (6.1.1)
53
- activesupport (= 6.1.1)
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 (6.1.1)
56
- activesupport (= 6.1.1)
57
- activerecord (6.1.1)
58
- activemodel (= 6.1.1)
59
- activesupport (= 6.1.1)
60
- activestorage (6.1.1)
61
- actionpack (= 6.1.1)
62
- activejob (= 6.1.1)
63
- activerecord (= 6.1.1)
64
- activesupport (= 6.1.1)
65
- marcel (~> 0.3.1)
66
- mimemagic (~> 0.3.2)
67
- activesupport (6.1.1)
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.1.8)
96
+ concurrent-ruby (1.2.3)
97
+ connection_pool (2.4.1)
80
98
  crass (1.0.6)
81
- erubi (1.10.0)
82
- globalid (0.4.2)
83
- activesupport (>= 4.2.0)
84
- i18n (1.8.7)
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
- loofah (2.9.0)
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.5.9)
89
- mail (2.7.1)
112
+ nokogiri (>= 1.12.0)
113
+ mail (2.8.1)
90
114
  mini_mime (>= 0.1.1)
91
- marcel (0.3.3)
92
- mimemagic (~> 0.3.2)
115
+ net-imap
116
+ net-pop
117
+ net-smtp
118
+ marcel (1.0.4)
93
119
  method_source (0.9.2)
94
- mimemagic (0.3.5)
95
- mini_mime (1.0.2)
96
- mini_portile2 (2.5.0)
97
- minitest (5.14.3)
98
- nio4r (2.5.4)
99
- nokogiri (1.11.1)
100
- mini_portile2 (~> 2.5.0)
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
- racc (1.5.2)
111
- rack (2.2.3)
112
- rack-test (1.1.0)
113
- rack (>= 1.0, < 3)
114
- rails (6.1.1)
115
- actioncable (= 6.1.1)
116
- actionmailbox (= 6.1.1)
117
- actionmailer (= 6.1.1)
118
- actionpack (= 6.1.1)
119
- actiontext (= 6.1.1)
120
- actionview (= 6.1.1)
121
- activejob (= 6.1.1)
122
- activemodel (= 6.1.1)
123
- activerecord (= 6.1.1)
124
- activestorage (= 6.1.1)
125
- activesupport (= 6.1.1)
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 (= 6.1.1)
128
- sprockets-rails (>= 2.0.0)
129
- rails-dom-testing (2.0.3)
130
- activesupport (>= 4.2.0)
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.3.0)
133
- loofah (~> 2.3)
134
- railties (6.1.1)
135
- actionpack (= 6.1.1)
136
- activesupport (= 6.1.1)
137
- method_source
138
- rake (>= 0.8.7)
139
- thor (~> 1.0)
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
- redis (4.2.5)
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
- thor (1.1.0)
217
+ stringio (3.1.0)
218
+ thor (1.3.1)
173
219
  thread-local (1.1.0)
174
- tzinfo (2.0.4)
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
- websocket-driver (0.7.3)
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.4.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.1.4
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
- reflex_name, method_name = target.split("#")
24
- reflex_name = reflex_name.camelize
25
- reflex_name = reflex_name.end_with?("Reflex") ? reflex_name : "#{reflex_name}Reflex"
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module StimulusReflex
4
- VERSION = "3.4.1"
4
+ VERSION = "3.4.2"
5
5
  end
@@ -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.0",
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": ">= 4.5.0"
44
+ "cable_ready": "^4.5.0"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@babel/core": "^7.6.2",
@@ -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", ">= 4.5"
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
- "cable_ready@>= 4.5.0":
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.1
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: 2021-01-26 00:00:00.000000000 Z
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.1.4
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