vcfb 1.0.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 +7 -0
- data/CHANGELOG.md +9 -0
- data/MIT-LICENSE +20 -0
- data/README.md +89 -0
- data/Rakefile +3 -0
- data/lib/generators/vcfb/components/USAGE.md +74 -0
- data/lib/generators/vcfb/components/components_generator.rb +172 -0
- data/lib/generators/vcfb/components/templates/button/component.html.erb +3 -0
- data/lib/generators/vcfb/components/templates/button/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/check_box/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/check_box/component.rb.tt +19 -0
- data/lib/generators/vcfb/components/templates/collection_check_boxes/check_box/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/collection_check_boxes/check_box/component.rb.tt +21 -0
- data/lib/generators/vcfb/components/templates/collection_check_boxes/component.html.erb +3 -0
- data/lib/generators/vcfb/components/templates/collection_check_boxes/component.rb.tt +29 -0
- data/lib/generators/vcfb/components/templates/collection_check_boxes/label/component.html.erb +3 -0
- data/lib/generators/vcfb/components/templates/collection_check_boxes/label/component.rb.tt +21 -0
- data/lib/generators/vcfb/components/templates/collection_radio_buttons/component.html.erb +3 -0
- data/lib/generators/vcfb/components/templates/collection_radio_buttons/component.rb.tt +29 -0
- data/lib/generators/vcfb/components/templates/collection_radio_buttons/label/component.html.erb +3 -0
- data/lib/generators/vcfb/components/templates/collection_radio_buttons/label/component.rb.tt +21 -0
- data/lib/generators/vcfb/components/templates/collection_radio_buttons/radio_button/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/collection_radio_buttons/radio_button/component.rb.tt +20 -0
- data/lib/generators/vcfb/components/templates/collection_select/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/collection_select/component.rb.tt +21 -0
- data/lib/generators/vcfb/components/templates/color_field/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/color_field/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/date_field/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/date_field/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/date_select/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/date_select/component.rb.tt +18 -0
- data/lib/generators/vcfb/components/templates/datetime_field/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/datetime_field/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/datetime_select/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/datetime_select/component.rb.tt +18 -0
- data/lib/generators/vcfb/components/templates/email_field/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/email_field/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/file_field/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/file_field/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/grouped_collection_select/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/grouped_collection_select/component.rb.tt +23 -0
- data/lib/generators/vcfb/components/templates/label/component.html.erb +3 -0
- data/lib/generators/vcfb/components/templates/label/component.rb.tt +19 -0
- data/lib/generators/vcfb/components/templates/month_field/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/month_field/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/number_field/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/number_field/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/password_field/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/password_field/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/radio_button/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/radio_button/component.rb.tt +18 -0
- data/lib/generators/vcfb/components/templates/range_field/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/range_field/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/rich_text_area/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/rich_text_area/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/search_field/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/search_field/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/select/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/select/component.rb.tt +23 -0
- data/lib/generators/vcfb/components/templates/submit/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/submit/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/telephone_field/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/telephone_field/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/text_area/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/text_area/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/text_field/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/text_field/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/time_field/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/time_field/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/time_select/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/time_select/component.rb.tt +18 -0
- data/lib/generators/vcfb/components/templates/time_zone_select/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/time_zone_select/component.rb.tt +19 -0
- data/lib/generators/vcfb/components/templates/url_field/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/url_field/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/week_field/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/week_field/component.rb.tt +17 -0
- data/lib/generators/vcfb/components/templates/weekday_select/component.html.erb +1 -0
- data/lib/generators/vcfb/components/templates/weekday_select/component.rb.tt +18 -0
- data/lib/vcfb/action_view_tag_patch.rb +9 -0
- data/lib/vcfb/acts_as_form_collection_component.rb +19 -0
- data/lib/vcfb/acts_as_form_component.rb +22 -0
- data/lib/vcfb/acts_as_form_label_component.rb +21 -0
- data/lib/vcfb/form_builder.rb +188 -0
- data/lib/vcfb/railtie.rb +6 -0
- data/lib/vcfb/resolver.rb +18 -0
- data/lib/vcfb/tags/collection_check_boxes.rb +26 -0
- data/lib/vcfb/tags/collection_helpers.rb +19 -0
- data/lib/vcfb/tags/collection_radio_buttons.rb +25 -0
- data/lib/vcfb/template.rb +44 -0
- data/lib/vcfb/version.rb +3 -0
- data/lib/vcfb.rb +12 -0
- metadata +247 -0
@@ -0,0 +1,21 @@
|
|
1
|
+
require "active_support/concern"
|
2
|
+
|
3
|
+
require "vcfb/acts_as_form_component"
|
4
|
+
|
5
|
+
module VCFB
|
6
|
+
module ActsAsFormLabelComponent
|
7
|
+
extend ActiveSupport::Concern
|
8
|
+
include ActsAsFormComponent
|
9
|
+
|
10
|
+
included do
|
11
|
+
delegate :translation, :to_s, to: :label_builder
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def label_builder
|
17
|
+
@label_builder ||= ActionView::Helpers::Tags::Label::LabelBuilder
|
18
|
+
.new(@form.template, @form.object_name, @method, @form.object, @options[:value])
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,188 @@
|
|
1
|
+
require "active_support/core_ext/class/attribute"
|
2
|
+
require "view_component"
|
3
|
+
|
4
|
+
require "vcfb/acts_as_form_component"
|
5
|
+
require "vcfb/acts_as_form_collection_component"
|
6
|
+
require "vcfb/acts_as_form_label_component"
|
7
|
+
require "vcfb/resolver"
|
8
|
+
require "vcfb/template"
|
9
|
+
|
10
|
+
module VCFB
|
11
|
+
class FormBuilder < ::ActionView::Helpers::FormBuilder
|
12
|
+
class_attribute :namespace, instance_writer: false, default: "form"
|
13
|
+
|
14
|
+
attr_reader :object, :object_name, :template
|
15
|
+
|
16
|
+
def initialize(*args)
|
17
|
+
super
|
18
|
+
@template = Template.new(@template, self)
|
19
|
+
end
|
20
|
+
|
21
|
+
# SIMPLE FIELDS
|
22
|
+
|
23
|
+
SIMPLE_FIELDS = %i[color_field date_field datetime_field email_field month_field number_field password_field
|
24
|
+
range_field search_field telephone_field text_area text_field time_field url_field week_field]
|
25
|
+
|
26
|
+
SIMPLE_FIELDS.each do |selector|
|
27
|
+
class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1
|
28
|
+
def #{selector}(method, options = {})
|
29
|
+
return super unless component_defined?(#{selector.inspect})
|
30
|
+
|
31
|
+
componentify(#{selector.inspect}, method, objectify_options(options))
|
32
|
+
end
|
33
|
+
RUBY_EVAL
|
34
|
+
end
|
35
|
+
|
36
|
+
alias_method :phone_field, :telephone_field
|
37
|
+
alias_method :datetime_local_field, :datetime_field
|
38
|
+
|
39
|
+
# SIMPLE SELECTS
|
40
|
+
|
41
|
+
SIMPLE_SELECTS = %i[date_select datetime_select time_select]
|
42
|
+
SIMPLE_SELECTS.each do |selector|
|
43
|
+
class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1
|
44
|
+
def #{selector}(method, options = {}, html_options = {})
|
45
|
+
return super unless component_defined?(#{selector.inspect})
|
46
|
+
|
47
|
+
componentify(#{selector.inspect}, method, objectify_options(options), html_options)
|
48
|
+
end
|
49
|
+
RUBY_EVAL
|
50
|
+
end
|
51
|
+
|
52
|
+
# MORE COMPLEX FIELDS AND SELECTS
|
53
|
+
|
54
|
+
def check_box(method, options = {}, checked_value = "1", unchecked_value = "0")
|
55
|
+
return super unless component_defined?(:check_box)
|
56
|
+
|
57
|
+
componentify(:check_box, method, objectify_options(options), checked_value, unchecked_value)
|
58
|
+
end
|
59
|
+
|
60
|
+
def collection_check_boxes(method, collection, value_method, text_method, options = {}, html_options = {}, &block)
|
61
|
+
return super unless component_defined?(:collection_check_boxes)
|
62
|
+
|
63
|
+
componentify(:collection_check_boxes, method, collection, value_method, text_method, objectify_options(options), @default_html_options.merge(html_options), &block)
|
64
|
+
end
|
65
|
+
|
66
|
+
def collection_check_boxes_label(method, text = nil, options = {}, &block)
|
67
|
+
if component_defined?(:"collection_check_boxes/label")
|
68
|
+
componentify(:"collection_check_boxes/label", method, text, options, &block)
|
69
|
+
elsif component_defined?(:label)
|
70
|
+
componentify(:label, method, text, options, &block)
|
71
|
+
else
|
72
|
+
label(method, text, options, &block)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def collection_check_boxes_check_box(method, options = {}, checked_value = "1", unchecked_value = "0")
|
77
|
+
if component_defined?(:"collection_check_boxes/check_box")
|
78
|
+
componentify(:"collection_check_boxes/check_box", method, options, checked_value, unchecked_value)
|
79
|
+
elsif component_defined?(:check_box)
|
80
|
+
componentify(:check_box, method, options, checked_value, unchecked_value)
|
81
|
+
else
|
82
|
+
check_box(method, options, checked_value, unchecked_value)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def collection_radio_buttons(method, collection, value_method, text_method, options = {}, html_options = {}, &block)
|
87
|
+
return super unless component_defined?(:collection_radio_buttons)
|
88
|
+
|
89
|
+
componentify(:collection_radio_buttons, method, collection, value_method, text_method, objectify_options(options), @default_html_options.merge(html_options), &block)
|
90
|
+
end
|
91
|
+
|
92
|
+
def collection_radio_buttons_label(method, text = nil, options = {}, &block)
|
93
|
+
if component_defined?(:"collection_radio_buttons/label")
|
94
|
+
componentify(:"collection_radio_buttons/label", method, text, options, &block)
|
95
|
+
elsif component_defined?(:label)
|
96
|
+
componentify(:label, method, text, options, &block)
|
97
|
+
else
|
98
|
+
label(method, text, options, &block)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def collection_radio_buttons_radio_button(method, value, options = {})
|
103
|
+
if component_defined?(:"collection_radio_buttons/radio_button")
|
104
|
+
componentify(:"collection_radio_buttons/radio_button", method, value, options)
|
105
|
+
elsif component_defined?(:radio_button)
|
106
|
+
componentify(:radio_button, method, value, options)
|
107
|
+
else
|
108
|
+
radio_button(method, options, checked_value, unchecked_value)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
def collection_select(method, collection, value_method, text_method, options = {}, html_options = {})
|
113
|
+
return super unless component_defined?(:collection_select)
|
114
|
+
|
115
|
+
componentify(:collection_select, method, collection, value_method, text_method, objectify_options(options), @default_html_options.merge(html_options))
|
116
|
+
end
|
117
|
+
|
118
|
+
def file_field(method, options = {})
|
119
|
+
return super unless component_defined?(:file_field)
|
120
|
+
|
121
|
+
self.multipart = true
|
122
|
+
componentify(:file_field, method, objectify_options(options))
|
123
|
+
end
|
124
|
+
|
125
|
+
def grouped_collection_select(method, collection, group_method, group_label_method, option_key_method, option_value_method, options = {}, html_options = {})
|
126
|
+
return super unless component_defined?(:grouped_collection_select)
|
127
|
+
|
128
|
+
componentify(:grouped_collection_select, method, collection, group_method, group_label_method, option_key_method, option_value_method, objectify_options(options), @default_html_options.merge(html_options))
|
129
|
+
end
|
130
|
+
|
131
|
+
def label(method, text = nil, options = {}, &block)
|
132
|
+
return super unless component_defined?(:label)
|
133
|
+
|
134
|
+
componentify(:label, method, text, objectify_options(options), &block)
|
135
|
+
end
|
136
|
+
|
137
|
+
def radio_button(method, value, options = {})
|
138
|
+
return super unless component_defined?(:radio_button)
|
139
|
+
|
140
|
+
componentify(:radio_button, method, value, objectify_options(options))
|
141
|
+
end
|
142
|
+
|
143
|
+
def rich_text_area(method, options = {})
|
144
|
+
return super unless component_defined?(:rich_text_area)
|
145
|
+
|
146
|
+
componentify(:rich_text_area, method, objectify_options(options))
|
147
|
+
end
|
148
|
+
|
149
|
+
def select(method, choices = nil, options = {}, html_options = {}, &block)
|
150
|
+
return super unless component_defined?(:select)
|
151
|
+
|
152
|
+
componentify(:select, method, choices, objectify_options(options), @default_html_options.merge(html_options), &block)
|
153
|
+
end
|
154
|
+
|
155
|
+
def time_zone_select(method, priority_zones = nil, options = {}, html_options = {})
|
156
|
+
return super unless component_defined?(:time_zone_select)
|
157
|
+
|
158
|
+
componentify(:time_zone_select, method, priority_zones, objectify_options(options), @default_html_options.merge(html_options))
|
159
|
+
end
|
160
|
+
|
161
|
+
if Gem::Version.new(Rails::VERSION::STRING) >= Gem::Version.new("7.0")
|
162
|
+
def weekday_select(method, options = {}, html_options = {})
|
163
|
+
return super unless component_defined?(:weekday_select)
|
164
|
+
|
165
|
+
componentify(:weekday_select, method, objectify_options(options), html_options)
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
# COMPONENT LOOKUP
|
170
|
+
|
171
|
+
def component_defined?(form_element)
|
172
|
+
resolve_form_component(form_element).present?
|
173
|
+
rescue
|
174
|
+
false
|
175
|
+
end
|
176
|
+
|
177
|
+
def componentify(form_element, *args, **opts, &block)
|
178
|
+
form_component_class = resolve_form_component(form_element)
|
179
|
+
@template.render form_component_class.new(self, *args, **opts), &block
|
180
|
+
end
|
181
|
+
|
182
|
+
private
|
183
|
+
|
184
|
+
def resolve_form_component(form_element)
|
185
|
+
VCFB::Resolver.call(namespace, form_element)
|
186
|
+
end
|
187
|
+
end
|
188
|
+
end
|
data/lib/vcfb/railtie.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require "active_support/core_ext/string/inflections"
|
2
|
+
|
3
|
+
module VCFB
|
4
|
+
class Resolver
|
5
|
+
def initialize(namespace, form_element)
|
6
|
+
@namespace = namespace.to_s.underscore
|
7
|
+
@form_element = form_element.to_s.underscore
|
8
|
+
end
|
9
|
+
|
10
|
+
def call
|
11
|
+
"#{@namespace}/#{@form_element}/component".camelize.constantize
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.call(namespace, form_element)
|
15
|
+
new(namespace, form_element).call
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require "vcfb/tags/collection_helpers"
|
2
|
+
|
3
|
+
module VCFB
|
4
|
+
module Tags
|
5
|
+
class CollectionCheckBoxes < ActionView::Helpers::Tags::CollectionCheckBoxes
|
6
|
+
class CheckBoxBuilder < ActionView::Helpers::Tags::CollectionCheckBoxes::Builder
|
7
|
+
include CollectionHelpers
|
8
|
+
|
9
|
+
def label(extra_html_options = {}, &block)
|
10
|
+
form.collection_check_boxes_label(@sanitized_attribute_name, @text, label_html_options(extra_html_options), &block)
|
11
|
+
end
|
12
|
+
|
13
|
+
def check_box(extra_html_options = {})
|
14
|
+
html_options = extra_html_options.merge(@input_html_options)
|
15
|
+
html_options[:multiple] = true
|
16
|
+
html_options[:skip_default_ids] = false
|
17
|
+
form.collection_check_boxes_check_box(@method_name, html_options, @value, nil)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def render(&block)
|
22
|
+
render_collection_for(CheckBoxBuilder, &block)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require "action_view/helpers/tags/collection_helpers"
|
2
|
+
|
3
|
+
module VCFB
|
4
|
+
module Tags
|
5
|
+
module CollectionHelpers
|
6
|
+
private
|
7
|
+
|
8
|
+
def form
|
9
|
+
@template_object.instance_variable_get(:@form)
|
10
|
+
end
|
11
|
+
|
12
|
+
def label_html_options(extra_html_options)
|
13
|
+
html_options = @input_html_options.slice(:index, :namespace).merge(extra_html_options)
|
14
|
+
html_options[:for] ||= @input_html_options[:id] if @input_html_options[:id]
|
15
|
+
html_options
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require "vcfb/tags/collection_helpers"
|
2
|
+
|
3
|
+
module VCFB
|
4
|
+
module Tags
|
5
|
+
class CollectionRadioButtons < ActionView::Helpers::Tags::CollectionRadioButtons
|
6
|
+
class RadioButtonBuilder < ActionView::Helpers::Tags::CollectionRadioButtons::Builder
|
7
|
+
include CollectionHelpers
|
8
|
+
|
9
|
+
def label(extra_html_options = {}, &block)
|
10
|
+
form.collection_radio_buttons_label(@sanitized_attribute_name, @text, label_html_options(extra_html_options), &block)
|
11
|
+
end
|
12
|
+
|
13
|
+
def radio_button(extra_html_options = {})
|
14
|
+
html_options = extra_html_options.merge(@input_html_options)
|
15
|
+
html_options[:skip_default_ids] = false
|
16
|
+
form.collection_radio_buttons_radio_button(@method_name, @value, html_options)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def render(&block)
|
21
|
+
render_collection_for(RadioButtonBuilder, &block)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module VCFB
|
2
|
+
class Template
|
3
|
+
def initialize(template, form)
|
4
|
+
@template = template
|
5
|
+
@form = form
|
6
|
+
end
|
7
|
+
|
8
|
+
# Custom Tag Helpers
|
9
|
+
|
10
|
+
def button_tag(value, options, &block)
|
11
|
+
return super unless @form.component_defined?(:button)
|
12
|
+
|
13
|
+
if block
|
14
|
+
value = @template.capture(value, &block)
|
15
|
+
end
|
16
|
+
|
17
|
+
@form.componentify(:button, value, options)
|
18
|
+
end
|
19
|
+
|
20
|
+
def submit_tag(value, options)
|
21
|
+
return super unless @form.component_defined?(:submit)
|
22
|
+
|
23
|
+
@form.componentify(:submit, value, options)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Forward everything else to @template
|
27
|
+
|
28
|
+
def send(method_name, *args, &block)
|
29
|
+
@template.send(method_name, *args, &block)
|
30
|
+
end
|
31
|
+
|
32
|
+
def public_send(method_name, *args, &block)
|
33
|
+
@template.public_send(method_name, *args, &block)
|
34
|
+
end
|
35
|
+
|
36
|
+
def method_missing(method_name, *args, &block)
|
37
|
+
@template.public_send(method_name, *args, &block)
|
38
|
+
end
|
39
|
+
|
40
|
+
def respond_to_missing?(method_name, include_private = false)
|
41
|
+
@template.respond_to?(method_name, include_private)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/lib/vcfb/version.rb
ADDED
data/lib/vcfb.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require "view_component"
|
2
|
+
require "vcfb/tags/collection_helpers"
|
3
|
+
require "vcfb/tags/collection_check_boxes"
|
4
|
+
require "vcfb/tags/collection_radio_buttons"
|
5
|
+
require "vcfb/acts_as_form_component"
|
6
|
+
require "vcfb/acts_as_form_collection_component"
|
7
|
+
require "vcfb/acts_as_form_label_component"
|
8
|
+
require "vcfb/form_builder"
|
9
|
+
require "vcfb/railtie"
|
10
|
+
require "vcfb/resolver"
|
11
|
+
require "vcfb/template"
|
12
|
+
require "vcfb/version"
|
metadata
ADDED
@@ -0,0 +1,247 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: vcfb
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Alex Monroe
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2022-07-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '6.1'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '8.0'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '6.1'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '8.0'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: view_component
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '2.35'
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '3.0'
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '2.35'
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '3.0'
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: combustion
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '1.3'
|
60
|
+
type: :development
|
61
|
+
prerelease: false
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '1.3'
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: rake
|
69
|
+
requirement: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - "~>"
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '13.0'
|
74
|
+
type: :development
|
75
|
+
prerelease: false
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - "~>"
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '13.0'
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: rspec-rails
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - "~>"
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '5.1'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - "~>"
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '5.1'
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: rubocop-rspec
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - "~>"
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '2.11'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - "~>"
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '2.11'
|
109
|
+
- !ruby/object:Gem::Dependency
|
110
|
+
name: standard
|
111
|
+
requirement: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - "~>"
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '1.12'
|
116
|
+
type: :development
|
117
|
+
prerelease: false
|
118
|
+
version_requirements: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - "~>"
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '1.12'
|
123
|
+
description: FormBuilder for Rails using ViewComponent
|
124
|
+
email:
|
125
|
+
- alex.monroe@cofense.com
|
126
|
+
executables: []
|
127
|
+
extensions: []
|
128
|
+
extra_rdoc_files: []
|
129
|
+
files:
|
130
|
+
- CHANGELOG.md
|
131
|
+
- MIT-LICENSE
|
132
|
+
- README.md
|
133
|
+
- Rakefile
|
134
|
+
- lib/generators/vcfb/components/USAGE.md
|
135
|
+
- lib/generators/vcfb/components/components_generator.rb
|
136
|
+
- lib/generators/vcfb/components/templates/button/component.html.erb
|
137
|
+
- lib/generators/vcfb/components/templates/button/component.rb.tt
|
138
|
+
- lib/generators/vcfb/components/templates/check_box/component.html.erb
|
139
|
+
- lib/generators/vcfb/components/templates/check_box/component.rb.tt
|
140
|
+
- lib/generators/vcfb/components/templates/collection_check_boxes/check_box/component.html.erb
|
141
|
+
- lib/generators/vcfb/components/templates/collection_check_boxes/check_box/component.rb.tt
|
142
|
+
- lib/generators/vcfb/components/templates/collection_check_boxes/component.html.erb
|
143
|
+
- lib/generators/vcfb/components/templates/collection_check_boxes/component.rb.tt
|
144
|
+
- lib/generators/vcfb/components/templates/collection_check_boxes/label/component.html.erb
|
145
|
+
- lib/generators/vcfb/components/templates/collection_check_boxes/label/component.rb.tt
|
146
|
+
- lib/generators/vcfb/components/templates/collection_radio_buttons/component.html.erb
|
147
|
+
- lib/generators/vcfb/components/templates/collection_radio_buttons/component.rb.tt
|
148
|
+
- lib/generators/vcfb/components/templates/collection_radio_buttons/label/component.html.erb
|
149
|
+
- lib/generators/vcfb/components/templates/collection_radio_buttons/label/component.rb.tt
|
150
|
+
- lib/generators/vcfb/components/templates/collection_radio_buttons/radio_button/component.html.erb
|
151
|
+
- lib/generators/vcfb/components/templates/collection_radio_buttons/radio_button/component.rb.tt
|
152
|
+
- lib/generators/vcfb/components/templates/collection_select/component.html.erb
|
153
|
+
- lib/generators/vcfb/components/templates/collection_select/component.rb.tt
|
154
|
+
- lib/generators/vcfb/components/templates/color_field/component.html.erb
|
155
|
+
- lib/generators/vcfb/components/templates/color_field/component.rb.tt
|
156
|
+
- lib/generators/vcfb/components/templates/date_field/component.html.erb
|
157
|
+
- lib/generators/vcfb/components/templates/date_field/component.rb.tt
|
158
|
+
- lib/generators/vcfb/components/templates/date_select/component.html.erb
|
159
|
+
- lib/generators/vcfb/components/templates/date_select/component.rb.tt
|
160
|
+
- lib/generators/vcfb/components/templates/datetime_field/component.html.erb
|
161
|
+
- lib/generators/vcfb/components/templates/datetime_field/component.rb.tt
|
162
|
+
- lib/generators/vcfb/components/templates/datetime_select/component.html.erb
|
163
|
+
- lib/generators/vcfb/components/templates/datetime_select/component.rb.tt
|
164
|
+
- lib/generators/vcfb/components/templates/email_field/component.html.erb
|
165
|
+
- lib/generators/vcfb/components/templates/email_field/component.rb.tt
|
166
|
+
- lib/generators/vcfb/components/templates/file_field/component.html.erb
|
167
|
+
- lib/generators/vcfb/components/templates/file_field/component.rb.tt
|
168
|
+
- lib/generators/vcfb/components/templates/grouped_collection_select/component.html.erb
|
169
|
+
- lib/generators/vcfb/components/templates/grouped_collection_select/component.rb.tt
|
170
|
+
- lib/generators/vcfb/components/templates/label/component.html.erb
|
171
|
+
- lib/generators/vcfb/components/templates/label/component.rb.tt
|
172
|
+
- lib/generators/vcfb/components/templates/month_field/component.html.erb
|
173
|
+
- lib/generators/vcfb/components/templates/month_field/component.rb.tt
|
174
|
+
- lib/generators/vcfb/components/templates/number_field/component.html.erb
|
175
|
+
- lib/generators/vcfb/components/templates/number_field/component.rb.tt
|
176
|
+
- lib/generators/vcfb/components/templates/password_field/component.html.erb
|
177
|
+
- lib/generators/vcfb/components/templates/password_field/component.rb.tt
|
178
|
+
- lib/generators/vcfb/components/templates/radio_button/component.html.erb
|
179
|
+
- lib/generators/vcfb/components/templates/radio_button/component.rb.tt
|
180
|
+
- lib/generators/vcfb/components/templates/range_field/component.html.erb
|
181
|
+
- lib/generators/vcfb/components/templates/range_field/component.rb.tt
|
182
|
+
- lib/generators/vcfb/components/templates/rich_text_area/component.html.erb
|
183
|
+
- lib/generators/vcfb/components/templates/rich_text_area/component.rb.tt
|
184
|
+
- lib/generators/vcfb/components/templates/search_field/component.html.erb
|
185
|
+
- lib/generators/vcfb/components/templates/search_field/component.rb.tt
|
186
|
+
- lib/generators/vcfb/components/templates/select/component.html.erb
|
187
|
+
- lib/generators/vcfb/components/templates/select/component.rb.tt
|
188
|
+
- lib/generators/vcfb/components/templates/submit/component.html.erb
|
189
|
+
- lib/generators/vcfb/components/templates/submit/component.rb.tt
|
190
|
+
- lib/generators/vcfb/components/templates/telephone_field/component.html.erb
|
191
|
+
- lib/generators/vcfb/components/templates/telephone_field/component.rb.tt
|
192
|
+
- lib/generators/vcfb/components/templates/text_area/component.html.erb
|
193
|
+
- lib/generators/vcfb/components/templates/text_area/component.rb.tt
|
194
|
+
- lib/generators/vcfb/components/templates/text_field/component.html.erb
|
195
|
+
- lib/generators/vcfb/components/templates/text_field/component.rb.tt
|
196
|
+
- lib/generators/vcfb/components/templates/time_field/component.html.erb
|
197
|
+
- lib/generators/vcfb/components/templates/time_field/component.rb.tt
|
198
|
+
- lib/generators/vcfb/components/templates/time_select/component.html.erb
|
199
|
+
- lib/generators/vcfb/components/templates/time_select/component.rb.tt
|
200
|
+
- lib/generators/vcfb/components/templates/time_zone_select/component.html.erb
|
201
|
+
- lib/generators/vcfb/components/templates/time_zone_select/component.rb.tt
|
202
|
+
- lib/generators/vcfb/components/templates/url_field/component.html.erb
|
203
|
+
- lib/generators/vcfb/components/templates/url_field/component.rb.tt
|
204
|
+
- lib/generators/vcfb/components/templates/week_field/component.html.erb
|
205
|
+
- lib/generators/vcfb/components/templates/week_field/component.rb.tt
|
206
|
+
- lib/generators/vcfb/components/templates/weekday_select/component.html.erb
|
207
|
+
- lib/generators/vcfb/components/templates/weekday_select/component.rb.tt
|
208
|
+
- lib/vcfb.rb
|
209
|
+
- lib/vcfb/action_view_tag_patch.rb
|
210
|
+
- lib/vcfb/acts_as_form_collection_component.rb
|
211
|
+
- lib/vcfb/acts_as_form_component.rb
|
212
|
+
- lib/vcfb/acts_as_form_label_component.rb
|
213
|
+
- lib/vcfb/form_builder.rb
|
214
|
+
- lib/vcfb/railtie.rb
|
215
|
+
- lib/vcfb/resolver.rb
|
216
|
+
- lib/vcfb/tags/collection_check_boxes.rb
|
217
|
+
- lib/vcfb/tags/collection_helpers.rb
|
218
|
+
- lib/vcfb/tags/collection_radio_buttons.rb
|
219
|
+
- lib/vcfb/template.rb
|
220
|
+
- lib/vcfb/version.rb
|
221
|
+
homepage: https://github.com/wamonroe/vcfb
|
222
|
+
licenses:
|
223
|
+
- MIT
|
224
|
+
metadata:
|
225
|
+
homepage_uri: https://github.com/wamonroe/vcfb
|
226
|
+
source_code_uri: https://github.com/wamonroe/vcfb
|
227
|
+
changelog_uri: https://github.com/wamonroe/vcfb/blob/main/CHANGELOG.md
|
228
|
+
post_install_message:
|
229
|
+
rdoc_options: []
|
230
|
+
require_paths:
|
231
|
+
- lib
|
232
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: 2.7.0
|
237
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
238
|
+
requirements:
|
239
|
+
- - ">="
|
240
|
+
- !ruby/object:Gem::Version
|
241
|
+
version: '0'
|
242
|
+
requirements: []
|
243
|
+
rubygems_version: 3.3.7
|
244
|
+
signing_key:
|
245
|
+
specification_version: 4
|
246
|
+
summary: FormBuilder for Rails using ViewComponent
|
247
|
+
test_files: []
|