govuk_design_system_formbuilder 1.2.7 → 2.0.0b1

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.
Files changed (23) hide show
  1. checksums.yaml +4 -4
  2. data/lib/govuk_design_system_formbuilder/builder.rb +147 -72
  3. data/lib/govuk_design_system_formbuilder/containers/check_boxes_fieldset.rb +9 -9
  4. data/lib/govuk_design_system_formbuilder/containers/form_group.rb +4 -3
  5. data/lib/govuk_design_system_formbuilder/containers/radio_buttons_fieldset.rb +10 -10
  6. data/lib/govuk_design_system_formbuilder/elements/check_boxes/collection.rb +12 -12
  7. data/lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb +6 -2
  8. data/lib/govuk_design_system_formbuilder/elements/check_boxes/fieldset_check_box.rb +7 -3
  9. data/lib/govuk_design_system_formbuilder/elements/date.rb +8 -8
  10. data/lib/govuk_design_system_formbuilder/elements/file.rb +7 -7
  11. data/lib/govuk_design_system_formbuilder/elements/hint.rb +35 -8
  12. data/lib/govuk_design_system_formbuilder/elements/label.rb +6 -2
  13. data/lib/govuk_design_system_formbuilder/elements/legend.rb +1 -1
  14. data/lib/govuk_design_system_formbuilder/elements/radios/collection.rb +14 -14
  15. data/lib/govuk_design_system_formbuilder/elements/radios/collection_radio_button.rb +9 -1
  16. data/lib/govuk_design_system_formbuilder/elements/radios/fieldset_radio_button.rb +13 -5
  17. data/lib/govuk_design_system_formbuilder/elements/select.rb +11 -11
  18. data/lib/govuk_design_system_formbuilder/elements/text_area.rb +11 -11
  19. data/lib/govuk_design_system_formbuilder/traits/collection_item.rb +1 -1
  20. data/lib/govuk_design_system_formbuilder/traits/hint.rb +15 -2
  21. data/lib/govuk_design_system_formbuilder/traits/input.rb +8 -8
  22. data/lib/govuk_design_system_formbuilder/version.rb +1 -1
  23. metadata +4 -4
@@ -8,23 +8,23 @@ module GOVUKDesignSystemFormBuilder
8
8
  include Traits::Label
9
9
  include Traits::Supplemental
10
10
 
11
- def initialize(builder, object_name, attribute_name, hint_text:, label:, caption:, rows:, max_words:, max_chars:, threshold:, form_group_classes:, **kwargs, &block)
11
+ def initialize(builder, object_name, attribute_name, hint:, label:, caption:, rows:, max_words:, max_chars:, threshold:, form_group:, **kwargs, &block)
12
12
  super(builder, object_name, attribute_name, &block)
13
13
 
14
- @label = label
15
- @caption = caption
16
- @hint_text = hint_text
17
- @max_words = max_words
18
- @max_chars = max_chars
19
- @threshold = threshold
20
- @rows = rows
21
- @form_group_classes = form_group_classes
22
- @html_attributes = kwargs
14
+ @label = label
15
+ @caption = caption
16
+ @hint = hint
17
+ @max_words = max_words
18
+ @max_chars = max_chars
19
+ @threshold = threshold
20
+ @rows = rows
21
+ @form_group = form_group
22
+ @html_attributes = kwargs
23
23
  end
24
24
 
25
25
  def html
26
26
  Containers::CharacterCount.new(@builder, **character_count_options).html do
27
- Containers::FormGroup.new(@builder, @object_name, @attribute_name, classes: @form_group_classes).html do
27
+ Containers::FormGroup.new(@builder, @object_name, @attribute_name, **@form_group).html do
28
28
  safe_join([label_element, supplemental_content, hint_element, error_element, text_area, limit_description])
29
29
  end
30
30
  end
@@ -8,7 +8,7 @@ module GOVUKDesignSystemFormBuilder
8
8
  when Symbol, String
9
9
  item.send(method)
10
10
  when Proc
11
- method.call(item)
11
+ capture { method.call(item) }
12
12
  end
13
13
  end
14
14
  end
@@ -2,7 +2,7 @@ module GOVUKDesignSystemFormBuilder
2
2
  module Traits
3
3
  module Hint
4
4
  def hint_id
5
- return nil if @hint_text.blank?
5
+ return nil unless hint_element.active?
6
6
 
7
7
  build_id('hint')
8
8
  end
@@ -10,7 +10,20 @@ module GOVUKDesignSystemFormBuilder
10
10
  private
11
11
 
12
12
  def hint_element
13
- @hint_element ||= Elements::Hint.new(@builder, @object_name, @attribute_name, @hint_text)
13
+ @hint_element ||= Elements::Hint.new(@builder, @object_name, @attribute_name, **hint_content)
14
+ end
15
+
16
+ def hint_content
17
+ case @hint
18
+ when NilClass
19
+ {}
20
+ when Hash
21
+ @hint
22
+ when Proc
23
+ { content: @hint }
24
+ else
25
+ fail(ArgumentError, %(hint must be a Proc or Hash))
26
+ end
14
27
  end
15
28
  end
16
29
  end
@@ -1,19 +1,19 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
2
  module Traits
3
3
  module Input
4
- def initialize(builder, object_name, attribute_name, hint_text:, label:, caption:, width:, form_group_classes:, **kwargs, &block)
4
+ def initialize(builder, object_name, attribute_name, hint:, label:, caption:, width:, form_group:, **kwargs, &block)
5
5
  super(builder, object_name, attribute_name, &block)
6
6
 
7
- @width = width
8
- @label = label
9
- @caption = caption
10
- @hint_text = hint_text
11
- @html_attributes = kwargs
12
- @form_group_classes = form_group_classes
7
+ @width = width
8
+ @label = label
9
+ @caption = caption
10
+ @hint = hint
11
+ @html_attributes = kwargs
12
+ @form_group = form_group
13
13
  end
14
14
 
15
15
  def html
16
- Containers::FormGroup.new(@builder, @object_name, @attribute_name, classes: @form_group_classes).html do
16
+ Containers::FormGroup.new(@builder, @object_name, @attribute_name, **@form_group).html do
17
17
  safe_join([label_element, supplemental_content, hint_element, error_element, input])
18
18
  end
19
19
  end
@@ -1,3 +1,3 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
- VERSION = '1.2.7'.freeze
2
+ VERSION = '2.0.0b1'.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: 1.2.7
4
+ version: 2.0.0b1
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-08-14 00:00:00.000000000 Z
11
+ date: 2020-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionview
@@ -314,9 +314,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
314
314
  version: '0'
315
315
  required_rubygems_version: !ruby/object:Gem::Requirement
316
316
  requirements:
317
- - - ">="
317
+ - - ">"
318
318
  - !ruby/object:Gem::Version
319
- version: '0'
319
+ version: 1.3.1
320
320
  requirements: []
321
321
  rubygems_version: 3.1.2
322
322
  signing_key: