govuk_design_system_formbuilder 0.7.6 → 0.7.7

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: 0fc37b1f1f89baf5185ef1bc708f03ebe2a9d6a331ae880dacc2b797b670ce6a
4
- data.tar.gz: a4195d6fd6b127f972c84277fd56d3ebc0b1eaed3a342257fa68db7c24ee6a14
3
+ metadata.gz: e6685d3566f5cb5c92a953b68294c59d35470853cd3802d0671f893df5b4e8dd
4
+ data.tar.gz: d598a5153f570008c05562511ca3e164a93aa151050663a1f30b2434c3869661
5
5
  SHA512:
6
- metadata.gz: 86bbb01e953d5711ce6767a2cbc4dc97c01ee21ab852a8afe919b4552388f30ed1a00724dc6883208cb609581a9c8c384ea44940289de0ed8931ec6bf7762819
7
- data.tar.gz: 3608d0f9feddd47aa1879dfcbb068f0fad726d6f7604738e693a293a7d1dacd81466a81b07c48d69a7bc4701ce82237233c2e4de3e092a37f616bbf7041de5b4
6
+ metadata.gz: d6cda652f21dfc6f7a654943d80ce8830c2aa6d0ccab953925eb656d3a8e2b0a3177fa876031910cfef8d59733859cc7b8902442c734d354b66b4d4c10f6fa20
7
+ data.tar.gz: f8f65e2eae38bd02a1b58d675b966abe4849489d09e73b320cc3a21e5f13a81c2694bfbde7bb641b2019e333857aebf723ccd215fb135551442b48c0889d5667
@@ -43,11 +43,9 @@ module GOVUKDesignSystemFormBuilder
43
43
  end
44
44
 
45
45
  def wrap_conditional(block)
46
- conditional = @builder.content_tag('div', class: conditional_classes, id: conditional_id) do
46
+ @builder.content_tag('div', class: conditional_classes, id: conditional_id) do
47
47
  @builder.capture { block.call }
48
48
  end
49
-
50
- return conditional, conditional_id
51
49
  end
52
50
 
53
51
  private
@@ -145,7 +145,7 @@ module GOVUKDesignSystemFormBuilder
145
145
  # label: { text: 'Tell us about your work history' },
146
146
  # rows: 8,
147
147
  # max_words: 300
148
- def govuk_text_area(attribute_name, hint_text: nil, label: {}, max_words: nil, max_chars: nil, rows: 5, threshold: nil, **args)
148
+ def govuk_text_area(attribute_name, hint_text: nil, label: {}, max_words: nil, max_chars: nil, rows: 5, threshold: nil, **args)
149
149
  Elements::TextArea.new(self, object_name, attribute_name, hint_text: hint_text, label: label, max_words: max_words, max_chars: max_chars, rows: rows, threshold: threshold, **args).html
150
150
  end
151
151
 
@@ -160,7 +160,7 @@ module GOVUKDesignSystemFormBuilder
160
160
  # @option label size [String] the size of the label font, can be +large+, +medium+, +regular+ or +small+
161
161
  # @option label weight [String] the weight of the label font, can be +bold+ or +regular+
162
162
  # @return [ActiveSupport::SafeBuffer] HTML output
163
- def govuk_collection_select(attribute_name, collection, value_method, text_method, options: {}, html_options: {}, hint_text: nil, label: {}, &block)
163
+ def govuk_collection_select(attribute_name, collection, value_method, text_method, options: {}, html_options: { class: 'govuk-select' }, hint_text: nil, label: {})
164
164
  label_element = Elements::Label.new(self, object_name, attribute_name, label)
165
165
  hint_element = Elements::Hint.new(self, object_name, attribute_name, hint_text)
166
166
  error_element = Elements::ErrorMessage.new(self, object_name, attribute_name)
@@ -227,12 +227,12 @@ module GOVUKDesignSystemFormBuilder
227
227
  # legend: { text: 'Pick your favourite colour', size: 'm' },
228
228
  # hint_text: 'If you cannot find the exact match choose something close',
229
229
  # inline: false
230
- def govuk_collection_radio_buttons(attribute_name, collection, value_method, text_method, hint_method = nil, hint_text: nil, legend: { text: nil, size: 'm' }, inline: false, &block)
230
+ def govuk_collection_radio_buttons(attribute_name, collection, value_method, text_method, hint_method = nil, hint_text: nil, legend: { text: nil, size: 'm' }, inline: false)
231
231
  hint_element = Elements::Hint.new(self, object_name, attribute_name, hint_text)
