turbo_power 0.3.1 → 0.4.0

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: 2c3c5109aee34813e0acbc4bdd7ba21524ca309276e560ad89ee24fce35fd07d
4
- data.tar.gz: 5e1c135349707f5b7e6652c338e584f2429c2a83eca55bda25e2dadd06b2dd83
3
+ metadata.gz: 169485f07b14d287277676057c5fbc40f0d2a3f99ea935ac68205e19005dca7a
4
+ data.tar.gz: ece7bbaabd4b88f0c4eafe98bd1f9e107f593369c121de4e3b153208fea7bff9
5
5
  SHA512:
6
- metadata.gz: 2fba91776a38ef860065753b6d47e7f9cf8eb565052caf8a431120c6de3626949c7666cea47e5781663fac9faa622815423fbd139b440537fd6129e5e1ff642a
7
- data.tar.gz: 139289591c37ca8707dcb090a035e383732e5d0e18d1570f7b78288fcb32d31f06b3e85c22b02c4575899aaa591b9e465b4f072139a4784b0d82c6c985fee860
6
+ metadata.gz: 0c6f701b207610e647f4c820ce3a2d0b4abd02e3ca41f152d62782f37122a034645a59e9ca0571d621d610730206ae0b231a63b4af10753458f01d313bb4fa04
7
+ data.tar.gz: c9fa746cfb4337ac4ee7786dad0caeb67f5e42283d77b8fc05345d2165224a8bc1ed549aec00edf8c450a575aa8d1d4bb48a33e7ef6e74e9fe204e728a4b7ae5
data/Gemfile CHANGED
@@ -5,10 +5,10 @@ source "https://rubygems.org"
5
5
  gemspec
6
6
 
7
7
  gem "rake", "~> 13.0"
8
-
9
8
  gem "rubocop", "~> 1.21"
10
9
 
11
10
  group :test do
12
11
  gem "sprockets-rails"
13
12
  gem "sqlite3"
13
+ gem "simplecov"
14
14
  end
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- turbo_power (0.3.1)
4
+ turbo_power (0.4.0)
5
5
  turbo-rails (~> 1.3)
6
6
 
7
7
  GEM
@@ -32,6 +32,7 @@ GEM
32
32
  builder (3.2.4)
33
33
  concurrent-ruby (1.2.2)
34
34
  crass (1.0.6)
35
+ docile (1.4.0)
35
36
  erubi (1.12.0)
36
37
  globalid (1.1.0)
37
38
  activesupport (>= 5.0)
@@ -42,7 +43,6 @@ GEM
42
43
  crass (~> 1.0.2)
43
44
  nokogiri (>= 1.5.9)
44
45
  method_source (1.0.0)
45
- mini_portile2 (2.8.1)
46
46
  minitest (5.17.0)
47
47
  nokogiri (1.14.2-x86_64-darwin)
48
48
  racc (~> 1.4)
@@ -82,6 +82,12 @@ GEM
82
82
  rubocop-ast (1.24.0)
83
83
  parser (>= 3.1.1.0)
84
84
  ruby-progressbar (1.11.0)
85
+ simplecov (0.22.0)
86
+ docile (~> 1.1)
87
+ simplecov-html (~> 0.11)
88
+ simplecov_json_formatter (~> 0.1)
89
+ simplecov-html (0.12.3)
90
+ simplecov_json_formatter (0.1.4)
85
91
  sprockets (4.2.0)
86
92
  concurrent-ruby (~> 1.0)
87
93
  rack (>= 2.2.4, < 4)
@@ -89,8 +95,7 @@ GEM
89
95
  actionpack (>= 5.2)
90
96
  activesupport (>= 5.2)
91
97
  sprockets (>= 3.0.0)
92
- sqlite3 (1.5.4)
93
- mini_portile2 (~> 2.8.0)
98
+ sqlite3 (1.5.4-x86_64-darwin)
94
99
  thor (1.2.1)
95
100
  turbo-rails (1.3.3)
