turbo_boost-commands 0.0.5 → 0.0.7
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 turbo_boost-commands might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/turbo_boost/commands/command.rb +28 -13
- data/lib/turbo_boost/commands/runner.rb +4 -1
- data/lib/turbo_boost/commands/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc51cfaa7ad5b91259e3b3ff2c9f06b293bd189e0fbbbacf3495da438ff26dbe
|
4
|
+
data.tar.gz: 28faca7c348832170506a3dae946fb98cbc34d7dbca64670be1773e0dc427f88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52d7e7b94f652d985411c687513f0e64f61c99279edbdb851653404ad1fa7fef91d1bf3e9db7e12813035b4d7eb4298945117cff96068af03aa1723dcdde19ed
|
7
|
+
data.tar.gz: c7ec6d0bb100429dcadb3bc31a464312fbfa632b12bc5f7e0a949c45364f15069ad7cbea605d225a0a9450e762d06bffec71c898449c0c145d3340707e9d20f3
|
data/README.md
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
</h1>
|
9
9
|
<p align="center">
|
10
10
|
<a href="http://blog.codinghorror.com/the-best-code-is-no-code-at-all/">
|
11
|
-
<img alt="Lines of Code" src="https://img.shields.io/badge/loc-
|
11
|
+
<img alt="Lines of Code" src="https://img.shields.io/badge/loc-1493-47d299.svg" />
|
12
12
|
</a>
|
13
13
|
<a href="https://codeclimate.com/github/hopsoft/turbo_boost-commands/maintainability">
|
14
14
|
<img src="https://api.codeclimate.com/v1/badges/fe1162a742fe83a4fdfd/maintainability" />
|
@@ -9,18 +9,20 @@ require_relative "command_callbacks"
|
|
9
9
|
# Commands are executed via a before_action in the Rails controller lifecycle.
|
10
10
|
# They have access to the following methods and properties.
|
11
11
|
#
|
12
|
-
# * controller
|
13
|
-
# *
|
14
|
-
# *
|
15
|
-
# *
|
16
|
-
# *
|
17
|
-
# *
|
18
|
-
# *
|
19
|
-
# *
|
20
|
-
# *
|
21
|
-
# *
|
22
|
-
# *
|
23
|
-
# *
|
12
|
+
# * controller ...................... The Rails controller processing the HTTP request
|
13
|
+
# * convert_to_instance_variables ... Converts a Hash to instance variables
|
14
|
+
# * css_id_selector ................. Returns a CSS selector for an element `id` i.e. prefixes with `#`
|
15
|
+
# * dom_id .......................... The Rails dom_id helper
|
16
|
+
# * dom_id_selector ................. Returns a CSS selector for a dom_id
|
17
|
+
# * element ......................... A struct that represents the DOM element that triggered the command
|
18
|
+
# * morph ........................... Appends a Turbo Stream to morph a DOM element
|
19
|
+
# * params .......................... Commands specific params (frame_id, element, etc.)
|
20
|
+
# * render .......................... Renders Rails templates, partials, etc. (doesn't halt controller request handling)
|
21
|
+
# * renderer ........................ An ActionController::Renderer
|
22
|
+
# * state ........................... An object that stores ephemeral `state`
|
23
|
+
# * transfer_instance_variables ..... Transfers all instance variables to another object
|
24
|
+
# * turbo_stream .................... A Turbo Stream TagBuilder
|
25
|
+
# * turbo_streams ................... A list of Turbo Streams to append to the response (also aliased as streams)
|
24
26
|
#
|
25
27
|
# They also have access to the following class methods:
|
26
28
|
#
|
@@ -90,11 +92,24 @@ class TurboBoost::Commands::Command
|
|
90
92
|
@turbo_streams = Set.new
|
91
93
|
end
|
92
94
|
|
93
|
-
#
|
95
|
+
# Abstract `perform` method, overridde in subclassed commands
|
94
96
|
def perform
|
95
97
|
raise NotImplementedError, "#{self.class.name} must implement the `perform` method!"
|
96
98
|
end
|
97
99
|
|
100
|
+
# Converts a Hash to instance variables
|
101
|
+
def convert_to_instance_variables(hash = {})
|
102
|
+
return unless hash.present?
|
103
|
+
hash.each { |key, value| instance_variable_set :"@#{key}", value }
|
104
|
+
end
|
105
|
+
|
106
|
+
# Transfers all instance variables to another object
|
107
|
+
def transfer_instance_variables(object)
|
108
|
+
instance_variables.each do |name|
|
109
|
+
object.instance_variable_set name, instance_variable_get(name)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
98
113
|
def dom_id_selector(...)
|
99
114
|
css_id_selector dom_id(...)
|
100
115
|
end
|
@@ -166,7 +166,10 @@ class TurboBoost::Commands::Runner
|
|
166
166
|
|
167
167
|
def handle_command_event(event, error: nil)
|
168
168
|
case event
|
169
|
-
when :aborted
|
169
|
+
when :aborted
|
170
|
+
prevent_controller_action error: error
|
171
|
+
append_streams_to_response_body
|
172
|
+
when :errored then prevent_controller_action(error: error)
|
170
173
|
when :performed then prevent_controller_action if should_prevent_controller_action?
|
171
174
|
end
|
172
175
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turbo_boost-commands
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nate Hopkins (hopsoft)
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-01-
|
11
|
+
date: 2023-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|