stimulus_reflex 3.3.0.pre5 → 3.3.0.pre6

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: cc5d928ba770cb4cb0e167431b216953d3d024f60797ceeba8cb1e941c321f2f
4
- data.tar.gz: 21ecfef7c3b45524547905728b8dffe13317f76e07685f1c41e9eb59ad20f1aa
3
+ metadata.gz: 7c8542f86c6a95d6528f7c9838c8ca9084c7ebb938e0d1271837e3dfd1d34219
4
+ data.tar.gz: 2881c8a442b7854dda4c6ac1625d9b8466997c5175bcc4ee319aa0bfb5a95153
5
5
  SHA512:
6
- metadata.gz: d89100f1ae64da55040f3ed0435832f593b67ff78631def4bfbf2a02c6eb577b6803ad9ae84760d123e2b5e85a9e52a1d1923a5949b4c76ccdcb82489671d0e4
7
- data.tar.gz: 7d1c3c338457b2f7c8895726cc381c273aec9c7b65158409dc6e2d7d146cd8d1c51102783dda302e241a207a8c09fd0ebd92b850d96f3bbf0c2e884700bf55e7
6
+ metadata.gz: 9efb56d48030a6b2264f9db47330baee93d47407b90e021c49a77ff6339d382a767089ec02b6c2adad40ce965332fe1457e8e30dadfdf8f38e9a9c15d8f16d58
7
+ data.tar.gz: 52d7ee2200946cfec45758f224acbb354e2aee5eab4ad4a7cddcdcbc3d4ba34afba461876c63bfe8dffaabde2f9527f5093ad9560b789158510b8acf74b7242a
@@ -2,7 +2,27 @@
2
2
 
3
3
  ## [Unreleased](https://github.com/hopsoft/stimulus_reflex/tree/HEAD)
4
4
 
5
- [Full Changelog](https://github.com/hopsoft/stimulus_reflex/compare/v3.3.0.pre4...HEAD)
5
+ [Full Changelog](https://github.com/hopsoft/stimulus_reflex/compare/v3.3.0.pre5...HEAD)
6
+
7
+ **Implemented enhancements:**
8
+
9
+ - Support for token-based authentication [\#243](https://github.com/hopsoft/stimulus_reflex/pull/243) ([leastbad](https://github.com/leastbad))
10
+
11
+ **Closed issues:**
12
+
13
+ - Authorization [\#292](https://github.com/hopsoft/stimulus_reflex/issues/292)
14
+ - Params incorrect for form submitted for nested resource [\#290](https://github.com/hopsoft/stimulus_reflex/issues/290)
15
+ - Use set I18n.locale in Reflexes with Selector Morphs [\#280](https://github.com/hopsoft/stimulus_reflex/issues/280)
16
+
17
+ **Merged pull requests:**
18
+
19
+ - fixes and tweaks to client logging subsystem [\#313](https://github.com/hopsoft/stimulus_reflex/pull/313) ([leastbad](https://github.com/leastbad))
20
+ - add ready event after setupDeclarativeReflexes [\#312](https://github.com/hopsoft/stimulus_reflex/pull/312) ([leastbad](https://github.com/leastbad))
21
+ - Refactor sanity checks on boot [\#311](https://github.com/hopsoft/stimulus_reflex/pull/311) ([excid3](https://github.com/excid3))
22
+
23
+ ## [v3.3.0.pre5](https://github.com/hopsoft/stimulus_reflex/tree/v3.3.0.pre5) (2020-09-18)
24
+
25
+ [Full Changelog](https://github.com/hopsoft/stimulus_reflex/compare/v3.3.0.pre4...v3.3.0.pre5)
6
26
 
7
27
  **Implemented enhancements:**
8
28
 
@@ -486,7 +506,9 @@
486
506
  **Implemented enhancements:**
487
507
 
488
508
  - Custom Stimulus schema breaks Reflex [\#91](https://github.com/hopsoft/stimulus_reflex/issues/91)
509
+ - Add schema support [\#94](https://github.com/hopsoft/stimulus_reflex/pull/94) ([hopsoft](https://github.com/hopsoft))
489
510
  - inherit stimulus schema [\#92](https://github.com/hopsoft/stimulus_reflex/pull/92) ([nickyvanurk](https://github.com/nickyvanurk))
511
+ - Single source of truth [\#76](https://github.com/hopsoft/stimulus_reflex/pull/76) ([leastbad](https://github.com/leastbad))
490
512
 
491
513
  **Fixed bugs:**
492
514
 
@@ -505,7 +527,6 @@
505
527
 
506
528
  **Implemented enhancements:**
507
529
 
508
- - Single source of truth [\#76](https://github.com/hopsoft/stimulus_reflex/pull/76) ([leastbad](https://github.com/leastbad))
509
530
  - Add CodeFund sponsorship [\#75](https://github.com/hopsoft/stimulus_reflex/pull/75) ([coderberry](https://github.com/coderberry))
510
531
 
511
532
  **Fixed bugs:**
@@ -519,11 +540,9 @@
519
540
  **Implemented enhancements:**
520
541
 
521
542
  - Create Rails generators [\#3](https://github.com/hopsoft/stimulus_reflex/issues/3)
522
- - Add schema support [\#94](https://github.com/hopsoft/stimulus_reflex/pull/94) ([hopsoft](https://github.com/hopsoft))
523
543
  - Update installer [\#71](https://github.com/hopsoft/stimulus_reflex/pull/71) ([hopsoft](https://github.com/hopsoft))
524
544
  - Tweak generators [\#69](https://github.com/hopsoft/stimulus_reflex/pull/69) ([hopsoft](https://github.com/hopsoft))
525
545
  - add generators [\#67](https://github.com/hopsoft/stimulus_reflex/pull/67) ([andrewmcodes](https://github.com/andrewmcodes))
526
- - Add reflex name to the lifecycle args [\#62](https://github.com/hopsoft/stimulus_reflex/pull/62) ([hopsoft](https://github.com/hopsoft))
527
546
 
528
547
  **Fixed bugs:**
529
548
 
@@ -552,6 +571,7 @@
552
571
  - Client side call-backs? [\#34](https://github.com/hopsoft/stimulus_reflex/issues/34)
553
572
  - Scoped register\(\)? [\#26](https://github.com/hopsoft/stimulus_reflex/issues/26)
554
573
  - Add guard to verify same URL prior to morph [\#63](https://github.com/hopsoft/stimulus_reflex/pull/63) ([hopsoft](https://github.com/hopsoft))
574
+ - Add reflex name to the lifecycle args [\#62](https://github.com/hopsoft/stimulus_reflex/pull/62) ([hopsoft](https://github.com/hopsoft))
555
575
  - Refactor some helper methods out of main file [\#61](https://github.com/hopsoft/stimulus_reflex/pull/61) ([hopsoft](https://github.com/hopsoft))
556
576
  - Documentation update [\#58](https://github.com/hopsoft/stimulus_reflex/pull/58) ([leastbad](https://github.com/leastbad))
557
577
  - \# Support for data-reflex-permanent [\#57](https://github.com/hopsoft/stimulus_reflex/pull/57) ([hopsoft](https://github.com/hopsoft))
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- stimulus_reflex (3.3.0.pre4)
4
+ stimulus_reflex (3.3.0.pre5)
5
5
  cable_ready (>= 4.1.2)
6
6
  nokogiri
7
7
  rack
@@ -12,6 +12,7 @@ require "stimulus_reflex/version"
12
12
  require "stimulus_reflex/reflex"
13
13
  require "stimulus_reflex/element"
14
14
  require "stimulus_reflex/channel"
15
+ require "stimulus_reflex/sanity_checker"
15
16
  require "stimulus_reflex/broadcasters/broadcaster"
16
17
  require "stimulus_reflex/broadcasters/nothing_broadcaster"
17
18
  require "stimulus_reflex/broadcasters/page_broadcaster"
@@ -20,68 +21,8 @@ require "generators/stimulus_reflex_generator"
20
21
 
21
22
  module StimulusReflex
22
23
  class Engine < Rails::Engine
23
- NODE_VERSION_FORMAT = /(\d\.\d\.\d.*):/
24
- JSON_VERSION_FORMAT = /(\d\.\d\.\d.*)\"/
25
-
26
- initializer "stimulus_reflex.verify_caching_enabled" do
27
- unless caching_enabled?
28
- puts <<~WARN
29
- Stimulus Reflex requires caching to be enabled. Caching allows the session to be modified during ActionCable requests.
30
- To enable caching in development, run:
31
-
32
- rails dev:cache
33
- WARN
34
- exit
35
- end
36
- end
37
-
38
- initializer "stimulus_reflex.verify_npm_package_version" do
39
- unless node_version_matches?
40
- puts <<~WARN
41
- The Stimulus Reflex javascript package version (#{node_package_version}) does not match the Rubygem version (#{gem_version}).
42
- To update the Stimulus Reflex node module:
43
-
44
- yarn upgrade stimulus_reflex@#{gem_version}
45
- WARN
46
- exit
47
- end
48
- end
49
-
50
- private
51
-
52
- def caching_enabled?
53
- Rails.application.config.action_controller.perform_caching &&
54
- Rails.application.config.cache_store != :null_store
55
- end
56
-
57
- def node_version_matches?
58
- node_package_version == gem_version
59
- end
60
-
61
- def gem_version
62
- StimulusReflex::VERSION.gsub(".pre", "-pre")
63
- end
64
-
65
- def node_package_version
66
- match = File.foreach(yarn_lock_path).grep(/^stimulus_reflex/)
67
- return match.first[NODE_VERSION_FORMAT, 1] if match.present?
68
-
69
- match = File.foreach(yarn_link_path).grep(/version/)
70
- return match.first[JSON_VERSION_FORMAT, 1] if match.present?
71
-
72
- puts <<~WARN
73
- Can't locate the stimulus_reflex NPM package.
74
- Either add it to your package.json as a dependency or use "yarn link stimulus_reflex" if you are doing development.
75
- WARN
76
- exit
77
- end
78
-
79
- def yarn_lock_path
80
- Rails.root.join("yarn.lock")
81
- end
82
-
83
- def yarn_link_path
84
- Rails.root.join("node_modules", "stimulus_reflex", "package.json")
24
+ initializer "stimulus_reflex.sanity_check" do
25
+ SanityChecker.check!
85
26
  end
86
27
  end
87
28
  end
@@ -18,7 +18,7 @@ module StimulusReflex
18
18
  children_only: true,
19
19
  permanent_attribute_name: permanent_attribute_name,
20
20
  stimulus_reflex: data.merge({
21
- broadast_type: to_sym
21
+ broadcaster: to_sym
22
22
  })
23
23
  )
24
24
  end
@@ -17,7 +17,7 @@ module StimulusReflex
17
17
  children_only: true,
18
18
  permanent_attribute_name: permanent_attribute_name,
19
19
  stimulus_reflex: data.merge({
20
- broadast_type: to_sym
20
+ broadcaster: to_sym
21
21
  })
22
22
  )
23
23
  else
@@ -25,7 +25,7 @@ module StimulusReflex
25
25
  selector: selector,
26
26
  html: fragment.to_html,
27
27
  stimulus_reflex: data.merge({
28
- broadast_type: to_sym
28
+ broadcaster: to_sym
29
29
  })
30
30
  )
31
31
  end
@@ -1,6 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class StimulusReflex::Channel < ActionCable::Channel::Base
3
+ module ApplicationCable
4
+ class Channel < ActionCable::Channel::Base
5
+ def initialize(connection, identifier, params = {})
6
+ super
7
+ application_channel = Rails.root.join("app", "channels", "application_cable", "channel.rb")
8
+ require application_channel if File.exist?(application_channel)
9
+ end
10
+ end
11
+ end
12
+
13
+ class StimulusReflex::Channel < ApplicationCable::Channel
4
14
  def stream_name
5
15
  ids = connection.identifiers.map { |identifier| send(identifier).try(:id) || send(identifier) }
6
16
  [
@@ -10,6 +20,7 @@ class StimulusReflex::Channel < ActionCable::Channel::Base
10
20
  end
11
21
 
12
22
  def subscribed
23
+ super
13
24
  stream_from stream_name
14
25
  end
15
26
 
@@ -0,0 +1,80 @@
1
+ # frozen_string_literal: true
2
+
3
+ class StimulusReflex::SanityChecker
4
+ NODE_VERSION_FORMAT = /(\d+\.\d+\.\d+.*):/
5
+ JSON_VERSION_FORMAT = /(\d+\.\d+\.\d+.*)"/
6
+
7
+ def self.check!
8
+ instance = new
9
+ instance.check_caching_enabled
10
+ instance.check_javascript_package_version
11
+ end
12
+
13
+ def check_caching_enabled
14
+ unless caching_enabled?
15
+ puts <<~WARN
16
+ WARNING: Stimulus Reflex requires caching to be enabled. Caching allows the session to be modified during ActionCable requests.
17
+ To enable caching in development, run:
18
+ rails dev:cache
19
+ WARN
20
+ end
21
+ end
22
+
23
+ def check_javascript_package_version
24
+ if javascript_package_version.nil?
25
+ puts <<~WARN
26
+ WARNING: Can't locate the stimulus_reflex NPM package.
27
+ Either add it to your package.json as a dependency or use "yarn link stimulus_reflex" if you are doing development.
28
+ WARN
29
+ end
30
+
31
+ unless javascript_version_matches?
32
+ puts <<~WARN
33
+ WARNING: The Stimulus Reflex javascript package version (#{javascript_package_version}) does not match the Rubygem version (#{gem_version}).
34
+ To update the Stimulus Reflex npm package:
35
+ yarn upgrade stimulus_reflex@#{gem_version}
36
+ WARN
37
+ end
38
+ end
39
+
40
+ private
41
+
42
+ def caching_enabled?
43
+ Rails.application.config.action_controller.perform_caching &&
44
+ Rails.application.config.cache_store != :null_store
45
+ end
46
+
47
+ def javascript_version_matches?
48
+ javascript_package_version == gem_version
49
+ end
50
+
51
+ def gem_version
52
+ @_gem_version ||= StimulusReflex::VERSION.gsub(".pre", "-pre")
53
+ end
54
+
55
+ def javascript_package_version
56
+ return @_js_version if defined?(@_js_version)
57
+ @_js_version = find_javascript_package_version
58
+ end
59
+
60
+ def find_javascript_package_version
61
+ if (match = search_file(yarn_lock_path, regex: /^stimulus_reflex/))
62
+ match[NODE_VERSION_FORMAT, 1]
63
+ elsif (match = search_file(yarn_link_path, regex: /version/))
64
+ match[JSON_VERSION_FORMAT, 1]
65
+ end
66
+ end
67
+
68
+ def search_file(path, regex:)
69
+ return unless File.exist?(path)
70
+ File.foreach(path).grep(regex).first
71
+ end
72
+
73
+ def yarn_lock_path
74
+ Rails.root.join("yarn.lock")
75
+ end
76
+
77
+ def yarn_link_path
78
+ Rails.root.join("node_modules", "stimulus_reflex", "package.json")
79
+ end
80
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module StimulusReflex
4
- VERSION = "3.3.0.pre5"
4
+ VERSION = "3.3.0.pre6"
5
5
  end
@@ -11,7 +11,7 @@ class StimulusReflexGeneratorTest < Rails::Generators::TestCase
11
11
  test "creates singular named controller and reflex files" do
12
12
  run_generator %w[demo]
13
13
  assert_file "app/javascript/controllers/application_controller.js"
14
- assert_file "app/javascript/controllers/demo_controller.js", /DemoReflex/
14
+ assert_file "app/javascript/controllers/demo_controller.js", /Demo/
15
15
  assert_file "app/reflexes/application_reflex.rb"
16
16
  assert_file "app/reflexes/demo_reflex.rb", /DemoReflex/
17
17
  end
@@ -19,7 +19,7 @@ class StimulusReflexGeneratorTest < Rails::Generators::TestCase
19
19
  test "creates plural named controller and reflex files" do
20
20
  run_generator %w[posts]
21
21
  assert_file "app/javascript/controllers/application_controller.js"
22
- assert_file "app/javascript/controllers/posts_controller.js", /PostsReflex/
22
+ assert_file "app/javascript/controllers/posts_controller.js", /Posts/
23
23
  assert_file "app/reflexes/application_reflex.rb"
24
24
  assert_file "app/reflexes/posts_reflex.rb", /PostsReflex/
25
25
  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.3.0.pre5
4
+ version: 3.3.0.pre6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Hopkins
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-18 00:00:00.000000000 Z
11
+ date: 2020-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -183,6 +183,7 @@ files:
183
183
  - lib/stimulus_reflex/channel.rb
184
184
  - lib/stimulus_reflex/element.rb
185
185
  - lib/stimulus_reflex/reflex.rb
186
+ - lib/stimulus_reflex/sanity_checker.rb
186
187
  - lib/stimulus_reflex/version.rb
187
188
  - lib/tasks/stimulus_reflex/install.rake
188
189
  - test/generators/stimulus_reflex_generator_test.rb