govuk_design_system_formbuilder 1.2.7 → 2.0.0b1

Sign up to get free protection for your applications and to get access to all the features.
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: