stimulizer 0.1.1 → 0.2.0
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 +4 -4
- data/README.md +2 -2
- data/lib/stimulizer/version.rb +1 -1
- data/lib/stimulizer.rb +17 -2
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef63a4056af8d47a2575a6b1fa341cc66f0f4c890ca2545222f939813e81c083
|
4
|
+
data.tar.gz: 2b73dca03393d1ec003e8fcf34a4421bd0f3e76026e81b6f79f65de58909229b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9cb1aee522e337bde660667dcf52180fd1d731eb3b99af5959a624e1106883b422d84cf8df1a56c60662dca04a7224ab8bb7e37525638ccb4026dbcdb149205
|
7
|
+
data.tar.gz: 0b80d55d640ea93bef07aa5ce379b42963ffc9496c031eb36a853dc4b5a63cf4c4cc6888413938cafff6210bb94d8a9ab851bf173387702be0eb8da0d1fbf170
|
data/README.md
CHANGED
@@ -16,7 +16,7 @@ For example:
|
|
16
16
|
<div
|
17
17
|
data-controller="mynamespace--deeper--buttons-grid-component"
|
18
18
|
data-mynamespace--deeper--buttons-grid-component-url-value="http://example.com"
|
19
|
-
data-mynamespace--deeper--buttons-grid-component-
|
19
|
+
data-mynamespace--deeper--buttons-grid-component-color-value="#ff0000"
|
20
20
|
data-action="click->data-mynamespace--deeper--buttons-grid-component#doSomething"
|
21
21
|
>
|
22
22
|
```
|
@@ -49,7 +49,7 @@ Or install it yourself as:
|
|
49
49
|
$ gem install stimulizer
|
50
50
|
|
51
51
|
## Usage
|
52
|
-
Include this in your
|
52
|
+
Include this in your class:
|
53
53
|
|
54
54
|
```ruby
|
55
55
|
class MyComponent < ApplicationComponent
|
data/lib/stimulizer/version.rb
CHANGED
data/lib/stimulizer.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "stimulizer"
|
4
|
+
|
3
5
|
require "active_support/concern"
|
4
6
|
require "dry-configurable"
|
5
7
|
require "lucky_case"
|
@@ -32,7 +34,15 @@ module Stimulizer
|
|
32
34
|
end
|
33
35
|
|
34
36
|
def stimulus_hash(*args)
|
35
|
-
|
37
|
+
if args.size == 1 && !args.first.is_a?(Hash)
|
38
|
+
build_stimulus_hash(args.first)
|
39
|
+
elsif args.size == 1 && args.first.is_a?(Hash)
|
40
|
+
build_stimulus_hash(**args.first)
|
41
|
+
elsif args.size == 2 && args[1..].all? { |a| a.is_a?(Hash) }
|
42
|
+
build_stimulus_hash(args[0], **args[1..].first)
|
43
|
+
else
|
44
|
+
raise ArgumentError, "wrong number of arguments (given #{args.size}, expected 1..2)"
|
45
|
+
end
|
36
46
|
end
|
37
47
|
|
38
48
|
def stimulus(*args)
|
@@ -75,7 +85,7 @@ module Stimulizer
|
|
75
85
|
# ... or combine them:
|
76
86
|
#
|
77
87
|
# <%= stimulus(:controller, target: "button", action: "click->doThing")
|
78
|
-
def build_stimulus_hash(default_controller = false, controller_name: nil, controller: nil, target: nil, action: nil, params: nil, values: nil, classes: nil)
|
88
|
+
def build_stimulus_hash(default_controller = false, controller_name: nil, controller: nil, target: nil, action: nil, params: nil, values: nil, classes: nil, outlets: nil)
|
79
89
|
raise ArgumentError(":controller_name specified, but blank") if controller_name&.blank?
|
80
90
|
raise ArgumentError(":controller specified, but blank") if controller&.blank?
|
81
91
|
raise ArgumentError(":target specified, but blank") if target&.blank?
|
@@ -83,6 +93,7 @@ module Stimulizer
|
|
83
93
|
raise ArgumentError(":params specified, but blank") if params&.blank?
|
84
94
|
raise ArgumentError(":values specified, but blank") if values&.blank?
|
85
95
|
raise ArgumentError(":classes specified, but blank") if classes&.blank?
|
96
|
+
raise ArgumentError(":outlets specified, but blank") if outlets&.blank?
|
86
97
|
|
87
98
|
{}.tap do |hash|
|
88
99
|
hash[:"data-controller"] = ""
|
@@ -129,6 +140,10 @@ module Stimulizer
|
|
129
140
|
hash[:"data-#{local_controller_name}-#{LuckyCase.dash_case(key.to_s)}-class"] = value
|
130
141
|
end
|
131
142
|
|
143
|
+
outlets&.each do |key, value|
|
144
|
+
hash[:"data-#{local_controller_name}-#{LuckyCase.dash_case(key.to_s)}-outlet"] = value
|
145
|
+
end
|
146
|
+
|
132
147
|
hash[:"data-#{local_controller_name}-target"] = target if target
|
133
148
|
end
|
134
149
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stimulizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt E Patterson
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-11-
|
11
|
+
date: 2022-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-configurable
|
@@ -52,7 +52,7 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
description:
|
55
|
+
description:
|
56
56
|
email:
|
57
57
|
- mattp@digimonkey.com
|
58
58
|
executables: []
|
@@ -81,7 +81,7 @@ metadata:
|
|
81
81
|
homepage_uri: https://github.com/mepatterson/stimulizer
|
82
82
|
source_code_uri: https://github.com/mepatterson/stimulizer
|
83
83
|
changelog_uri: https://github.com/mepatterson/stimulizer/blob/main/CHANGELOG.md
|
84
|
-
post_install_message:
|
84
|
+
post_install_message:
|
85
85
|
rdoc_options: []
|
86
86
|
require_paths:
|
87
87
|
- lib
|
@@ -96,8 +96,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
requirements: []
|
99
|
-
rubygems_version: 3.
|
100
|
-
signing_key:
|
99
|
+
rubygems_version: 3.3.7
|
100
|
+
signing_key:
|
101
101
|
specification_version: 4
|
102
102
|
summary: Stimulizer provides convenience methods for working with StimulusJS in views,
|
103
103
|
templates, and components.
|