stimulus_reflex 3.4.1 → 3.5.0.pre3
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.
Potentially problematic release.
This version of stimulus_reflex might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +664 -495
- data/Gemfile.lock +99 -95
- data/LATEST +1 -0
- data/README.md +17 -16
- data/app/channels/stimulus_reflex/channel.rb +44 -75
- data/lib/generators/USAGE +1 -1
- data/lib/generators/stimulus_reflex/{config_generator.rb → initializer_generator.rb} +3 -3
- data/lib/generators/stimulus_reflex/stimulus_reflex_generator.rb +5 -4
- data/lib/generators/stimulus_reflex/templates/app/reflexes/%file_name%_reflex.rb.tt +3 -2
- data/lib/generators/stimulus_reflex/templates/app/reflexes/application_reflex.rb.tt +11 -4
- data/lib/generators/stimulus_reflex/templates/config/initializers/stimulus_reflex.rb +21 -1
- data/lib/stimulus_reflex/broadcasters/broadcaster.rb +22 -18
- data/lib/stimulus_reflex/broadcasters/nothing_broadcaster.rb +6 -1
- data/lib/stimulus_reflex/broadcasters/page_broadcaster.rb +3 -5
- data/lib/stimulus_reflex/broadcasters/selector_broadcaster.rb +22 -16
- data/lib/stimulus_reflex/broadcasters/update.rb +23 -0
- data/lib/stimulus_reflex/cable_ready_channels.rb +10 -2
- data/lib/stimulus_reflex/callbacks.rb +55 -5
- data/lib/stimulus_reflex/concern_enhancer.rb +37 -0
- data/lib/stimulus_reflex/configuration.rb +4 -1
- data/lib/stimulus_reflex/dataset.rb +34 -0
- data/lib/stimulus_reflex/element.rb +20 -13
- data/lib/stimulus_reflex/policies/reflex_invocation_policy.rb +28 -0
- data/lib/stimulus_reflex/reflex.rb +41 -21
- data/lib/stimulus_reflex/reflex_data.rb +79 -0
- data/lib/stimulus_reflex/reflex_factory.rb +31 -0
- data/lib/stimulus_reflex/request_parameters.rb +19 -0
- data/lib/stimulus_reflex/utils/attribute_builder.rb +17 -0
- data/lib/stimulus_reflex/{logger.rb → utils/logger.rb} +6 -4
- data/lib/stimulus_reflex/utils/sanity_checker.rb +210 -0
- data/lib/stimulus_reflex/version.rb +1 -1
- data/lib/stimulus_reflex.rb +10 -2
- data/lib/tasks/stimulus_reflex/install.rake +54 -15
- data/test/broadcasters/broadcaster_test.rb +0 -1
- data/test/broadcasters/broadcaster_test_case.rb +25 -1
- data/test/broadcasters/nothing_broadcaster_test.rb +14 -20
- data/test/broadcasters/page_broadcaster_test.rb +31 -29
- data/test/broadcasters/selector_broadcaster_test.rb +165 -55
- data/test/callbacks_test.rb +652 -0
- data/test/concern_enhancer_test.rb +54 -0
- data/test/element_test.rb +254 -0
- data/test/generators/stimulus_reflex_generator_test.rb +8 -0
- data/test/reflex_test.rb +12 -1
- data/test/test_helper.rb +25 -1
- data/test/tmp/app/reflexes/application_reflex.rb +10 -3
- data/test/tmp/app/reflexes/{user_reflex.rb → demo_reflex.rb} +4 -12
- metadata +65 -36
- data/lib/stimulus_reflex/sanity_checker.rb +0 -154
- data/package.json +0 -57
- data/stimulus_reflex.gemspec +0 -42
- data/tags +0 -156
- data/yarn.lock +0 -4687
@@ -0,0 +1,254 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "test_helper"
|
4
|
+
|
5
|
+
class StimulusReflex::ElementTest < ActiveSupport::TestCase
|
6
|
+
element = StimulusReflex::Element.new({
|
7
|
+
"attrs" => {
|
8
|
+
"user" => "First User",
|
9
|
+
"user-id" => "1"
|
10
|
+
},
|
11
|
+
"dataset" => {
|
12
|
+
"dataset" => {
|
13
|
+
"data-post" => "The Post",
|
14
|
+
"data-post-id" => "2"
|
15
|
+
},
|
16
|
+
"datasetAll" => {}
|
17
|
+
}
|
18
|
+
})
|
19
|
+
|
20
|
+
test "should be able to access attributes on element itself" do
|
21
|
+
assert_equal "First User", element.user
|
22
|
+
assert_equal "First User", element["user"]
|
23
|
+
assert_equal "First User", element[:user]
|
24
|
+
|
25
|
+
assert_equal "1", element.user_id
|
26
|
+
assert_equal "1", element["user_id"]
|
27
|
+
assert_equal "1", element["user-id"]
|
28
|
+
assert_equal "1", element[:user_id]
|
29
|
+
|
30
|
+
assert_equal "The Post", element.data_post
|
31
|
+
assert_equal "The Post", element["data_post"]
|
32
|
+
assert_equal "The Post", element["data-post"]
|
33
|
+
assert_equal "The Post", element[:data_post]
|
34
|
+
|
35
|
+
assert_equal "2", element.data_post_id
|
36
|
+
assert_equal "2", element["data_post_id"]
|
37
|
+
assert_equal "2", element["data-post-id"]
|
38
|
+
assert_equal "2", element[:data_post_id]
|
39
|
+
end
|
40
|
+
|
41
|
+
test "should be able to access attributes via attributes" do
|
42
|
+
assert_equal "First User", element.attributes.user
|
43
|
+
assert_equal "First User", element.attributes["user"]
|
44
|
+
assert_equal "First User", element.attributes[:user]
|
45
|
+
|
46
|
+
assert_equal "1", element.attributes.user_id
|
47
|
+
assert_equal "1", element.attributes["user_id"]
|
48
|
+
assert_equal "1", element.attributes["user-id"]
|
49
|
+
assert_equal "1", element.attributes[:user_id]
|
50
|
+
end
|
51
|
+
|
52
|
+
test "should be able to access attributes via dataset" do
|
53
|
+
assert_equal "The Post", element.dataset.post
|
54
|
+
assert_equal "The Post", element.dataset["post"]
|
55
|
+
assert_equal "The Post", element.dataset[:post]
|
56
|
+
|
57
|
+
assert_equal "2", element.dataset.post_id
|
58
|
+
assert_equal "2", element.dataset["post-id"]
|
59
|
+
assert_equal "2", element.dataset["post_id"]
|
60
|
+
assert_equal "2", element.dataset[:post_id]
|
61
|
+
end
|
62
|
+
|
63
|
+
test "should be able to access attributes via data_attributes" do
|
64
|
+
assert_equal "The Post", element.data_attributes.post
|
65
|
+
assert_equal "The Post", element.data_attributes["post"]
|
66
|
+
assert_equal "The Post", element.data_attributes[:post]
|
67
|
+
|
68
|
+
assert_equal "2", element.data_attributes.post_id
|
69
|
+
assert_equal "2", element.data_attributes["post-id"]
|
70
|
+
assert_equal "2", element.data_attributes["post_id"]
|
71
|
+
assert_equal "2", element.data_attributes[:post_id]
|
72
|
+
end
|
73
|
+
|
74
|
+
test "should pluralize keys from datasetAll" do
|
75
|
+
data = {
|
76
|
+
"dataset" => {
|
77
|
+
"dataset" => {
|
78
|
+
"data-reflex" => "click",
|
79
|
+
"data-sex" => "male"
|
80
|
+
},
|
81
|
+
"datasetAll" => {
|
82
|
+
"data-reflex" => ["click"],
|
83
|
+
"data-post-id" => ["1", "2", "3", "4"],
|
84
|
+
"data-name" => ["steve", "bill", "steve", "mike"]
|
85
|
+
}
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
dataset_all_element = StimulusReflex::Element.new(data)
|
90
|
+
|
91
|
+
assert_equal "click", dataset_all_element.dataset.reflex
|
92
|
+
assert_equal "male", dataset_all_element.dataset.sex
|
93
|
+
|
94
|
+
assert_equal ["steve", "bill", "steve", "mike"], dataset_all_element.dataset.names
|
95
|
+
assert_equal ["1", "2", "3", "4"], dataset_all_element.dataset.post_ids
|
96
|
+
assert_equal ["click"], dataset_all_element.dataset.reflexes
|
97
|
+
end
|
98
|
+
|
99
|
+
test "should pluralize irregular words from datasetAll" do
|
100
|
+
data = {
|
101
|
+
"dataset" => {
|
102
|
+
"dataset" => {},
|
103
|
+
"datasetAll" => {
|
104
|
+
"data-cat" => ["cat"],
|
105
|
+
"data-child" => ["child"],
|
106
|
+
"data-women" => ["woman"],
|
107
|
+
"data-man" => ["man"],
|
108
|
+
"data-wolf" => ["wolf"],
|
109
|
+
"data-library" => ["library"],
|
110
|
+
"data-mouse" => ["mouse"]
|
111
|
+
}
|
112
|
+
}
|
113
|
+
}
|
114
|
+
|
115
|
+
pluralize_element = StimulusReflex::Element.new(data)
|
116
|
+
|
117
|
+
assert_equal ["cat"], pluralize_element.dataset.cats
|
118
|
+
assert_equal ["child"], pluralize_element.dataset.children
|
119
|
+
assert_equal ["woman"], pluralize_element.dataset.women
|
120
|
+
assert_equal ["man"], pluralize_element.dataset.men
|
121
|
+
assert_equal ["wolf"], pluralize_element.dataset.wolves
|
122
|
+
assert_equal ["library"], pluralize_element.dataset.libraries
|
123
|
+
assert_equal ["mouse"], pluralize_element.dataset.mice
|
124
|
+
end
|
125
|
+
|
126
|
+
test "should not pluralize plural key" do
|
127
|
+
data = {
|
128
|
+
"dataset" => {
|
129
|
+
"datasetAll" => {
|
130
|
+
"data-ids" => ["1", "2"]
|
131
|
+
}
|
132
|
+
}
|
133
|
+
}
|
134
|
+
|
135
|
+
assert_equal ["1", "2"], StimulusReflex::Element.new(data).dataset.ids
|
136
|
+
assert_nil StimulusReflex::Element.new(data).dataset.idss
|
137
|
+
end
|
138
|
+
|
139
|
+
test "should not build array with pluralized key" do
|
140
|
+
data = {
|
141
|
+
"dataset" => {
|
142
|
+
"dataset" => {
|
143
|
+
"data-ids" => "1"
|
144
|
+
}
|
145
|
+
}
|
146
|
+
}
|
147
|
+
|
148
|
+
assert_equal "1", StimulusReflex::Element.new(data).dataset.ids
|
149
|
+
end
|
150
|
+
|
151
|
+
test "should handle overlapping singluar and plural key names" do
|
152
|
+
data = {
|
153
|
+
"dataset" => {
|
154
|
+
"dataset" => {
|
155
|
+
"data-id" => "1",
|
156
|
+
"data-ids" => "2",
|
157
|
+
"data-post-id" => "9",
|
158
|
+
"data-post-ids" => "10",
|
159
|
+
"data-duplicate-value" => "19",
|
160
|
+
"data-duplicate-values" => "20"
|
161
|
+
},
|
162
|
+
"datasetAll" => {
|
163
|
+
"data-id" => ["3", "4"],
|
164
|
+
"data-post-ids" => ["11", "12"],
|
165
|
+
"data-duplicate-value" => ["20", "21", "22"]
|
166
|
+
}
|
167
|
+
}
|
168
|
+
}
|
169
|
+
|
170
|
+
overlapping_keys_element = StimulusReflex::Element.new(data)
|
171
|
+
|
172
|
+
assert_equal "1", overlapping_keys_element.dataset.id
|
173
|
+
assert_equal ["2", "3", "4"], overlapping_keys_element.dataset.ids
|
174
|
+
|
175
|
+
assert_equal "9", overlapping_keys_element.dataset.post_id
|
176
|
+
assert_equal ["10", "11", "12"], overlapping_keys_element.dataset.post_ids
|
177
|
+
|
178
|
+
assert_equal "19", overlapping_keys_element.dataset.duplicate_value
|
179
|
+
assert_equal ["20", "20", "21", "22"], overlapping_keys_element.dataset.duplicate_values
|
180
|
+
end
|
181
|
+
|
182
|
+
test "should return true for boolean data attributes" do
|
183
|
+
data = {
|
184
|
+
"dataset" => {
|
185
|
+
"dataset" => {
|
186
|
+
"data-short" => "t",
|
187
|
+
"data-long" => "true",
|
188
|
+
"data-num" => "1",
|
189
|
+
"data-empty" => ""
|
190
|
+
}
|
191
|
+
}
|
192
|
+
}
|
193
|
+
|
194
|
+
element_with_boolean_attributes = StimulusReflex::Element.new(data)
|
195
|
+
|
196
|
+
assert element_with_boolean_attributes.boolean[:short]
|
197
|
+
assert element_with_boolean_attributes.boolean[:long]
|
198
|
+
assert element_with_boolean_attributes.boolean[:num]
|
199
|
+
assert element_with_boolean_attributes.boolean[:empty]
|
200
|
+
|
201
|
+
assert element_with_boolean_attributes.dataset.boolean[:short]
|
202
|
+
assert element_with_boolean_attributes.dataset.boolean[:long]
|
203
|
+
assert element_with_boolean_attributes.dataset.boolean[:num]
|
204
|
+
assert element_with_boolean_attributes.dataset.boolean[:empty]
|
205
|
+
end
|
206
|
+
|
207
|
+
test "should return false for falsey data attributes" do
|
208
|
+
data = {
|
209
|
+
"dataset" => {
|
210
|
+
"dataset" => {
|
211
|
+
"data-short" => "f",
|
212
|
+
"data-long" => "false",
|
213
|
+
"data-num" => "0"
|
214
|
+
}
|
215
|
+
}
|
216
|
+
}
|
217
|
+
|
218
|
+
element_with_falsey_attributes = StimulusReflex::Element.new(data)
|
219
|
+
|
220
|
+
refute element_with_falsey_attributes.boolean[:short]
|
221
|
+
refute element_with_falsey_attributes.boolean[:long]
|
222
|
+
refute element_with_falsey_attributes.boolean[:num]
|
223
|
+
|
224
|
+
refute element_with_falsey_attributes.dataset.boolean[:short]
|
225
|
+
refute element_with_falsey_attributes.dataset.boolean[:long]
|
226
|
+
refute element_with_falsey_attributes.dataset.boolean[:num]
|
227
|
+
end
|
228
|
+
|
229
|
+
test "should return numeric values" do
|
230
|
+
data = {
|
231
|
+
"dataset" => {
|
232
|
+
"dataset" => {
|
233
|
+
"data-int" => "123",
|
234
|
+
"data-float" => "123.456",
|
235
|
+
"data-string" => "asdf"
|
236
|
+
}
|
237
|
+
}
|
238
|
+
}
|
239
|
+
|
240
|
+
element_with_numeric_attributes = StimulusReflex::Element.new(data)
|
241
|
+
|
242
|
+
assert_equal 123.0, element_with_numeric_attributes.numeric[:int]
|
243
|
+
assert_equal 123.456, element_with_numeric_attributes.numeric[:float]
|
244
|
+
assert_raises do
|
245
|
+
element_with_numeric_attributes.numeric[:string]
|
246
|
+
end
|
247
|
+
|
248
|
+
assert_equal 123.0, element_with_numeric_attributes.dataset.numeric[:int]
|
249
|
+
assert_equal 123.456, element_with_numeric_attributes.dataset.numeric[:float]
|
250
|
+
assert_raises do
|
251
|
+
element_with_numeric_attributes.dataset.numeric[:string]
|
252
|
+
end
|
253
|
+
end
|
254
|
+
end
|
@@ -25,6 +25,14 @@ class StimulusReflexGeneratorTest < Rails::Generators::TestCase
|
|
25
25
|
assert_file "app/reflexes/posts_reflex.rb", /PostsReflex/
|
26
26
|
end
|
27
27
|
|
28
|
+
test "skips stimulus controller and reflex if option provided" do
|
29
|
+
run_generator %w[users --skip-stimulus --skip-reflex --skip-app-controller --skip-app-reflex]
|
30
|
+
assert_no_file "app/javascript/controllers/application_controller.js"
|
31
|
+
assert_no_file "app/javascript/controllers/users_controller.js"
|
32
|
+
assert_no_file "app/reflexes/application_reflex.rb"
|
33
|
+
assert_no_file "app/reflexes/users_reflex.rb"
|
34
|
+
end
|
35
|
+
|
28
36
|
test "creates reflex with given reflex actions" do
|
29
37
|
run_generator %w[User update do_stuff DoMoreStuff]
|
30
38
|
assert_file "app/reflexes/user_reflex.rb" do |reflex|
|
data/test/reflex_test.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative "test_helper"
|
4
|
+
require "mocha/minitest"
|
4
5
|
|
5
6
|
class StimulusReflex::ReflexTest < ActionCable::Channel::TestCase
|
6
7
|
tests StimulusReflex::Channel
|
@@ -10,7 +11,7 @@ class StimulusReflex::ReflexTest < ActionCable::Channel::TestCase
|
|
10
11
|
def connection.env
|
11
12
|
@env ||= {}
|
12
13
|
end
|
13
|
-
@reflex = StimulusReflex::Reflex.new(subscribe, url: "https://test.stimulusreflex.com")
|
14
|
+
@reflex = StimulusReflex::Reflex.new(subscribe, url: "https://test.stimulusreflex.com", client_attributes: {reflex_id: "666"})
|
14
15
|
@reflex.controller_class.view_paths << Rails.root.join("test/views")
|
15
16
|
end
|
16
17
|
|
@@ -29,4 +30,14 @@ class StimulusReflex::ReflexTest < ActionCable::Channel::TestCase
|
|
29
30
|
test "dom_id" do
|
30
31
|
assert @reflex.dom_id(TestModel.new(id: 123)) == "#test_model_123"
|
31
32
|
end
|
33
|
+
|
34
|
+
test "params behave like ActionController::Parameters" do
|
35
|
+
ActionDispatch::Request.any_instance.stubs(:parameters).returns({"a" => "1", "b" => "2", "c" => "3"})
|
36
|
+
reflex = StimulusReflex::Reflex.new(subscribe, url: "https://test.stimulusreflex.com")
|
37
|
+
|
38
|
+
deleted_param = reflex.params.delete("a")
|
39
|
+
|
40
|
+
assert deleted_param == "1"
|
41
|
+
assert reflex.params.to_unsafe_h == {"b" => "2", "c" => "3"}
|
42
|
+
end
|
32
43
|
end
|
data/test/test_helper.rb
CHANGED
@@ -2,11 +2,14 @@
|
|
2
2
|
|
3
3
|
ENV["RAILS_ENV"] ||= "test"
|
4
4
|
|
5
|
-
require "
|
5
|
+
require "mocha"
|
6
6
|
require "rails"
|
7
7
|
require "active_model"
|
8
|
+
require "active_record"
|
8
9
|
require "action_controller"
|
10
|
+
require "minitest/mock"
|
9
11
|
require "pry"
|
12
|
+
|
10
13
|
require_relative "../lib/stimulus_reflex"
|
11
14
|
|
12
15
|
class TestApp < Rails::Application
|
@@ -38,6 +41,27 @@ end
|
|
38
41
|
class TestModel
|
39
42
|
include ActiveModel::Model
|
40
43
|
attr_accessor :id
|
44
|
+
def is_a?(klass)
|
45
|
+
klass == ActiveRecord::Base
|
46
|
+
end
|
47
|
+
|
48
|
+
def to_gid_param
|
49
|
+
"xxxyyyzzz"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
module ActionCable
|
54
|
+
module Channel
|
55
|
+
class ConnectionStub
|
56
|
+
def connection_identifier
|
57
|
+
connection_gid identifiers.map { |id| send(id.to_sym) if id }.compact
|
58
|
+
end
|
59
|
+
|
60
|
+
def connection_gid(ids)
|
61
|
+
ids.map { |o| o.respond_to?(:to_gid_param) ? o.to_gid_param : o.to_s }.sort.join(":")
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
41
65
|
end
|
42
66
|
|
43
67
|
StimulusReflex.configuration.parent_channel = "ActionCable::Channel::Base"
|
@@ -3,10 +3,17 @@
|
|
3
3
|
class ApplicationReflex < StimulusReflex::Reflex
|
4
4
|
# Put application-wide Reflex behavior and callbacks in this file.
|
5
5
|
#
|
6
|
-
#
|
6
|
+
# Learn more at: https://docs.stimulusreflex.com/rtfm/reflex-classes
|
7
7
|
#
|
8
|
-
#
|
8
|
+
# If your ActionCable connection is: `identified_by :current_user`
|
9
9
|
# delegate :current_user, to: :connection
|
10
10
|
#
|
11
|
-
#
|
11
|
+
# If you need to localize your Reflexes, you can set the I18n locale here:
|
12
|
+
#
|
13
|
+
# before_reflex do
|
14
|
+
# I18n.locale = :fr
|
15
|
+
# end
|
16
|
+
#
|
17
|
+
# For code examples, considerations and caveats, see:
|
18
|
+
# https://docs.stimulusreflex.com/rtfm/patterns#internationalization
|
12
19
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
class
|
3
|
+
class DemoReflex < ApplicationReflex
|
4
4
|
# Add Reflex methods in this file.
|
5
5
|
#
|
6
6
|
# All Reflex instances include CableReady::Broadcaster and expose the following properties:
|
@@ -17,12 +17,13 @@ class UserReflex < ApplicationReflex
|
|
17
17
|
# - unsigned - use an unsigned Global ID to map dataset attribute to a model eg. element.unsigned[:foo]
|
18
18
|
# - cable_ready - a special cable_ready that can broadcast to the current visitor (no brackets needed)
|
19
19
|
# - reflex_id - a UUIDv4 that uniquely identies each Reflex
|
20
|
+
# - tab_id - a UUIDv4 that uniquely identifies the browser tab
|
20
21
|
#
|
21
22
|
# Example:
|
22
23
|
#
|
23
24
|
# before_reflex do
|
24
25
|
# # throw :abort # this will prevent the Reflex from continuing
|
25
|
-
# # learn more about callbacks at https://docs.stimulusreflex.com/lifecycle
|
26
|
+
# # learn more about callbacks at https://docs.stimulusreflex.com/rtfm/lifecycle
|
26
27
|
# end
|
27
28
|
#
|
28
29
|
# def example(argument=true)
|
@@ -30,14 +31,5 @@ class UserReflex < ApplicationReflex
|
|
30
31
|
# # Any declared instance variables will be made available to the Rails controller and view.
|
31
32
|
# end
|
32
33
|
#
|
33
|
-
# Learn more at: https://docs.stimulusreflex.com/
|
34
|
-
|
35
|
-
def update
|
36
|
-
end
|
37
|
-
|
38
|
-
def do_stuff
|
39
|
-
end
|
40
|
-
|
41
|
-
def do_more_stuff
|
42
|
-
end
|
34
|
+
# Learn more at: https://docs.stimulusreflex.com/rtfm/reflex-classes
|
43
35
|
end
|
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
|
+
version: 3.5.0.pre3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Hopkins
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-01
|
11
|
+
date: 2021-10-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -70,16 +70,16 @@ 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
|
-
version:
|
75
|
+
version: 5.0.0.pre4
|
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
|
-
version:
|
82
|
+
version: 5.0.0.pre4
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: bundler
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,7 +137,7 @@ dependencies:
|
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
140
|
+
name: mocha
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - ">="
|
@@ -150,7 +150,21 @@ dependencies:
|
|
150
150
|
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
|
-
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: standardrb
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '1.0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '1.0'
|
167
|
+
description:
|
154
168
|
email:
|
155
169
|
- natehop@gmail.com
|
156
170
|
executables: []
|
@@ -161,6 +175,7 @@ files:
|
|
161
175
|
- CODE_OF_CONDUCT.md
|
162
176
|
- Gemfile
|
163
177
|
- Gemfile.lock
|
178
|
+
- LATEST
|
164
179
|
- LICENSE.txt
|
165
180
|
- README.md
|
166
181
|
- Rakefile
|
@@ -171,7 +186,7 @@ files:
|
|
171
186
|
- bin/setup
|
172
187
|
- bin/standardize
|
173
188
|
- lib/generators/USAGE
|
174
|
-
- lib/generators/stimulus_reflex/
|
189
|
+
- lib/generators/stimulus_reflex/initializer_generator.rb
|
175
190
|
- lib/generators/stimulus_reflex/stimulus_reflex_generator.rb
|
176
191
|
- lib/generators/stimulus_reflex/templates/app/javascript/controllers/%file_name%_controller.js.tt
|
177
192
|
- lib/generators/stimulus_reflex/templates/app/javascript/controllers/application_controller.js.tt
|
@@ -183,44 +198,55 @@ files:
|
|
183
198
|
- lib/stimulus_reflex/broadcasters/nothing_broadcaster.rb
|
184
199
|
- lib/stimulus_reflex/broadcasters/page_broadcaster.rb
|
185
200
|
- lib/stimulus_reflex/broadcasters/selector_broadcaster.rb
|
201
|
+
- lib/stimulus_reflex/broadcasters/update.rb
|
186
202
|
- lib/stimulus_reflex/cable_ready_channels.rb
|
187
203
|
- lib/stimulus_reflex/callbacks.rb
|
204
|
+
- lib/stimulus_reflex/concern_enhancer.rb
|
188
205
|
- lib/stimulus_reflex/configuration.rb
|
206
|
+
- lib/stimulus_reflex/dataset.rb
|
189
207
|
- lib/stimulus_reflex/element.rb
|
190
|
-
- lib/stimulus_reflex/
|
208
|
+
- lib/stimulus_reflex/policies/reflex_invocation_policy.rb
|
191
209
|
- lib/stimulus_reflex/reflex.rb
|
192
|
-
- lib/stimulus_reflex/
|
210
|
+
- lib/stimulus_reflex/reflex_data.rb
|
211
|
+
- lib/stimulus_reflex/reflex_factory.rb
|
212
|
+
- lib/stimulus_reflex/request_parameters.rb
|
213
|
+
- lib/stimulus_reflex/utils/attribute_builder.rb
|
193
214
|
- lib/stimulus_reflex/utils/colorize.rb
|
215
|
+
- lib/stimulus_reflex/utils/logger.rb
|
216
|
+
- lib/stimulus_reflex/utils/sanity_checker.rb
|
194
217
|
- lib/stimulus_reflex/version.rb
|
195
218
|
- lib/tasks/stimulus_reflex/install.rake
|
196
|
-
- package.json
|
197
|
-
- stimulus_reflex.gemspec
|
198
|
-
- tags
|
199
219
|
- test/broadcasters/broadcaster_test.rb
|
200
220
|
- test/broadcasters/broadcaster_test_case.rb
|
201
221
|
- test/broadcasters/nothing_broadcaster_test.rb
|
202
222
|
- test/broadcasters/page_broadcaster_test.rb
|
203
223
|
- test/broadcasters/selector_broadcaster_test.rb
|
224
|
+
- test/callbacks_test.rb
|
225
|
+
- test/concern_enhancer_test.rb
|
226
|
+
- test/element_test.rb
|
204
227
|
- test/generators/stimulus_reflex_generator_test.rb
|
205
228
|
- test/reflex_test.rb
|
206
229
|
- test/test_helper.rb
|
207
230
|
- test/tmp/app/reflexes/application_reflex.rb
|
208
|
-
- test/tmp/app/reflexes/
|
209
|
-
|
210
|
-
homepage: https://github.com/hopsoft/stimulus_reflex
|
231
|
+
- test/tmp/app/reflexes/demo_reflex.rb
|
232
|
+
homepage: https://github.com/stimulusreflex/stimulus_reflex
|
211
233
|
licenses:
|
212
234
|
- MIT
|
213
235
|
metadata:
|
214
|
-
bug_tracker_uri: https://github.com/
|
215
|
-
changelog_uri: https://github.com/
|
236
|
+
bug_tracker_uri: https://github.com/stimulusreflex/stimulus_reflex/issues
|
237
|
+
changelog_uri: https://github.com/stimulusreflex/stimulus_reflex/CHANGELOG.md
|
216
238
|
documentation_uri: https://docs.stimulusreflex.com
|
217
|
-
homepage_uri: https://github.com/
|
218
|
-
source_code_uri: https://github.com/
|
219
|
-
post_install_message:
|
220
|
-
|
221
|
-
|
239
|
+
homepage_uri: https://github.com/stimulusreflex/stimulus_reflex
|
240
|
+
source_code_uri: https://github.com/stimulusreflex/stimulus_reflex
|
241
|
+
post_install_message: |+
|
242
|
+
Finish installation by running:
|
243
|
+
|
244
|
+
rake stimulus_reflex:install
|
245
|
+
|
246
|
+
Get support for StimulusReflex and CableReady on Discord:
|
247
|
+
|
248
|
+
https://discord.gg/stimulus-reflex
|
222
249
|
|
223
|
-
See https://www.npmjs.com/package/stimulus_reflex
|
224
250
|
rdoc_options: []
|
225
251
|
require_paths:
|
226
252
|
- lib
|
@@ -231,22 +257,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
231
257
|
version: '0'
|
232
258
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
233
259
|
requirements:
|
234
|
-
- - "
|
260
|
+
- - ">"
|
235
261
|
- !ruby/object:Gem::Version
|
236
|
-
version:
|
262
|
+
version: 1.3.1
|
237
263
|
requirements: []
|
238
|
-
rubygems_version: 3.1.
|
239
|
-
signing_key:
|
264
|
+
rubygems_version: 3.1.6
|
265
|
+
signing_key:
|
240
266
|
specification_version: 4
|
241
267
|
summary: Build reactive applications with the Rails tooling you already know and love.
|
242
268
|
test_files:
|
243
|
-
- test/reflex_test.rb
|
244
|
-
- test/test_helper.rb
|
245
269
|
- test/generators/stimulus_reflex_generator_test.rb
|
246
|
-
- test/
|
247
|
-
- test/tmp/app/reflexes/user_reflex.rb
|
248
|
-
- test/broadcasters/broadcaster_test.rb
|
249
|
-
- test/broadcasters/selector_broadcaster_test.rb
|
270
|
+
- test/element_test.rb
|
250
271
|
- test/broadcasters/page_broadcaster_test.rb
|
251
272
|
- test/broadcasters/broadcaster_test_case.rb
|
273
|
+
- test/broadcasters/broadcaster_test.rb
|
274
|
+
- test/broadcasters/selector_broadcaster_test.rb
|
252
275
|
- test/broadcasters/nothing_broadcaster_test.rb
|
276
|
+
- test/reflex_test.rb
|
277
|
+
- test/test_helper.rb
|
278
|
+
- test/callbacks_test.rb
|
279
|
+
- test/tmp/app/reflexes/demo_reflex.rb
|
280
|
+
- test/tmp/app/reflexes/application_reflex.rb
|
281
|
+
- test/concern_enhancer_test.rb
|