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 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