govuk_design_system_formbuilder 0.7.10 → 0.9.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 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