govuk_design_system_formbuilder 2.1.2 → 2.1.3

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: 3fe5519859df526162a3594076aef6a37c0275990026f62fa1455b9918cea36c
4
- data.tar.gz: 31ead896758013f7586eb0d4e98e533c6a2bb3da9470e5cd573db2d845755dc9
3
+ metadata.gz: 5bf39d8cfcafbc412e81222f437a8a4b6ccd446fbbf8a389a3ce95fc8ac5b403
4
+ data.tar.gz: 211f72eccb795874319dcda270d7dd43d79cf446ea4fd4ee1ae20a2bfde35f37
5
5
  SHA512:
6
- metadata.gz: 05d32a227069f1adc8c64ba76e22d025629a419df6b714e369595342be29c8c5ac6547f39921fc62a78141dc6eda7d449c9c9335a01313661bb93602b2803203
7
- data.tar.gz: cadc9b2ca35ffc8ac68cdb7a8c9f4bd4551e5ac8d8de5b2508f03a313069d60b89cb40a65a6e83cbd5a5b7eb834257ef0984d7901fa811e3ec23184a0cff998c
6
+ metadata.gz: da6cfc65ca96b181110a040339c39073f22652ec3d71dc20124cefe592cfa87d2faba5ddbaa3eed554c511a7775680b82576bd2fcff2152027f1d974b2967bcf
7
+ data.tar.gz: 80726be73183e18389a990c66f39b7a19089a87f6ccc252c58eaff92b242e012d34ea656d87898199fff64d00cf778b30df9fcea08bb28e2eca4a4798aa65c9f
@@ -30,7 +30,11 @@ module GOVUKDesignSystemFormBuilder
30
30
  end
31
31
 
32
32
  def legend_element
33
- @legend_element ||= Elements::Legend.new(@builder, @object_name, @attribute_name, **legend_options)
33
+ @legend_element ||= if @legend.nil?
34
+ Elements::Null.new
35
+ else
36
+ Elements::Legend.new(@builder, @object_name, @attribute_name, **legend_options)
37
+ end
34
38
  end
35
39
 
36
40
  def legend_options
@@ -6,6 +6,7 @@ module GOVUKDesignSystemFormBuilder
6
6
 
7
7
  include Traits::Label
8
8
  include Traits::Hint
9
+ include Traits::FieldsetItem
9
10
  include Traits::Conditional
10
11
 
11
12
  def initialize(builder, object_name, attribute_name, value, unchecked_value, label:, hint:, link_errors:, multiple:, &block)
@@ -54,20 +55,8 @@ module GOVUKDesignSystemFormBuilder
54
55
  %w(checkboxes__input).prefix(brand)
55
56
  end
56
57
 
57
- def label_element
58
- @label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, **label_content, **label_options)
59
- end
60
-
61
- def label_options
62
- { checkbox: true, value: @value, link_errors: @link_errors }
63
- end
64
-
65
- def hint_element
66
- @hint_element ||= Elements::Hint.new(@builder, @object_name, @attribute_name, **hint_options, **hint_content)
67
- end
68
-
69
- def hint_options
70
- { value: @value, checkbox: true }
58
+ def fieldset_options
59
+ { checkbox: true }
71
60
  end
72
61
 
73
62
  def conditional_classes
@@ -25,7 +25,7 @@ module GOVUKDesignSystemFormBuilder
25
25
  end
26
26
 
27
27
  def html
28
- return nil unless active?
28
+ return unless active?
29
29
 
30
30
  content_tag(hint_tag, **hint_options, **@html_attributes) { hint_body }
31
31
  end
@@ -0,0 +1,19 @@
1
+ module GOVUKDesignSystemFormBuilder
2
+ module Elements
3
+ class Null < Base
4
+ def initialize; end
5
+
6
+ def html
7
+ nil
8
+ end
9
+
10
+ def active?
11
+ false
12
+ end
13
+
14
+ def hint_id
15
+ nil
16
+ end
17
+ end
18
+ end
19
+ end
@@ -6,6 +6,7 @@ module GOVUKDesignSystemFormBuilder
6
6
 
7
7
  include Traits::Label
8
8
  include Traits::Hint
9
+ include Traits::FieldsetItem
9
10
  include Traits::Conditional
10
11
 
11
12
  def initialize(builder, object_name, attribute_name, value, label:, hint:, link_errors:, &block)
@@ -34,26 +35,10 @@ module GOVUKDesignSystemFormBuilder
34
35
  end
35
36
  end
36
37
 
37
- def radio_options
38
+ def fieldset_options
38
39
  { radio: true }
39
40
  end
40
41
 
41
- def label_element
42
- @label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, **label_content, **label_options)
43
- end
44
-
45
- def label_options
46
- { value: @value, link_errors: @link_errors }.merge(radio_options)
47
- end
48
-
49
- def hint_element
50
- @hint_element ||= Elements::Hint.new(@builder, @object_name, @attribute_name, **hint_options, **hint_content)
51
- end
52
-
53
- def hint_options
54
- { value: @value }.merge(radio_options)
55
- end
56
-
57
42
  def input
58
43
  @builder.radio_button(@attribute_name, @value, **options)
59
44
  end
@@ -4,11 +4,11 @@ module GOVUKDesignSystemFormBuilder
4
4
  private
5
5
 
6
6
  def caption_element
7
- @caption_element ||= Elements::Caption.new(@builder, @object_name, @attribute_name, **caption_options)
8
- end
9
-
10
- def caption_options
11
- @caption
7
+ @caption_element ||= if @caption.nil?
8
+ Elements::Null.new
9
+ else
10
+ Elements::Caption.new(@builder, @object_name, @attribute_name, **@caption)
11
+ end
12
12
  end
13
13
  end
14
14
  end
@@ -0,0 +1,31 @@
1
+ module GOVUKDesignSystemFormBuilder
2
+ module Traits
3
+ module FieldsetItem
4
+ private
5
+
6
+ def label_element
7
+ @label_element ||= if @label.nil?
8
+ Elements::Null.new
9
+ else
10
+ Elements::Label.new(@builder, @object_name, @attribute_name, **label_content, **label_options)
11
+ end
12
+ end
13
+
14
+ def label_options
15
+ { value: @value, link_errors: @link_errors }.merge(fieldset_options)
16
+ end
17
+
18
+ def hint_element
19
+ @hint_element ||= if @hint.nil?
20
+ Elements::Null.new
21
+ else
22
+ Elements::Hint.new(@builder, @object_name, @attribute_name, **hint_options, **hint_content)
23
+ end
24
+ end
25
+
26
+ def hint_options
27
+ { value: @value }.merge(fieldset_options)
28
+ end
29
+ end
30
+ end
31
+ end
@@ -10,13 +10,15 @@ module GOVUKDesignSystemFormBuilder
10
10
  private
11
11
 
12
12
  def hint_element
13
- @hint_element ||= Elements::Hint.new(@builder, @object_name, @attribute_name, **hint_content)
13
+ @hint_element ||= if @hint.nil?
14
+ Elements::Null.new
15
+ else
16
+ Elements::Hint.new(@builder, @object_name, @attribute_name, **hint_content)
17
+ end
14
18
  end
15
19
 
16
20
  def hint_content
17
21
  case @hint
18
- when NilClass
19
- {}
20
22
  when Hash
21
23
  @hint
22
24
  when Proc
@@ -4,7 +4,11 @@ module GOVUKDesignSystemFormBuilder
4
4
  private
5
5
 
6
6
  def label_element
7
- @label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, caption: @caption, **label_content)
7
+ @label_element ||= if @label.nil?
8
+ Elements::Null.new
9
+ else
10
+ Elements::Label.new(@builder, @object_name, @attribute_name, caption: @caption, **label_content)
11
+ end
8
12
  end
9
13
 
10
14
  def label_content
@@ -1,3 +1,3 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
- VERSION = '2.1.2'.freeze
2
+ VERSION = '2.1.3'.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: 2.1.2
4
+ version: 2.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Yates
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-28 00:00:00.000000000 Z
11
+ date: 2020-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionview
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 3.17.0
61
+ version: 3.17.2
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 3.17.0
68
+ version: 3.17.2
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pry
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -176,14 +176,14 @@ dependencies:
176
176
  requirements:
177
177
  - - "~>"
178
178
  - !ruby/object:Gem::Version
179
- version: 3.23.0
179
+ version: 3.24.0
180
180
  type: :development
181
181
  prerelease: false
182
182
  version_requirements: !ruby/object:Gem::Requirement
183
183
  requirements:
184
184
  - - "~>"
185
185
  - !ruby/object:Gem::Version
186
- version: 3.23.0
186
+ version: 3.24.0
187
187
  - !ruby/object:Gem::Dependency
188
188
  name: rubypants
189
189
  requirement: !ruby/object:Gem::Requirement
@@ -278,6 +278,7 @@ files:
278
278
  - lib/govuk_design_system_formbuilder/elements/inputs/url.rb
279
279
  - lib/govuk_design_system_formbuilder/elements/label.rb
280
280
  - lib/govuk_design_system_formbuilder/elements/legend.rb
281
+ - lib/govuk_design_system_formbuilder/elements/null.rb
281
282
  - lib/govuk_design_system_formbuilder/elements/radios/collection.rb
282
283
  - lib/govuk_design_system_formbuilder/elements/radios/collection_radio_button.rb
283
284
  - lib/govuk_design_system_formbuilder/elements/radios/fieldset_radio_button.rb
@@ -288,6 +289,7 @@ files:
288
289
  - lib/govuk_design_system_formbuilder/traits/collection_item.rb
289
290
  - lib/govuk_design_system_formbuilder/traits/conditional.rb
290
291
  - lib/govuk_design_system_formbuilder/traits/error.rb
292
+ - lib/govuk_design_system_formbuilder/traits/fieldset_item.rb
291
293
  - lib/govuk_design_system_formbuilder/traits/hint.rb
292
294
  - lib/govuk_design_system_formbuilder/traits/input.rb
293
295
  - lib/govuk_design_system_formbuilder/traits/label.rb