232
232
  error_element = Elements::ErrorMessage.new(self, object_name, attribute_name)
233
233
 
234
234
  Containers::FormGroup.new(self, object_name, attribute_name).html do
235
- Containers::Fieldset.new(self, object_name, attribute_name, legend: legend, described_by: [error_element.error_id, hint_element.hint_id]).html do
235
+ Containers::Fieldset.new(self, legend: legend, described_by: [error_element.error_id, hint_element.hint_id]).html do
236
236
  safe_join(
237
237
  [
238
238
  hint_element.html,
@@ -276,12 +276,12 @@ module GOVUKDesignSystemFormBuilder
276
276
  # = f.govuk_radio_divider
277
277
  # = f.govuk_radio_button :favourite_colour, :yellow, label: { text: 'Yellow' }
278
278
  #
279
- def govuk_radio_buttons_fieldset(attribute_name, inline: false, hint_text: nil, legend: {}, &block)
279
+ def govuk_radio_buttons_fieldset(attribute_name, inline: false, hint_text: nil, legend: {})
280
280
  hint_element = Elements::Hint.new(self, object_name, attribute_name, hint_text)
281
281
  error_element = Elements::ErrorMessage.new(self, object_name, attribute_name)
282
282
 
283
283
  Containers::FormGroup.new(self, object_name, attribute_name).html do
284
- Containers::Fieldset.new(self, object_name, attribute_name, legend: legend, described_by: [error_element.error_id, hint_element.hint_id]).html do
284
+ Containers::Fieldset.new(self, legend: legend, described_by: [error_element.error_id, hint_element.hint_id]).html do
285
285
  safe_join([
286
286
  hint_element.html,
287
287
  error_element.html,
@@ -293,7 +293,6 @@ module GOVUKDesignSystemFormBuilder
293
293
  end
294
294
  end
295
295
 
296
-
297
296
  # Generates a radio button
298
297
  #
299
298
  # @note This should only be used from within a {#govuk_radio_buttons_fieldset}
@@ -363,7 +362,7 @@ module GOVUKDesignSystemFormBuilder
363
362
  error_element = Elements::ErrorMessage.new(self, object_name, attribute_name)
364
363
 
365
364
  Containers::FormGroup.new(self, object_name, attribute_name).html do
366
- Containers::Fieldset.new(self, object_name, attribute_name, legend: legend, described_by: [error_element.error_id, hint_element.hint_id]).html do
365
+ Containers::Fieldset.new(self, legend: legend, described_by: [error_element.error_id, hint_element.hint_id]).html do
367
366
  safe_join(
368
367
  [
369
368
  hint_element.html,
@@ -449,5 +448,24 @@ module GOVUKDesignSystemFormBuilder
449
448
  def govuk_error_summary(title = 'There is a problem')
450
449
  Elements::ErrorSummary.new(self, object_name, title).html
451
450
  end
451
+
452
+ # Generates a fieldset containing the contents of the block
453
+ #
454
+ # @param legend [Hash] options for configuring the hash
455
+ # @option legend text [String] the fieldset legend's text content
456
+ # @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
457
+ # @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+
458
+ #
459
+ # @example A fieldset containing address fields
460
+ # = f.govuk_fieldset legend: { text: 'Address' }
461
+ # = f.govuk_text_field :street
462
+ # = f.govuk_text_field :town
463
+ # = f.govuk_text_field :city
464
+ #
465
+ # @see https://design-system.service.gov.uk/components/fieldset/ GOV.UK fieldset
466
+ # @return [ActiveSupport::SafeBuffer] HTML output
467
+ def govuk_fieldset(legend: { text: 'Fieldset heading' }, &block)
468
+ Containers::Fieldset.new(self, legend: legend).html(&block)
469
+ end
452
470
  end
453
471
  end
@@ -3,7 +3,9 @@ module GOVUKDesignSystemFormBuilder
3
3
  class CharacterCount < Base
4
4
  def initialize(builder, max_words:, max_chars:, threshold:)
5
5
  @builder = builder
6
+
6
7
  fail ArgumentError, 'limit can be words or chars' if max_words && max_chars
8
+
7
9
  @max_words = max_words
8
10
  @max_chars = max_chars
9
11
  @threshold = threshold
@@ -4,10 +4,10 @@ module GOVUKDesignSystemFormBuilder
4
4
  LEGEND_DEFAULTS = { text: nil, tag: 'h1', size: 'xl' }.freeze
5
5
 
6
6
  # FIXME standardise sizes with labels
7
- LEGEND_SIZES = %w(xl l m s)
7
+ LEGEND_SIZES = %w(xl l m s).freeze
8
8
 
9
- def initialize(builder, object_name, attribute_name, legend: {}, described_by: nil)
10
- super(builder, object_name, attribute_name)
9
+ def initialize(builder, legend: {}, described_by: nil)
10
+ @builder = builder
11
11
  @legend = LEGEND_DEFAULTS.merge(legend)
12
12
  @described_by = descriptors(described_by)
13
13
  end
@@ -11,6 +11,7 @@ module GOVUKDesignSystemFormBuilder
11
11
  yield
12
12
  end
13
13
  end
14
+
14
15
  private
15
16
 
16
17
  def radios_classes
@@ -3,10 +3,10 @@ module GOVUKDesignSystemFormBuilder
3
3
  module CheckBoxes
4
4
  class Hint
5
5
  def initialize(builder, attribute, checkbox, text)
6
- @builder = builder
6
+ @builder = builder
7
7
  @attribute = attribute
8
- @checkbox = checkbox
9
- @text = text
8
+ @checkbox = checkbox
9
+ @text = text
10
10
  end
11
11
 
12
12
  def html
@@ -10,7 +10,7 @@ module GOVUKDesignSystemFormBuilder
10
10
  @builder.label(class: label_classes)
11
11
  end
12
12
 
13
- private
13
+ private
14
14
 
15
15
  def label_classes
16
16
  %w(govuk-label govuk-checkboxes__label)
@@ -1,7 +1,7 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
2
  module Elements
3
3
  class Date < GOVUKDesignSystemFormBuilder::Base
4
- SEGMENTS = { day: '3i', month: '2i', year: '1i' }
4
+ SEGMENTS = { day: '3i', month: '2i', year: '1i' }.freeze
5
5
 
6
6
  def initialize(builder, object_name, attribute_name, legend:, hint_text:, date_of_birth: false, &block)
7
7
  super(builder, object_name, attribute_name)
@@ -16,7 +16,7 @@ module GOVUKDesignSystemFormBuilder
16
16
  error_element = Elements::ErrorMessage.new(@builder, @object_name, @attribute_name)
17
17
 
18
18
  Containers::FormGroup.new(@builder, @object_name, @attribute_name).html do
19
- Containers::Fieldset.new(@builder, @object_name, @attribute_name, legend: @legend, described_by: [error_element.error_id, hint_element.hint_id]).html do
19
+ Containers::Fieldset.new(@builder, legend: @legend, described_by: [error_element.error_id, hint_element.hint_id]).html do
20
20
  @builder.safe_join(
21
21
  [
22
22
  hint_element.html,
@@ -3,9 +3,10 @@ module GOVUKDesignSystemFormBuilder
3
3
  class Hint < GOVUKDesignSystemFormBuilder::Base
4
4
  def initialize(builder, object_name, attribute_name, text, value = nil, radio: false, checkbox: false)
5
5
  super(builder, object_name, attribute_name)
6
- @value = value
7
- @hint_text = text
8
- @radio_class = radio_class(radio)
6
+
7
+ @value = value
8
+ @hint_text = text
9
+ @radio_class = radio_class(radio)
9
10
  @checkbox_class = checkbox_class(checkbox)
10
11
  end
11
12
 
@@ -4,10 +4,15 @@ module GOVUKDesignSystemFormBuilder
4
4
  class FieldsetRadio < Base
5
5
  def initialize(builder, object_name, attribute_name, value, label:, hint_text:, &block)
6
6
  super(builder, object_name, attribute_name)
7
- @value = value
8
- @label = label
9
- @hint_text = hint_text
10
- @conditional_content, @conditional_id = wrap_conditional(block) if block_given?
7
+
8
+ @value = value
9
+ @label = label
10
+ @hint_text = hint_text
11
+
12
+ if block_given?
13
+ @conditional_content = wrap_conditional(block)
14
+ @conditional_id = conditional_id
15
+ end
11
16
  end
12
17
 
13
18
  def html
@@ -2,14 +2,14 @@ module GOVUKDesignSystemFormBuilder
2
2
  module Elements
3
3
  class Submit < GOVUKDesignSystemFormBuilder::Base
4
4
  def initialize(builder, text, warning:, secondary:, prevent_double_click:, &block)
5
+ fail ArgumentError, 'buttons can be warning or secondary' if warning && secondary
6
+
5
7
  @builder = builder
6
8
  @text = text
7
9
  @prevent_double_click = prevent_double_click
8
-
9
- fail ArgumentError, 'buttons can be warning or secondary' if (warning && secondary)
10
- @warning = warning
11
- @secondary = secondary
12
- @block_content = @builder.capture { block.call } if block_given?
10
+ @warning = warning
11
+ @secondary = secondary
12
+ @block_content = @builder.capture { block.call } if block_given?
13
13
  end
14
14
 
15
15
  def html
@@ -20,6 +20,7 @@ module GOVUKDesignSystemFormBuilder
20
20
  ])
21
21
  end
22
22
  end
23
+
23
24
  private
24
25
 
25
26
  def submit_button_classes(content_present)
@@ -1,3 +1,3 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
- VERSION = '0.7.6'.freeze
2
+ VERSION = '0.7.7'.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.6
4
+ version: 0.7.7
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-05 00:00:00.000000000 Z
11
+ date: 2019-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -31,7 +31,7 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: 5.2.3
33
33
  - !ruby/object:Gem::Dependency
34
- name: sqlite3
34
+ name: govuk-lint
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
@@ -45,35 +45,41 @@ dependencies:
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
47
  - !ruby/object:Gem::Dependency
48
- name: rspec-rails
48
+ name: pry
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '3.8'
53
+ version: 0.12.2
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '3.8'
60
+ version: 0.12.2
61
61
  - !ruby/object:Gem::Dependency
62
- name: rspec-html-matchers
62
+ name: pry-byebug
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '0'
67
+ version: '3.7'
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 3.7.0
68
71
  type: :development
69
72
  prerelease: false
70
73
  version_requirements: !ruby/object:Gem::Requirement
71
74
  requirements:
72
75
  - - "~>"
73
76
  - !ruby/object:Gem::Version
74
- version: '0'
77
+ version: '3.7'
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: 3.7.0
75
81
  - !ruby/object:Gem::Dependency
76
- name: govuk-lint
82
+ name: rspec-html-matchers
77
83
  requirement: !ruby/object:Gem::Requirement
78
84
  requirements:
79
85
  - - "~>"
@@ -87,39 +93,33 @@ dependencies:
87
93
  - !ruby/object:Gem::Version
88
94
  version: '0'
89
95
  - !ruby/object:Gem::Dependency
90
- name: pry
96
+ name: rspec-rails
91
97
  requirement: !ruby/object:Gem::Requirement
92
98
  requirements:
93
99
  - - "~>"
94
100
  - !ruby/object:Gem::Version
95
- version: 0.12.2
101
+ version: '3.8'
96
102
  type: :development
97
103
  prerelease: false
98
104
  version_requirements: !ruby/object:Gem::Requirement
99
105
  requirements:
100
106
  - - "~>"
101
107
  - !ruby/object:Gem::Version
102
- version: 0.12.2
108
+ version: '3.8'
103
109
  - !ruby/object:Gem::Dependency
104
- name: pry-byebug
110
+ name: sqlite3
105
111
  requirement: !ruby/object:Gem::Requirement
106
112
  requirements:
107
113
  - - "~>"
108
114
  - !ruby/object:Gem::Version
109
- version: '3.7'
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- version: 3.7.0
115
+ version: '0'
113
116
  type: :development
114
117
  prerelease: false
115
118
  version_requirements: !ruby/object:Gem::Requirement
116
119
  requirements:
117
120
  - - "~>"
118
121
  - !ruby/object:Gem::Version
119
- version: '3.7'
120
- - - ">="
121
- - !ruby/object:Gem::Version
122
- version: 3.7.0
122
+ version: '0'
123
123
  description: A Rails form builder that generates form inputs adhering to the GOV.UK
124
124
  Design System
125
125
  email: