govuk_design_system_formbuilder 0.7.10 → 0.9.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: 73b7bd429e21b82e45676784581f4fe11b9416f64ef2b91352e8eebdfab59137
4
- data.tar.gz: 7cdabd663e9355585c53102a15269af7771bac0cbcd4c0c3a6c679d231505a66
3
+ metadata.gz: d14133ba63175446f9f236dca08807940ff40721098934978d73b0bd8e318d24
4
+ data.tar.gz: 501a3e8518adaf0f2f21b8e76a4de66f4e17b6ad51d5dc50349893d7cf1f7251
5
5
  SHA512:
6
- metadata.gz: 8d770e843277f1d75dc2c1dbe3948f6213188e11329290a545812a272ee9a2fc7223101410ca94251af83c8d4548916d9d9c3cac9de837525fdfaa9414401e3b
7
- data.tar.gz: bc8fe7c54322289504f46bfdbdb00615b938c9dda38ce6b89e822042943e1f4fe3bf503f856339499f7a6da243b0465b647ad33c089d23085dc2d9c17c35075f
6
+ metadata.gz: 3d4b888def8299a530840d9866298105a63b4355b9fff0da68dc12769230ac6f76d661eff3d27a2532ba133c122e2dbfac27764482e54802f4726f249e372815
7
+ data.tar.gz: bc4a68efd9fe2ba7a92e0d0954b22abd7074b5c6109e5577038bbddbeca6d3b2f216bd9de2269ecdfe749482d960d652c6a554fcaaabdd639cd0e7fbcc29242e
data/README.md CHANGED
@@ -5,9 +5,12 @@
5
5
  [![Test Coverage](https://api.codeclimate.com/v1/badges/fde73b5dc9476197281b/test_coverage)](https://codeclimate.com/github/DFE-Digital/govuk_design_system_formbuilder/test_coverage)
6
6
 
7
7
  This gem provides a easy-to-use form builder that generates forms that are
8
- fully-compliant with the [GOV.UK Design System](https://design-system.service.gov.uk/),
8
+ fully-compliant with version 3 of the [GOV.UK Design System](https://design-system.service.gov.uk/),
9
9
  minimising the amount of markup you need to write.
10
10
 
11
+ The latest version of this gem that supports GOV.UK Design System version 2 is
12
+ [0.7.10](https://github.com/DFE-Digital/govuk_design_system_formbuilder/releases/tag/v0.7.10).
13
+
11
14
  In addition to the basic markup, the more-advanced functionality of the Design
12
15
  System is exposed via the API. Adding [JavaScript-enhanced word count
13
16
  checking](https://www.rubydoc.info/gems/govuk_design_system_formbuilder/GOVUKDesignSystemFormBuilder/Builder#govuk_text_area-instance_method)
@@ -103,7 +106,7 @@ bundle
103
106
  Now, if everything was successful, run RSpec:
104
107
 
105
108
  ```sh
106
- rspec -fd
109
+ bundle exec rspec -fd
107
110
  ```
108
111
 
109
112
  ## Contributing
@@ -15,7 +15,7 @@ module GOVUKDesignSystemFormBuilder
15
15
  end
16
16
 
17
17
  def label_element
18
- @label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, @label)
18
+ @label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, **@label)
19
19
  end
20
20
 
21
21
  # returns the id value used for the input
@@ -7,7 +7,7 @@ module GOVUKDesignSystemFormBuilder
7
7
  end
8
8
 
9
9
  def html
10
- @builder.content_tag('div', class: check_boxes_classes, data: { module: 'checkboxes' }) do
10
+ @builder.content_tag('div', class: check_boxes_classes, data: { module: 'govuk-checkboxes' }) do
11
11
  yield
12
12
  end
13
13
  end
@@ -13,13 +13,15 @@ module GOVUKDesignSystemFormBuilder
13
13
  def html
14
14
  Containers::FormGroup.new(@builder, @object_name, @attribute_name).html do
15
15
  Containers::Fieldset.new(@builder, legend: @legend, described_by: [error_element.error_id, hint_element.hint_id]).html do
16
- @builder.safe_join([
17
- hint_element.html,
18
- error_element.html,
19
- Containers::CheckBoxes.new(@builder, small: @small).html do
20
- @block_content
21
- end
22
- ])
16
+ @builder.safe_join(
17
+ [
18
+ hint_element.html,
19
+ error_element.html,
20
+ Containers::CheckBoxes.new(@builder, small: @small).html do
21
+ @block_content
22
+ end
23
+ ]
24
+ )
23
25
  end
24
26
  end
25
27
  end
@@ -12,10 +12,7 @@ module GOVUKDesignSystemFormBuilder
12
12
 
13
13
  def html
14
14
  @builder.content_tag('fieldset', class: fieldset_classes, aria: { describedby: @described_by }) do
15
- @builder.safe_join([
16
- build_legend,
17
- yield
18
- ])
15
+ @builder.safe_join([build_legend, yield])
19
16
  end
20
17
  end
21
18
 
@@ -14,13 +14,9 @@ module GOVUKDesignSystemFormBuilder
14
14
  private
15
15
 
16
16
  def form_group_classes
17
- %w(govuk-form-group).push(form_group_error_classes).compact
18
- end
19
-
20
- def form_group_error_classes
21
- return nil unless has_errors?
22
-
23
- 'govuk-form-group--error'
17
+ %w(govuk-form-group).tap do |classes|
18
+ classes.push('govuk-form-group--error') if has_errors?
19
+ end
24
20
  end
25
21
  end
26
22
  end
@@ -14,13 +14,15 @@ module GOVUKDesignSystemFormBuilder
14
14
  def html
15
15
  Containers::FormGroup.new(@builder, @object_name, @attribute_name).html do
16
16
  Containers::Fieldset.new(@builder, legend: @legend, described_by: [error_element.error_id, hint_element.hint_id]).html do
17
- @builder.safe_join([
18
- hint_element.html,
19
- error_element.html,
20
- Containers::Radios.new(@builder, inline: @inline, small: @small).html do
21
- @block_content
22
- end
23
- ])
17
+ @builder.safe_join(
18
+ [
19
+ hint_element.html,
20
+ error_element.html,
21
+ Containers::Radios.new(@builder, inline: @inline, small: @small).html do
22
+ @block_content
23
+ end
24
+ ]
25
+ )
24
26
  end
25
27
  end
26
28
  end
@@ -8,7 +8,7 @@ module GOVUKDesignSystemFormBuilder
8
8
  end
9
9
 
10
10
  def html
11
- @builder.content_tag('div', class: radios_classes, data: { module: 'radios' }) do
11
+ @builder.content_tag('div', class: radios_classes, data: { module: 'govuk-radios' }) do
12
12
  yield
13
13
  end
14
14
  end
@@ -19,7 +19,14 @@ module GOVUKDesignSystemFormBuilder
19
19
 
20
20
  def html
21
21
  @builder.content_tag('div', class: 'govuk-checkboxes__item') do
22
- @builder.safe_join([input, label, hint, @conditional_content])
22
+ @builder.safe_join(
23
+ [
24
+ input,
25
+ label_element.html,
26
+ hint_element.html,
27
+ @conditional_content
28
+ ]
29
+ )
23
30
  end
24
31
  end
25
32
 
@@ -40,26 +47,12 @@ module GOVUKDesignSystemFormBuilder
40
47
  )
41
48
  end
42
49
 
43
- def label
44
- Elements::Label.new(
45
- @builder,
46
- @object_name,
47
- @attribute_name,
48
- value: @value,
49
- checkbox: true,
50
- **@label,
51
- ).html
50
+ def label_element
51
+ @label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, checkbox: true, value: @value, **@label)
52
52
  end
53
53
 
54
- def hint
55
- Elements::Hint.new(
56
- @builder,
57
- @object_name,
58
- @attribute_name,
59
- @hint_text,
60
- @value,
61
- checkbox: true
62
- ).html
54
+ def hint_element
55
+ @hint_element ||= Elements::Hint.new(@builder, @object_name, @attribute_name, @hint_text, checkbox: true)
63
56
  end
64
57
 
65
58
  def conditional_classes
@@ -19,7 +19,7 @@ module GOVUKDesignSystemFormBuilder
19
19
  end
20
20
 
21
21
  def message
22
- @builder.object.errors.messages.dig(@attribute_name)
22
+ @builder.object.errors.messages[@attribute_name]&.first
23
23
  end
24
24
  end
25
25
  end
@@ -18,7 +18,7 @@ module GOVUKDesignSystemFormBuilder
18
18
  @builder.content_tag('ul', class: ['govuk-list', summary_class('list')]) do
19
19
  @builder.safe_join(
20
20
  @builder.object.errors.messages.map do |attribute, messages|
21
- error_list_item(attribute, messages)
21
+ error_list_item(attribute, messages.first)
22
22
  end
23
23
  )
24
24
  end
@@ -30,10 +30,10 @@ module GOVUKDesignSystemFormBuilder
30
30
 
31
31
  private
32
32
 
33
- def error_list_item(attribute, messages)
33
+ def error_list_item(attribute, message)
34
34
  @builder.content_tag('li') do
35
35
  @builder.link_to(
36
- messages.join(', '),
36
+ message,
37
37
  same_page_link(field_id(attribute)),
38
38
  data: {
39
39
  turbolinks: false
@@ -16,20 +16,22 @@ module GOVUKDesignSystemFormBuilder
16
16
 
17
17
  def html
18
18
  Containers::FormGroup.new(@builder, @object_name, @attribute_name).html do
19
- @builder.safe_join([
20
- label_element.html,
21
- hint_element.html,
22
- error_element.html,
23
- @block_content,
24
- @builder.collection_select(
25
- @attribute_name,
26
- @collection,
27
- @value_method,
28
- @text_method,
29
- @options,
30
- build_html_options(hint_element, error_element)
31
- )
32
- ])
19
+ @builder.safe_join(
20
+ [
21
+ label_element.html,
22
+ hint_element.html,
23
+ error_element.html,
24
+ @block_content,
25
+ @builder.collection_select(
26
+ @attribute_name,
27
+ @collection,
28
+ @value_method,
29
+ @text_method,
30
+ @options,
31
+ build_html_options(hint_element, error_element)
32
+ )
33
+ ]
34
+ )
33
35
  end
34
36
  end
35
37
 
@@ -15,15 +15,20 @@ module GOVUKDesignSystemFormBuilder
15
15
 
16
16
  def html
17
17
  @builder.content_tag('div', class: %w(govuk-form-group)) do
18
- @builder.safe_join([
19
- @builder.submit(@text, class: %w(govuk-button).push(
20
- warning_class,
21
- secondary_class,
22
- padding_class(@block_content.present?)
23
- ),
24
- **extra_args),
25
- @block_content
26
- ])
18
+ @builder.safe_join(
19
+ [
20
+ @builder.submit(
21
+ @text,
22
+ class: %w(govuk-button).push(
23
+ warning_class,
24
+ secondary_class,
25
+ padding_class(@block_content.present?)
26
+ ),
27
+ **extra_args
28
+ ),
29
+ @block_content
30
+ ]
31
+ )
27
32
  end
28
33
  end
29
34
 
@@ -45,6 +50,7 @@ module GOVUKDesignSystemFormBuilder
45
50
  {
46
51
  formnovalidate: !@validate,
47
52
  data: {
53
+ module: 'govuk-button',
48
54
  'prevent-double-click' => @prevent_double_click
49
55
  }.select { |_k, v| v.present? }
50
56
  }
@@ -37,7 +37,7 @@ module GOVUKDesignSystemFormBuilder
37
37
  def govuk_textarea_classes
38
38
  %w(govuk-textarea).tap do |classes|
39
39
  classes.push('govuk-textarea--error') if has_errors?
40
- classes.push('js-character-count') if limit?
40
+ classes.push('govuk-js-character-count') if limit?
41
41
  end
42
42
  end
43
43
 
@@ -1,3 +1,3 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
- VERSION = '0.7.10'.freeze
2
+ VERSION = '0.9.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_design_system_formbuilder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.10
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Yates
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-30 00:00:00.000000000 Z
11
+ date: 2019-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -192,7 +192,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
192
  - !ruby/object:Gem::Version
193
193
  version: '0'
194
194
  requirements: []
195
- rubygems_version: 3.0.1
195
+ rubygems_version: 3.0.3
196
196
  signing_key:
197
197
  specification_version: 4
198
198
  summary: GOV.UK-compliant Rails form builder