template_form 0.4.5 → 0.4.6

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: 3ab5ed3be11107463cb37eb661448c8ca84b3e7406c614ddb96e304f20ac00a2
4
- data.tar.gz: af663d70babbee7cdd0252944b782594d16974741013abdec5d8ea3fa2219280
3
+ metadata.gz: a2dffdc1b897b10460d029723d7f286651388e59c7a637eded104e78898edbab
4
+ data.tar.gz: bf8b340b369c8113fae4d5d6311a83383de8cb9bd832e10fbe41c2d7917cc960
5
5
  SHA512:
6
- metadata.gz: 26f2892859cbc20d66efc5a4ead2e270ca7512ab913477a5c6805bdb9449214e40d7eb4e4120ce1d63be079574ba4920f798ed85c5f8da9cdef76a7fcea599b6
7
- data.tar.gz: b38d06e77b48a4e06e4dd8dfb3866b27cc63ecb926944d6189c0c45b921f4184c78e48dc22bb319ddcb393895ed4a9d1f0ca336be6a93ec5ac1d5edbc3157e0f
6
+ metadata.gz: 0ac600b29d24bb2d9bce1b63d7d1d75cd9b94b7c25c836ab3c23a734db71f2f22b361be6a49b7b16055585c7b3dc642e5f010d3846831ea0ed152cea5e26412f
7
+ data.tar.gz: 1b2e8c6caf8c4fa2d897ae42941c6d4d6f234c9bee95422f307614dc69836146cb1f87a3e451321e033113bcce0e003f00b2b2acbf113c5eb85b0a3ecec47371
data/README.md CHANGED
@@ -159,6 +159,13 @@ def render
159
159
  end
160
160
  ```
161
161
 
162
+ You also have access to the `view` in which the template is contained. This is handy if you need to call methods on the view inside your template. For example, translating values for data attributes.
163
+
164
+ ```erb
165
+ <div data-controller="foo" data-foo-show-value=view.translate("foo.show")>
166
+ </div>
167
+ ```
168
+
162
169
  ### Attribute types and form inputs
163
170
 
164
171
  Template Form looks up the type for the attribute, falling back to `:string` if it can't find one. Then it uses the corresponding form input.
@@ -6,6 +6,7 @@ module TemplateForm
6
6
  def initialize(builder, attribute_name, options)
7
7
  @builder = builder
8
8
  @attribute_name = attribute_name
9
+ @view = options.delete(:view)
9
10
 
10
11
  @form_type = options.delete(:form_type) || builder.form_type
11
12
 
@@ -37,7 +38,8 @@ module TemplateForm
37
38
  hint_text: hint_text,
38
39
 
39
40
  options: options,
40
- errors: errors
41
+ errors: errors,
42
+ view: view
41
43
  ).html_safe
42
44
  end
43
45
 
@@ -48,6 +50,7 @@ module TemplateForm
48
50
  form_type
49
51
  builder
50
52
  attribute_name
53
+ view
51
54
 
52
55
  has_label
53
56
  label_text
@@ -22,6 +22,7 @@ module TemplateForm
22
22
  # associated record, the second and subsequent ones have the
23
23
  # correct form type.
24
24
  @form_type = options[:form_type] || TemplateForm.form_type
25
+ @view = options[:view]
25
26
  end
26
27
 
27
28
  def input(attribute_name, options = {})
@@ -31,6 +32,8 @@ module TemplateForm
31
32
 
32
33
  options[:type] ||= 'password' if attribute_name.match(/password/)
33
34
 
35
+ options.merge! view: @view
36
+
34
37
  input_for(attribute_type).new(self, attribute_name, options).render
35
38
  end
36
39
 
@@ -5,6 +5,7 @@ module TemplateForm
5
5
 
6
6
  def template_form_with(model: nil, scope: nil, url: nil, format: nil, **options, &block)
7
7
  options[:builder] = TemplateForm::FormBuilder
8
+ options[:view] = self
8
9
 
9
10
  with_template_form_field_error_proc do
10
11
  form_with model: model, scope: scope, url: url, format: format, **options, &block
@@ -8,6 +8,7 @@ module TemplateForm
8
8
  def initialize(builder, attribute_name, options)
9
9
  @builder = builder
10
10
  @attribute_name = attribute_name
11
+ @view = options.delete(:view)
11
12
 
12
13
  @form_type = options.delete(:form_type) || builder.form_type
13
14
 
@@ -54,7 +55,9 @@ module TemplateForm
54
55
  group_method: group_method,
55
56
  group_label_method: group_label_method,
56
57
  option_key_method: option_key_method,
57
- option_value_method: option_value_method
58
+ option_value_method: option_value_method,
59
+
60
+ view: view
58
61
  ).html_safe
59
62
  end
60
63
 
@@ -62,6 +65,7 @@ module TemplateForm
62
65
 
63
66
  attr_reader *%i[
64
67
  collection
68
+ view
65
69
 
66
70
  html_options
67
71
 
@@ -8,6 +8,7 @@ module TemplateForm
8
8
  def initialize(builder, attribute_name, options)
9
9
  @builder = builder
10
10
  @attribute_name = attribute_name
11
+ @view = options.delete(:view)
11
12
 
12
13
  @form_type = options.delete(:form_type) || builder.form_type
13
14
 
@@ -37,6 +38,7 @@ module TemplateForm
37
38
  builder,
38
39
  attribute_name: attribute_name,
39
40
  collection: collection,
41
+ view: view,
40
42
 
41
43
  has_label: has_label,
42
44
  label_text: label_text,
@@ -58,6 +60,7 @@ module TemplateForm
58
60
 
59
61
  attr_reader *%i[
60
62
  collection
63
+ view
61
64
 
62
65
  html_options
63
66
 
@@ -1,3 +1,3 @@
1
1
  module TemplateForm
2
- VERSION = "0.4.5"
2
+ VERSION = "0.4.6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: template_form
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Stewart
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-24 00:00:00.000000000 Z
11
+ date: 2022-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  requirements: []
140
- rubygems_version: 3.1.2
140
+ rubygems_version: 3.2.33
141
141
  signing_key:
142
142
  specification_version: 4
143
143
  summary: A template-based form builder for Rails.