govuk_design_system_formbuilder 2.1.2 → 2.1.3

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