govuk_design_system_formbuilder 0.7.6 → 0.7.7

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: 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: