stimulus_reflex 0.1.10 → 0.1.12

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: 0ecf12b025befc1daf36b2c40621fe168307c61af7be5d73d09a81ce4750c721
4
- data.tar.gz: b2ca1fdc3787436bf42d47c47195937f7af8ef3b7635c4a99e6e9ff0182e8663
3
+ metadata.gz: bc25845c4e59c7277edc3b5c7fda8d1ff791b73236b7c30afb30fc479b4c9afd
4
+ data.tar.gz: 493422416a3d5a93bc14c9221a14f69c69e5ce4308bb0d921c7340ab39bcd302
5
5
  SHA512:
6
- metadata.gz: 6c41e8181d20476396b9bcc9ec3400cf3a09256f67f97ca74f8989fc906e874ae1dbfa7d94e6307bb2cb09bbf51c22f4800d2825a7e62bada82be903d218de34
7
- data.tar.gz: bad686aba5ba1f2f9bd9cffd3e2f3d24a9c9ba25dab1ffa7506ac0e56cd4c4fa0092b3d2c48ac0aef1e92de76033b321358c27fcc808a684eeae74b19805e20b
6
+ metadata.gz: 58b5511c7a3113162267dceb406ef42b159773ffacbccb2aca08aa12f090cd0623a050982d0b688257648ef2a2d261ab48f1ffeda2cf6b958b960300b7969822
7
+ data.tar.gz: 8359589be188bc31e3b988a385de743efec45b732aaba7e0ba31c9ffd82c034a879ab2127fc255583efd7fbf88701f50066e54b43f22966945ef256f365ead77
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- stimulus_reflex (0.1.10)
4
+ stimulus_reflex (0.1.12)
5
5
  actioncable (>= 5.2.1)
6
6
  actionpack (>= 5.2.1)
7
7
  cable_ready (>= 2.0.7)
@@ -36,12 +36,12 @@ GEM
36
36
  builder (3.2.3)
37
37
  cable_ready (2.0.7)
38
38
  activesupport (>= 5.0.0)
39
- concurrent-ruby (1.0.5)
39
+ concurrent-ruby (1.1.0)
40
40
  crass (1.0.4)
41
41
  erubi (1.7.1)
42
42
  i18n (1.1.1)
43
43
  concurrent-ruby (~> 1.0)
44
- loofah (2.2.2)
44
+ loofah (2.2.3)
45
45
  crass (~> 1.0.2)
46
46
  nokogiri (>= 1.5.9)
47
47
  mini_portile2 (2.3.0)
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![Lines of Code](http://img.shields.io/badge/lines_of_code-136-brightgreen.svg?style=flat)](http://blog.codinghorror.com/the-best-code-is-no-code-at-all/)
1
+ [![Lines of Code](http://img.shields.io/badge/lines_of_code-142-brightgreen.svg?style=flat)](http://blog.codinghorror.com/the-best-code-is-no-code-at-all/)
2
2
  [![Maintainability](https://img.shields.io/codeclimate/maintainability/hopsoft/stimulus_reflex.svg)](https://codeclimate.com/github/hopsoft/stimulus_reflex)
3
3
 
4
4
  # StimulusReflex
@@ -96,7 +96,7 @@ end
96
96
  ## JavaScript Development
97
97
 
98
98
  The JavaScript source is located in `app/assets/javascripts/stimulus_reflex/src`
99
- & transpiles to `app/assets/javascripts/stimulus_reflex/stimulus_reflex.js` via Webpack.
99
+ & transpiles to `app/assets/javascripts/stimulus_reflex.js` via Webpack.
100
100
 
101
101
  ```sh
102
102
  # build the javascript
@@ -29,12 +29,17 @@ class StimulusReflex::Channel < ActionCable::Channel::Base
29
29
  arguments = data["args"] || []
30
30
 
31
31
  begin
32
- stimulus_controller = stimulus_controller_name.constantize.new(self)
32
+ stimulus_controller = stimulus_controller_name.constantize.new(self, url: url)
33
33
  delegate_call_to_stimulus_controller stimulus_controller, method_name, arguments
34
- render_page_and_broadcast_morph url, stimulus_controller
35
34
  rescue StandardError => invoke_error
36
35
  logger.error "StimulusReflex::Channel Failed to invoke #{target}! #{url} #{invoke_error}"
37
36
  end
37
+
38
+ begin
39
+ render_page_and_broadcast_morph url, stimulus_controller
40
+ rescue StandardError => render_error
41
+ logger.error "StimulusReflex::Channel Failed to rerender #{url} #{render_error}"
42
+ end
38
43
  end
39
44
  end
40
45
 
@@ -68,12 +73,18 @@ class StimulusReflex::Channel < ActionCable::Channel::Base
68
73
  controller.instance_variable_set name, stimulus_controller.instance_variable_get(name)
69
74
  end
70
75
 
76
+ query_hash = Rack::Utils.parse_nested_query(uri.query)
71
77
  env = {
72
- Rack::REQUEST_PATH => uri.path,
73
- Rack::QUERY_STRING => uri.query,
78
+ "action_dispatch.request.path_parameters" => url_params,
79
+ "action_dispatch.request.query_parameters" => query_hash,
80
+ "rack.request.query_hash" => query_hash,
81
+ "rack.request.query_string" => uri.query,
74
82
  Rack::PATH_INFO => "",
83
+ Rack::QUERY_STRING => uri.query,
84
+ Rack::REQUEST_PATH => uri.path,
75
85
  Rack::SCRIPT_NAME => "",
76
86
  }
87
+
77
88
  request = ActionDispatch::Request.new(connection.env.merge(env))
78
89
  controller.request = request
79
90
  controller.response = ActionDispatch::Response.new
@@ -1,11 +1,12 @@
1
1
  class StimulusReflex::Controller
2
- attr_reader :channel
2
+ attr_reader :channel, :url
3
3
 
4
4
  delegate :connection, to: :channel
5
5
  delegate :session, to: :request
6
6
 
7
- def initialize(channel)
7
+ def initialize(channel, url: nil)
8
8
  @channel = channel
9
+ @url = url
9
10
  end
10
11
 
11
12
  def request
@@ -1,3 +1,3 @@
1
1
  module StimulusReflex
2
- VERSION = "0.1.10"
2
+ VERSION = "0.1.12"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stimulus_reflex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Hopkins
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-10-26 00:00:00.000000000 Z
12
+ date: 2018-11-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack