bard-tag_field 0.4.2 → 0.5.1
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/Appraisals +5 -1
- data/CLAUDE.md +109 -0
- data/README.md +16 -16
- data/Rakefile +6 -4
- data/app/assets/javascripts/input-tag.js +453 -453
- data/bard-tag_field.gemspec +5 -0
- data/cucumber.yml +1 -0
- data/gemfiles/rails_8.1.gemfile +7 -0
- data/{bard-tag → input-tag}/bun.lockb +0 -0
- data/{bard-tag → input-tag}/package.json +2 -1
- data/lib/bard/tag_field/cucumber.rb +13 -2
- data/lib/bard/tag_field/field.rb +3 -2
- data/lib/bard/tag_field/form_builder.rb +4 -4
- data/lib/bard/tag_field/version.rb +1 -1
- metadata +83 -10
- /data/{bard-tag → input-tag}/.gitignore +0 -0
- /data/{bard-tag → input-tag}/index.js +0 -0
- /data/{bard-tag → input-tag}/rollup.config.js +0 -0
data/bard-tag_field.gemspec
CHANGED
|
@@ -34,6 +34,11 @@ Gem::Specification.new do |spec|
|
|
|
34
34
|
spec.add_development_dependency "rspec-rails"
|
|
35
35
|
spec.add_development_dependency "equivalent-xml"
|
|
36
36
|
spec.add_development_dependency "appraisal"
|
|
37
|
+
spec.add_development_dependency "capybara"
|
|
38
|
+
spec.add_development_dependency "cuprite"
|
|
39
|
+
spec.add_development_dependency "chop"
|
|
40
|
+
spec.add_development_dependency "cucumber-rails"
|
|
41
|
+
spec.add_development_dependency "puma"
|
|
37
42
|
|
|
38
43
|
# For more information and examples about making a new gem, checkout our
|
|
39
44
|
# guide at: https://bundler.io/guides/creating_gem.html
|
data/cucumber.yml
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
default: --publish-quiet
|
|
Binary file
|
|
@@ -16,11 +16,22 @@ class Chop::Form::TagField < Chop::Form::Field
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def set_value
|
|
19
|
-
if field[:multiple]
|
|
19
|
+
values = if field[:multiple]
|
|
20
20
|
value.to_s.split(", ").map(&:strip)
|
|
21
21
|
else
|
|
22
|
-
value.to_s.strip
|
|
22
|
+
[value.to_s.strip]
|
|
23
23
|
end
|
|
24
|
+
|
|
25
|
+
# Resolve display labels to submit values using datalist
|
|
26
|
+
datalist_options = field.all("datalist option", visible: false)
|
|
27
|
+
if datalist_options.any?
|
|
28
|
+
label_to_value = datalist_options.each_with_object({}) do |opt, hash|
|
|
29
|
+
hash[opt[:innerText]] = opt[:value]
|
|
30
|
+
end
|
|
31
|
+
values = values.map { |v| label_to_value[v] || v }
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
field[:multiple] ? values : values.first
|
|
24
35
|
end
|
|
25
36
|
|
|
26
37
|
def fill_in!
|
data/lib/bard/tag_field/field.rb
CHANGED
|
@@ -2,10 +2,11 @@ module Bard
|
|
|
2
2
|
module TagField
|
|
3
3
|
class Field < ActionView::Helpers::Tags::TextField
|
|
4
4
|
def render &block
|
|
5
|
+
@options = @options.dup.transform_keys(&:to_s)
|
|
5
6
|
add_default_name_and_id(@options)
|
|
6
7
|
|
|
7
8
|
# Remove choices from HTML options before rendering
|
|
8
|
-
choices = @options.delete(
|
|
9
|
+
choices = @options.delete("choices")
|
|
9
10
|
|
|
10
11
|
# Store choices for render_object_values method
|
|
11
12
|
@choices = choices
|
|
@@ -14,7 +15,7 @@ module Bard
|
|
|
14
15
|
content = block ? block.call(@options) : render_object_values
|
|
15
16
|
|
|
16
17
|
# Add nested anonymous datalist if we have choices, no block, and no external list specified
|
|
17
|
-
if choices&.any? && !block && !@options[
|
|
18
|
+
if choices&.any? && !block && !@options["list"]
|
|
18
19
|
content += render_datalist(nil, choices)
|
|
19
20
|
end
|
|
20
21
|
|
|
@@ -3,19 +3,19 @@ require_relative "field"
|
|
|
3
3
|
module Bard
|
|
4
4
|
module TagField
|
|
5
5
|
module FormBuilder
|
|
6
|
-
def
|
|
6
|
+
def tag_field method, choices = nil, options = {}, html_options = {}, &block
|
|
7
7
|
# Handle different method signatures to match Rails select helper
|
|
8
8
|
case choices
|
|
9
9
|
when Hash
|
|
10
|
-
#
|
|
10
|
+
# tag_field(:method, { class: "form-control" })
|
|
11
11
|
html_options = options
|
|
12
12
|
options = choices
|
|
13
13
|
choices = nil
|
|
14
14
|
when Array
|
|
15
|
-
#
|
|
15
|
+
# tag_field(:method, choices_array, { class: "form-control" })
|
|
16
16
|
html_options = options if options.is_a?(Hash)
|
|
17
17
|
when NilClass
|
|
18
|
-
#
|
|
18
|
+
# tag_field(:method)
|
|
19
19
|
html_options = options
|
|
20
20
|
options = {}
|
|
21
21
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bard-tag_field
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Micah Geisel
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-12-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -66,6 +66,76 @@ dependencies:
|
|
|
66
66
|
- - ">="
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '0'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: capybara
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - ">="
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '0'
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - ">="
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '0'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: cuprite
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - ">="
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '0'
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - ">="
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '0'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: chop
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - ">="
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '0'
|
|
104
|
+
type: :development
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - ">="
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '0'
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: cucumber-rails
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - ">="
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '0'
|
|
118
|
+
type: :development
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - ">="
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: puma
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - ">="
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - ">="
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '0'
|
|
69
139
|
description: form.tag_field using @botandrose/input-tag custom element
|
|
70
140
|
email:
|
|
71
141
|
- micah@botandrose.com
|
|
@@ -75,22 +145,25 @@ extra_rdoc_files: []
|
|
|
75
145
|
files:
|
|
76
146
|
- ".rspec"
|
|
77
147
|
- Appraisals
|
|
148
|
+
- CLAUDE.md
|
|
78
149
|
- Gemfile
|
|
79
150
|
- LICENSE
|
|
80
151
|
- README.md
|
|
81
152
|
- Rakefile
|
|
82
153
|
- app/assets/javascripts/input-tag.js
|
|
83
|
-
- bard-tag/.gitignore
|
|
84
|
-
- bard-tag/bun.lockb
|
|
85
|
-
- bard-tag/index.js
|
|
86
|
-
- bard-tag/package.json
|
|
87
|
-
- bard-tag/rollup.config.js
|
|
88
154
|
- bard-tag_field.gemspec
|
|
89
155
|
- bin/console
|
|
90
156
|
- bin/setup
|
|
157
|
+
- cucumber.yml
|
|
91
158
|
- gemfiles/rails_7.1.gemfile
|
|
92
159
|
- gemfiles/rails_7.2.gemfile
|
|
93
160
|
- gemfiles/rails_8.0.gemfile
|
|
161
|
+
- gemfiles/rails_8.1.gemfile
|
|
162
|
+
- input-tag/.gitignore
|
|
163
|
+
- input-tag/bun.lockb
|
|
164
|
+
- input-tag/index.js
|
|
165
|
+
- input-tag/package.json
|
|
166
|
+
- input-tag/rollup.config.js
|
|
94
167
|
- lib/bard/tag_field.rb
|
|
95
168
|
- lib/bard/tag_field/cucumber.rb
|
|
96
169
|
- lib/bard/tag_field/field.rb
|
|
@@ -103,7 +176,7 @@ metadata:
|
|
|
103
176
|
homepage_uri: https://github.com/botandrose/bard-tag_field
|
|
104
177
|
source_code_uri: https://github.com/botandrose/bard-tag_field
|
|
105
178
|
changelog_uri: https://github.com/botandrose/bard-tag_field/blob/master/CHANGELOG.md
|
|
106
|
-
post_install_message:
|
|
179
|
+
post_install_message:
|
|
107
180
|
rdoc_options: []
|
|
108
181
|
require_paths:
|
|
109
182
|
- lib
|
|
@@ -119,7 +192,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
119
192
|
version: '0'
|
|
120
193
|
requirements: []
|
|
121
194
|
rubygems_version: 3.5.11
|
|
122
|
-
signing_key:
|
|
195
|
+
signing_key:
|
|
123
196
|
specification_version: 4
|
|
124
197
|
summary: form.tag_field using @botandrose/input-tag custom element
|
|
125
198
|
test_files: []
|
|
File without changes
|
|
File without changes
|
|
File without changes
|