96
101
  actionpack (>= 6.0.0)
@@ -103,10 +108,12 @@ GEM
103
108
 
104
109
  PLATFORMS
105
110
  x86_64-darwin-19
111
+ x86_64-darwin-22
106
112
 
107
113
  DEPENDENCIES
108
114
  rake (~> 13.0)
109
115
  rubocop (~> 1.21)
116
+ simplecov
110
117
  sprockets-rails
111
118
  sqlite3
112
119
  turbo_power!
data/README.md CHANGED
@@ -87,37 +87,37 @@ import 'controllers'
87
87
 
88
88
  ### DOM Actions
89
89
 
90
- * `turbo_stream.graft(target, parent, **attributes)`
91
- * [`turbo_stream.morph(target, html = nil, **attributes, &block)`](https://github.com/marcoroth/turbo-morph)
92
- * `turbo_stream.inner_html(target, html = nil, **attributes, &block)`
93
- * `turbo_stream.insert_adjacent_html(target, html = nil, position: 'beforeend', **attributes, &block)`
94
- * `turbo_stream.insert_adjacent_text(target, text, position: 'beforebegin', **attributes)`
95
- * `turbo_stream.outer_html(target, html = nil, **attributes, &block)`
96
- * `turbo_stream.text_content(target, text, **attributes)`
97
- * `turbo_stream.set_meta(name, content)`
90
+ * `turbo_stream.graft(targets, parent, **attributes)`
91
+ * [`turbo_stream.morph(targets, html = nil, **attributes, &block)`](https://github.com/marcoroth/turbo-morph)
92
+ * `turbo_stream.inner_html(targets, html = nil, **attributes, &block)`
93
+ * `turbo_stream.insert_adjacent_html(targets, html = nil, position: 'beforeend', **attributes, &block)`
94
+ * `turbo_stream.insert_adjacent_text(targets, text, position: 'beforebegin', **attributes)`
95
+ * `turbo_stream.outer_html(targets, html = nil, **attributes, &block)`
96
+ * `turbo_stream.text_content(targets, text, **attributes)`
97
+ * `turbo_stream.set_meta(name, content, **attributes)`
98
98
 
99
99
 
100
100
  ### Attribute Actions
101
101
 
102
- * `turbo_stream.add_css_class(target, classes, **attributes)`
103
- * `turbo_stream.remove_attribute(target, attribute, **attributes)`
104
- * `turbo_stream.remove_css_class(target, classes, **attributes)`
105
- * `turbo_stream.set_attribute(target, attribute, value, **attributes)`
106
- * `turbo_stream.set_dataset_attribute(target, attribute, value, **attributes)`
107
- * `turbo_stream.set_property(target, property, value, **attributes)`
108
- * `turbo_stream.set_style(target, name, value, **attributes)`
109
- * `turbo_stream.set_styles(target, styles, **attributes)`
110
- * `turbo_stream.set_value(target, value, **attributes)`
102
+ * `turbo_stream.add_css_class(targets, classes, **attributes)`
103
+ * `turbo_stream.remove_attribute(targets, attribute, **attributes)`
104
+ * `turbo_stream.remove_css_class(targets, classes, **attributes)`
105
+ * `turbo_stream.set_attribute(targets, attribute, value, **attributes)`
106
+ * `turbo_stream.set_dataset_attribute(targets, attribute, value, **attributes)`
107
+ * `turbo_stream.set_property(targets, name, value, **attributes)`
108
+ * `turbo_stream.set_style(targets, name, value, **attributes)`
109
+ * `turbo_stream.set_styles(targets, styles, **attributes)`
110
+ * `turbo_stream.set_value(targets, value, **attributes)`
111
111
 
112
112
 
113
113
  ### Event Actions
114
114
 
115
- * `turbo_stream.dispatch_event(target, name, detail: {}, **attributes)`
115
+ * `turbo_stream.dispatch_event(targets, name, detail: {}, **attributes)`
116
116
 
117
117
 
118
118
  ### Form Actions
119
119
 
120
- * `turbo_stream.reset_form(target, **attributes)`
120
+ * `turbo_stream.reset_form(targets, **attributes)`
121
121
 
122
122
 
123
123
  ### Storage Actions
@@ -136,8 +136,8 @@ import 'controllers'
136
136
  ### Browser Actions
137
137
 
138
138
  * `turbo_stream.reload(**attributes)`
139
- * `turbo_stream.scroll_into_view(target, inline = "nearest")`
140
- * `turbo_stream.set_focus(target, **attributes)`
139
+ * `turbo_stream.scroll_into_view(targets, **attributes)`
140
+ * `turbo_stream.set_focus(targets, **attributes)`
141
141
  * `turbo_stream.set_title(title, **attributes)`
142
142
 
143
143
 
@@ -149,15 +149,17 @@ import 'controllers'
149
149
 
150
150
  ### Browser History Actions
151
151
 
152
- * `turbo_stream.history_go(delta, **attributes)`
153
- * `turbo_stream.push_state(url, title = nil, state = nil, **attributes)`
154
- * `turbo_stream.replace_state(url, title = nil, state = nil, **attributes)`
152
+ * `turbo_stream.history_back(**attributes)`
153
+ * `turbo_stream.history_forward(**attributes)`
154
+ * `turbo_stream.history_go(delta = 0, **attributes)`
155
+ * `turbo_stream.push_state(url, title = "", state = {}, **attributes)`
156
+ * `turbo_stream.replace_state(url, title = "", state = {}, **attributes)`
155
157
 
156
158
 
157
159
  ### Debug Actions
158
160
 
159
- * `turbo_stream.console_log(message, level = :log)`
160
- * `turbo_stream.console_table(data, columns)`
161
+ * `turbo_stream.console_log(message, level = :log, **attributes)`
162
+ * `turbo_stream.console_table(data, columns, **attributes)`
161
163
 
162
164
 
163
165
  ### Notification Actions
@@ -167,21 +169,21 @@ import 'controllers'
167
169
 
168
170
  ### Turbo Actions
169
171
 
170
- * `turbo_stream.redirect_to(url, turbo_action = nil, **attributes)`
172
+ * `turbo_stream.redirect_to(url, turbo_action = nil, turbo_frame = nil, **attributes)`
171
173
  * `turbo_stream.turbo_clear_cache()`
172
174
 
173
175
 
174
176
  ### Turbo Progress Bar Actions
175
177
 
176
- * `turbo_stream.turbo_progress_bar_show()`
177
- * `turbo_stream.turbo_progress_bar_hide()`
178
- * `turbo_stream.turbo_progress_bar_set_value(value)`
178
+ * `turbo_stream.turbo_progress_bar_show(**attributes)`
179
+ * `turbo_stream.turbo_progress_bar_hide(**attributes)`
180
+ * `turbo_stream.turbo_progress_bar_set_value(value, **attributes)`
179
181
 
180
182
 
181
183
  ### Turbo Frame Actions
182
184
 
183
- * `turbo_stream.turbo_frame_reload(frame_id)`
184
- * `turbo_stream.turbo_frame_set_src(frame_id, src)`
185
+ * `turbo_stream.turbo_frame_reload(frame_id, **attributes)`
186
+ * `turbo_stream.turbo_frame_set_src(frame_id, src, **attributes)`
185
187
 
186
188
 
187
189
  ## Development
@@ -19,92 +19,109 @@ module TurboPower
19
19
 
20
20
  # DOM Actions
21
21
 
22
- def graft(target, parent, **attributes)
23
- custom_action_all :graft, targets: target, attributes: attributes.merge(parent: parent)
22
+ def graft(targets = nil, parent = nil, **attributes)
23
+ custom_action_all :graft, targets: targets, attributes: attributes.reverse_merge(parent: parent)
24
24
  end
25
25
 
26
- def inner_html(target, html = nil, **attributes, &block)
27
- custom_action_all :inner_html, targets: target, content: html, attributes: attributes, &block
26
+ def inner_html(targets = nil, html = nil, **attributes, &block)
27
+ html = attributes[:html] || html
28
+
29
+ custom_action_all :inner_html, targets: targets, content: html, attributes: attributes.except(:html), &block
28
30
  end
29
31
 
30
- def insert_adjacent_html(target, html = nil, position: "beforeend", **attributes, &block)
31
- custom_action_all :insert_adjacent_html, targets: target, content: html, attributes: attributes.merge(position: position), &block
32
+ def insert_adjacent_html(targets = nil, html = nil, position: "beforeend", **attributes, &block)
33
+ html = attributes[:html] || html
34
+
35
+ custom_action_all :insert_adjacent_html, targets: targets, content: html, attributes: attributes.merge(position: position).except(:html), &block
32
36
  end
33
37
 
34
- def insert_adjacent_text(target, text, position: "beforebegin", **attributes)
35
- custom_action_all :insert_adjacent_text, targets: target, content: "", attributes: attributes.merge(text: text, position: position)
38
+ def insert_adjacent_text(targets = nil, text = nil, position: "beforebegin", **attributes)
39
+ custom_action_all :insert_adjacent_text, targets: targets, attributes: attributes.reverse_merge(text: text, position: position)
36
40
  end
37
41
 
38
- def morph(target, html = nil, **attributes, &block)
39
- custom_action_all :morph, targets: target, content: html, attributes: attributes, &block
42
+ def morph(targets = nil, html = nil, **attributes, &block)
43
+ html = attributes[:html] || html
44
+
45
+ custom_action_all :morph, targets: targets, content: html, attributes: attributes.except(:html), &block
40
46
  end
41
47
 
42
- def outer_html(target, html = nil, **attributes, &block)
43
- custom_action_all :outer_html, targets: target, content: html, attributes: attributes, &block
48
+ def outer_html(targets = nil, html = nil, **attributes, &block)
49
+ html = attributes[:html] || html
50
+
51
+ custom_action_all :outer_html, targets: targets, content: html, attributes: attributes.except(:html), &block
44
52
  end
45
53
 
46
- def text_content(target, text, **attributes)
47
- custom_action_all :text_content, targets: target, attributes: attributes.merge(text: text)
54
+ def text_content(targets = nil, text = nil, **attributes)
55
+ custom_action_all :text_content, targets: targets, attributes: attributes.reverse_merge(text: text)
48
56
  end
49
57
 
50
- def set_meta(name, content, **attributes)
51
- custom_action :set_meta, attributes: attributes.merge(name: name, content: content)
58
+ def set_meta(name = nil, content = nil, **attributes)
59
+ custom_action :set_meta, attributes: attributes.reverse_merge(name: name, content: content)
52
60
  end
53
61
 
54
62
  # Attribute Actions
55
63
 
56
- def add_css_class(target, classes, **attributes)
57
- custom_action_all :add_css_class, targets: target, attributes: attributes.merge(classes: classes)
64
+ def add_css_class(targets = nil, classes = "", **attributes)
65
+ classes = attributes[:classes] || classes
66
+ classes = classes.join(" ") if classes.is_a?(Array)
67
+
68
+ custom_action_all :add_css_class, targets: targets, attributes: attributes.merge(classes: classes)
58
69
  end
59
70
 
60
- def remove_attribute(target, attribute, **attributes)
61
- custom_action_all :remove_attribute, targets: target, attributes: attributes.merge(attribute: attribute)
71
+ def remove_attribute(targets = nil, attribute = nil, **attributes)
72
+ custom_action_all :remove_attribute, targets: targets, attributes: attributes.reverse_merge(attribute: attribute)
62
73
  end
63
74
 
64
- def remove_css_class(target, classes, **attributes)
65
- custom_action_all :remove_css_class, targets: target, attributes: attributes.merge(classes: classes)
75
+ def remove_css_class(targets = nil, classes = "", **attributes)
76
+ classes = attributes[:classes] || classes
77
+ classes = classes.join(" ") if classes.is_a?(Array)
78
+
79
+ custom_action_all :remove_css_class, targets: targets, attributes: attributes.merge(classes: classes)
66
80
  end
67
81
 
68
- def set_attribute(target, attribute, value, **attributes)
69
- custom_action_all :set_attribute, targets: target, attributes: attributes.merge(attribute: attribute, value: value)
82
+ def set_attribute(targets = nil, attribute = nil, value = nil, **attributes)
83
+ custom_action_all :set_attribute, targets: targets, attributes: attributes.reverse_merge(attribute: attribute, value: value)
70
84
  end
71
85
 
72
- def set_dataset_attribute(target, attribute, value, **attributes)
73
- custom_action_all :set_dataset_attribute, targets: target, attributes: attributes.merge(attribute: attribute, value: value)
86
+ def set_dataset_attribute(targets = nil, attribute = nil, value = nil, **attributes)
87
+ custom_action_all :set_dataset_attribute, targets: targets, attributes: attributes.reverse_merge(attribute: attribute, value: value)
74
88
  end
75
89
 
76
- def set_property(target, name, value, **attributes)
77
- custom_action_all :set_property, targets: target, attributes: attributes.merge(name: name, value: value)
90
+ def set_property(targets = nil, name = nil, value = nil, **attributes)
91
+ custom_action_all :set_property, targets: targets, attributes: attributes.reverse_merge(name: name, value: value)
78
92
  end
79
93
 
80
- def set_style(target, name, value, **attributes)
81
- custom_action_all :set_style, targets: target, attributes: attributes.merge(name: name, value: value)
94
+ def set_style(targets = nil, name = nil, value = nil, **attributes)
95
+ custom_action_all :set_style, targets: targets, attributes: attributes.reverse_merge(name: name, value: value)
82
96
  end
83
97
 
84
- def set_styles(target, styles, **attributes)
85
- custom_action_all :set_styles, targets: target, attributes: attributes.merge(styles: styles)
98
+ def set_styles(targets = nil, styles = nil, **attributes)
99
+ styles = attributes[:styles] || styles
100
+ styles = styles.map { |k, v| "#{k}: #{v}" }.join("; ") if styles.is_a?(Hash)
101
+
102
+ custom_action_all :set_styles, targets: targets, attributes: attributes.merge(styles: styles)
86
103
  end
87
104
 
88
- def set_value(target, value, **attributes)
89
- custom_action_all :set_value, targets: target, attributes: attributes.merge(value: value)
105
+ def set_value(targets = nil, value = nil, **attributes)
106
+ custom_action_all :set_value, targets: targets, attributes: attributes.reverse_merge(value: value)
90
107
  end
91
108
 
92
109
  # Event Actions
93
110
 
94
- def dispatch_event(target, name, detail: {}, **attributes)
95
- custom_action_all :dispatch_event, targets: target, attributes: attributes.merge(name: name), content: detail.to_json
111
+ def dispatch_event(targets = nil, name = nil, detail: {}, **attributes)
112
+ custom_action_all :dispatch_event, targets: targets, content: detail.to_json, attributes: attributes.reverse_merge(name: name)
96
113
  end
97
114
 
98
115
  # Form Actions
99
116
 
100
- def reset_form(target, **attributes)
101
- custom_action_all :reset_form, targets: target, attributes: attributes
117
+ def reset_form(targets = nil, **attributes)
118
+ custom_action_all :reset_form, targets: targets, attributes: attributes
102
119
  end
103
120
 
104
121
  # Storage Actions
105
122
 
106
- def clear_storage(type, **attributes)
107
- custom_action :clear_storage, attributes: attributes.merge(type: type)
123
+ def clear_storage(type = nil, **attributes)
124
+ custom_action :clear_storage, attributes: attributes.reverse_merge(type: type)
108
125
  end
109
126
 
110
127
  def clear_local_storage(**attributes)
@@ -115,27 +132,27 @@ module TurboPower
115
132
  clear_storage("session", **attributes)
116
133
  end
117
134
 
118
- def remove_storage_item(key, type, **attributes)
119
- custom_action :remove_storage_item, attributes: attributes.merge(key: key, type: type)
135
+ def remove_storage_item(key = nil, type = nil, **attributes)
136
+ custom_action :remove_storage_item, attributes: attributes.reverse_merge(key: key, type: type)
120
137
  end
121
138
 
122
- def remove_local_storage_item(key, **attributes)
139
+ def remove_local_storage_item(key = nil, **attributes)
123
140
  remove_storage_item(key, "local", **attributes)
124
141
  end
125
142
 
126
- def remove_session_storage_item(key, **attributes)
143
+ def remove_session_storage_item(key = nil, **attributes)
127
144
  remove_storage_item(key, "session", **attributes)
128
145
  end
129
146
 
130
- def set_storage_item(key, value, type, **attributes)
131
- custom_action :set_storage_item, attributes: attributes.merge(key: key, type: type, value: value)
147
+ def set_storage_item(key = nil, value = nil, type = nil, **attributes)
148
+ custom_action :set_storage_item, attributes: attributes.reverse_merge(key: key, type: type, value: value)
132
149
  end
133
150
 
134
- def set_local_storage_item(key, value, **attributes)
151
+ def set_local_storage_item(key = nil, value = nil, **attributes)
135
152
  set_storage_item(key, value, "local", **attributes)
136
153
  end
137
154
 
138
- def set_session_storage_item(key, value, **attributes)
155
+ def set_session_storage_item(key = nil, value = nil, **attributes)
139
156
  set_storage_item(key, value, "session", **attributes)
140
157
  end
141
158
 
@@ -145,38 +162,46 @@ module TurboPower
145
162
  custom_action :reload, attributes: attributes
146
163
  end
147
164
 
148
- def scroll_into_view(target, inline = "nearest", **attributes)
149
- custom_action_all :scroll_into_view, targets: target, attributes: attributes.merge(inline: inline)
165
+ def scroll_into_view(targets = nil, **attributes)
166
+ custom_action_all :scroll_into_view, targets: targets, attributes: attributes
150
167
  end
151
168
 
152
- def set_cookie(cookie, **attributes)
153
- custom_action :set_cookie, attributes: attributes.merge(cookie: cookie)
169
+ def set_cookie(cookie = nil, **attributes)
170
+ custom_action :set_cookie, attributes: attributes.reverse_merge(cookie: cookie)
154
171
  end
155
172
 
156
173
  def set_cookie_item(key = nil, value = nil, **attributes)
157
- custom_action :set_cookie_item, attributes: { key: key, value: value }.merge(attributes)
174
+ custom_action :set_cookie_item, attributes: attributes.reverse_merge(key: key, value: value)
158
175
  end
159
176
 
160
- def set_focus(target, **attributes)
161
- custom_action_all :set_focus, targets: target, attributes: attributes
177
+ def set_focus(targets = nil, **attributes)
178
+ custom_action_all :set_focus, targets: targets, attributes: attributes
162
179
  end
163
180
 
164
- def set_title(title, **attributes)
165
- custom_action :set_title, attributes: attributes.merge(title: title)
181
+ def set_title(title = nil, **attributes)
182
+ custom_action :set_title, attributes: attributes.reverse_merge(title: title)
166
183
  end
167
184
 
168
185
  # Browser History Actions
169
186
 
170
- def history_go(delta, **attributes)
171
- custom_action :history_go, attributes: attributes.merge(delta: delta)
187
+ def history_back(**attributes)
188
+ custom_action :history_back, attributes: attributes
189
+ end
190
+
191
+ def history_forward(**attributes)
192
+ custom_action :history_forward, attributes: attributes
193
+ end
194
+
195
+ def history_go(delta = 0, **attributes)
196
+ custom_action :history_go, attributes: attributes.reverse_merge(delta: delta)
172
197
  end
173
198
 
174
- def push_state(url, title = nil, state = nil, **attributes)
175
- custom_action :push_state, attributes: attributes.merge(url: url, title: title, state: state)
199
+ def push_state(url = nil, title = "", state = {}, **attributes)
200
+ custom_action :push_state, attributes: attributes.reverse_merge(url: url, title: title, state: state)
176
201
  end
177
202
 
178
- def replace_state(url, title = nil, state = nil, **attributes)
179
- custom_action :replace_state, attributes: attributes.merge(url: url, title: title, state: state)
203
+ def replace_state(url = nil, title = "", state = {}, **attributes)
204
+ custom_action :replace_state, attributes: attributes.reverse_merge(url: url, title: title, state: state)
180
205
  end
181
206
 
182
207
  # Debug Actions
@@ -185,20 +210,20 @@ module TurboPower
185
210
  custom_action :console_log, attributes: attributes.reverse_merge(message: message, level: level)
186
211
  end
187
212
 
188
- def console_table(data, columns, **attributes)
189
- custom_action :console_table, attributes: attributes.merge(data: data, columns: columns)
213
+ def console_table(data = [], columns = [], **attributes)
214
+ custom_action :console_table, attributes: attributes.reverse_merge(data: data, columns: columns)
190
215
  end
191
216
 
192
217
  # Notification Actions
193
218
 
194
219
  def notification(title = nil, **attributes)
195
- custom_action :notification, attributes: { title: title }.merge(attributes)
220
+ custom_action :notification, attributes: attributes.reverse_merge(title: title)
196
221
  end
197
222
 
198
223
  # Turbo Actions
199
224
 
200
- def redirect_to(url = nil, turbo_action = "advance", **attributes)
201
- custom_action :redirect_to, attributes: { url: url, turbo_action: turbo_action }.merge(attributes)
225
+ def redirect_to(url = nil, turbo_action = "advance", turbo_frame = nil, **attributes)
226
+ custom_action :redirect_to, attributes: attributes.reverse_merge(url: url, turbo_action: turbo_action, turbo_frame: turbo_frame).compact
202
227
  end
203
228
 
204
229
  def turbo_clear_cache(**attributes)
@@ -215,18 +240,18 @@ module TurboPower
215
240
  custom_action :turbo_progress_bar_hide, attributes: attributes
216
241
  end
217
242
 
218
- def turbo_progress_bar_set_value(value, **attributes)
219
- custom_action :turbo_progress_bar_set_value, attributes: attributes.merge(value: value)
243
+ def turbo_progress_bar_set_value(value = nil, **attributes)
244
+ custom_action :turbo_progress_bar_set_value, attributes: attributes.reverse_merge(value: value)
220
245
  end
221
246
 
222
247
  # Turbo Frame Actions
223
248
 
224
- def turbo_frame_reload(frame_id, **attributes)
225
- custom_action :turbo_frame_reload, target: frame_id, attributes: attributes
249
+ def turbo_frame_reload(target = nil, **attributes)
250
+ custom_action :turbo_frame_reload, target: target, attributes: attributes
226
251
  end
227
252
 
228
- def turbo_frame_set_src(frame_id, src, **attributes)
229
- custom_action :turbo_frame_set_src, target: frame_id, attributes: attributes.merge(src: src)
253
+ def turbo_frame_set_src(target = nil, src = nil, **attributes)
254
+ custom_action :turbo_frame_set_src, target: target, attributes: attributes.reverse_merge(src: src)
230
255
  end
231
256
  end
232
257
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TurboPower
4
- VERSION = "0.3.1"
4
+ VERSION = "0.4.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbo_power
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marco Roth
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-02 00:00:00.000000000 Z
11
+ date: 2023-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: turbo-rails
@@ -69,7 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0'
71
71
  requirements: []
72
- rubygems_version: 3.4.1
72
+ rubygems_version: 3.3.26
73
73
  signing_key:
74
74
  specification_version: 4
75
75
  summary: Power-pack for Turbo Streams