govuk_design_system_formbuilder 1.1.0.beta.2 → 1.1.0.beta.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: 82e501f7e5b7cd7dd736262ffb97f54c0aeead0342d27d8a349d05f13839b58b
4
- data.tar.gz: ea1da5f05bb735f6fdd4d0f12dc0baefde84b07e54dc493625407f0315c9cf3f
3
+ metadata.gz: 98afc3753ec1c0f03ef8e1f50ecb102a2c36bd8b9ebe1b466990509bceaf1106
4
+ data.tar.gz: 1c52249b0568bd1bce3f0af95406850d97e5952b035ebc62afd404cf0c219296
5
5
  SHA512:
6
- metadata.gz: c7244ee3061ca5184f18fd12ed6b98e74eb842d465fe77becae6322728d95b7acfe4b444ce37c48df2a687129bd52b5b5d85bd1d11c3662b42408f1d1c4d7d87
7
- data.tar.gz: 3546f3587c2df1aea3c66dc50e835a228e0735d653bf41982ff13651c2a06310431336484b1872635c7f37ba0e2206f992a343c5022e4eec12edcbfeff9529a5
6
+ metadata.gz: 92aae919b678bc4bf92b58964a2e10f96fbc3a1aab1f6b56da3a30b09ef909fd7e7d6ac56bda9dfb010a3ac9f04f94443a4b5cb8775511d184d7b311603725f7
7
+ data.tar.gz: c5dbd6977e7a4996d169e77874fcb87d8e952a0bb2dc8c95cd4a06ff2a0cdc59ad5b3dd1cf5844197f5c778d2c08a04992b7bba63772ff1e3f4e633a7774e773
@@ -1,53 +1,8 @@
1
1
  require 'active_support/configurable'
2
2
 
3
- require 'govuk_design_system_formbuilder/traits/collection_item'
4
- require 'govuk_design_system_formbuilder/traits/conditional'
5
- require 'govuk_design_system_formbuilder/traits/error'
6
- require 'govuk_design_system_formbuilder/traits/hint'
7
- require 'govuk_design_system_formbuilder/traits/label'
8
- require 'govuk_design_system_formbuilder/traits/localisation'
9
- require 'govuk_design_system_formbuilder/traits/supplemental'
10
-
11
- require 'govuk_design_system_formbuilder/version'
12
- require 'govuk_design_system_formbuilder/builder'
13
- require 'govuk_design_system_formbuilder/base'
14
-
15
- require 'govuk_design_system_formbuilder/elements/hint'
16
- require 'govuk_design_system_formbuilder/elements/label'
17
- require 'govuk_design_system_formbuilder/elements/date'
18
- require 'govuk_design_system_formbuilder/elements/select'
19
- require 'govuk_design_system_formbuilder/elements/submit'
20
- require 'govuk_design_system_formbuilder/elements/text_area'
21
- require 'govuk_design_system_formbuilder/elements/file'
22
-
23
- require 'govuk_design_system_formbuilder/elements/inputs/base'
24
- require 'govuk_design_system_formbuilder/elements/inputs/email'
25
- require 'govuk_design_system_formbuilder/elements/inputs/number'
26
- require 'govuk_design_system_formbuilder/elements/inputs/phone'
27
- require 'govuk_design_system_formbuilder/elements/inputs/text'
28
- require 'govuk_design_system_formbuilder/elements/inputs/url'
29
-
30
- require 'govuk_design_system_formbuilder/elements/radios/collection'
31
- require 'govuk_design_system_formbuilder/elements/radios/collection_radio_button'
32
- require 'govuk_design_system_formbuilder/elements/radios/fieldset_radio_button'
33
-
34
- require 'govuk_design_system_formbuilder/elements/check_boxes/collection'
35
- require 'govuk_design_system_formbuilder/elements/check_boxes/collection_check_box'
36
- require 'govuk_design_system_formbuilder/elements/check_boxes/fieldset_check_box'
37
- require 'govuk_design_system_formbuilder/elements/check_boxes/label'
38
- require 'govuk_design_system_formbuilder/elements/check_boxes/hint'
39
-
40
- require 'govuk_design_system_formbuilder/elements/error_message'
41
- require 'govuk_design_system_formbuilder/elements/error_summary'
42
-
43
- require 'govuk_design_system_formbuilder/containers/check_boxes_fieldset'
44
- require 'govuk_design_system_formbuilder/containers/form_group'
45
- require 'govuk_design_system_formbuilder/containers/fieldset'
46
- require 'govuk_design_system_formbuilder/containers/radios'
47
- require 'govuk_design_system_formbuilder/containers/radio_buttons_fieldset'
48
- require 'govuk_design_system_formbuilder/containers/check_boxes'
49
- require 'govuk_design_system_formbuilder/containers/character_count'
50
- require 'govuk_design_system_formbuilder/containers/supplemental'
3
+ [%w(traits *.rb), %w(*.rb), %w(elements ** *.rb), %w(containers ** *.rb)]
4
+ .flat_map { |matcher| Dir.glob(File.join(__dir__, 'govuk_design_system_formbuilder', *matcher)) }
5
+ .each { |file| require file }
51
6
 
52
7
  module GOVUKDesignSystemFormBuilder
53
8
  include ActiveSupport::Configurable
@@ -2,6 +2,12 @@ module GOVUKDesignSystemFormBuilder
2
2
  module Elements
3
3
  module Inputs
4
4
  class Email < Base
5
+ include Traits::Input
6
+ include Traits::Error
7
+ include Traits::Hint
8
+ include Traits::Label
9
+ include Traits::Supplemental
10
+
5
11
  def builder_method
6
12
  :email_field
7
13
  end
@@ -2,6 +2,12 @@ module GOVUKDesignSystemFormBuilder
2
2
  module Elements
3
3
  module Inputs
4
4
  class Number < Base
5
+ include Traits::Input
6
+ include Traits::Error
7
+ include Traits::Hint
8
+ include Traits::Label
9
+ include Traits::Supplemental
10
+
5
11
  def builder_method
6
12
  :number_field
7
13
  end
@@ -2,6 +2,12 @@ module GOVUKDesignSystemFormBuilder
2
2
  module Elements
3
3
  module Inputs
4
4
  class Phone < Base
5
+ include Traits::Input
6
+ include Traits::Error
7
+ include Traits::Hint
8
+ include Traits::Label
9
+ include Traits::Supplemental
10
+
5
11
  def builder_method
6
12
  :phone_field
7
13
  end
@@ -2,6 +2,12 @@ module GOVUKDesignSystemFormBuilder
2
2
  module Elements
3
3
  module Inputs
4
4
  class Text < Base
5
+ include Traits::Input
6
+ include Traits::Error
7
+ include Traits::Hint
8
+ include Traits::Label
9
+ include Traits::Supplemental
10
+
5
11
  def builder_method
6
12
  :text_field
7
13
  end
@@ -2,6 +2,12 @@ module GOVUKDesignSystemFormBuilder
2
2
  module Elements
3
3
  module Inputs
4
4
  class URL < Base
5
+ include Traits::Input
6
+ include Traits::Error
7
+ include Traits::Hint
8
+ include Traits::Label
9
+ include Traits::Supplemental
10
+
5
11
  def builder_method
6
12
  :url_field
7
13
  end
@@ -0,0 +1,77 @@
1
+ module GOVUKDesignSystemFormBuilder
2
+ module Traits
3
+ module Input
4
+ def initialize(builder, object_name, attribute_name, hint_text:, label:, width:, **extra_args, &block)
5
+ super(builder, object_name, attribute_name, &block)
6
+
7
+ @width = width
8
+ @extra_args = extra_args
9
+ @label = label
10
+ @hint_text = hint_text
11
+ end
12
+
13
+ def html
14
+ Containers::FormGroup.new(@builder, @object_name, @attribute_name).html do
15
+ safe_join(
16
+ [
17
+ label_element.html,
18
+ hint_element.html,
19
+ supplemental_content.html,
20
+ error_element.html,
21
+ @builder.send(
22
+ builder_method,
23
+ @attribute_name,
24
+ id: field_id(link_errors: true),
25
+ class: input_classes,
26
+ aria: {
27
+ describedby: described_by(
28
+ hint_id,
29
+ error_id,
30
+ supplemental_id
31
+ )
32
+ },
33
+ **@extra_args
34
+ )
35
+ ]
36
+ )
37
+ end
38
+ end
39
+
40
+ private
41
+
42
+ def input_classes
43
+ %w(govuk-input).push(width_classes, error_classes).compact
44
+ end
45
+
46
+ def error_classes
47
+ 'govuk-input--error' if has_errors?
48
+ end
49
+
50
+ def width_classes
51
+ return if @width.blank?
52
+
53
+ case @width
54
+ when nil then nil
55
+
56
+ # fixed (character) widths
57
+ when 20 then 'govuk-input--width-20'
58
+ when 10 then 'govuk-input--width-10'
59
+ when 5 then 'govuk-input--width-5'
60
+ when 4 then 'govuk-input--width-4'
61
+ when 3 then 'govuk-input--width-3'
62
+ when 2 then 'govuk-input--width-2'
63
+
64
+ # fluid widths
65
+ when 'full' then 'govuk-!-width-full'
66
+ when 'three-quarters' then 'govuk-!-width-three-quarters'
67
+ when 'two-thirds' then 'govuk-!-width-two-thirds'
68
+ when 'one-half' then 'govuk-!-width-one-half'
69
+ when 'one-third' then 'govuk-!-width-one-third'
70
+ when 'one-quarter' then 'govuk-!-width-one-quarter'
71
+
72
+ else fail(ArgumentError, "invalid width '#{@width}'")
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -1,3 +1,3 @@
1
1
  module GOVUKDesignSystemFormBuilder
2
- VERSION = '1.1.0.beta.2'.freeze
2
+ VERSION = '1.1.0.beta.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: 1.1.0.beta.2
4
+ version: 1.1.0.beta.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: 2019-12-21 00:00:00.000000000 Z
11
+ date: 2019-12-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionview
@@ -284,7 +284,6 @@ files:
284
284
  - lib/govuk_design_system_formbuilder/elements/error_summary.rb
285
285
  - lib/govuk_design_system_formbuilder/elements/file.rb
286
286
  - lib/govuk_design_system_formbuilder/elements/hint.rb
287
- - lib/govuk_design_system_formbuilder/elements/inputs/base.rb
288
287
  - lib/govuk_design_system_formbuilder/elements/inputs/email.rb
289
288
  - lib/govuk_design_system_formbuilder/elements/inputs/number.rb
290
289
  - lib/govuk_design_system_formbuilder/elements/inputs/phone.rb
@@ -301,6 +300,7 @@ files:
301
300
  - lib/govuk_design_system_formbuilder/traits/conditional.rb
302
301
  - lib/govuk_design_system_formbuilder/traits/error.rb
303
302
  - lib/govuk_design_system_formbuilder/traits/hint.rb
303
+ - lib/govuk_design_system_formbuilder/traits/input.rb
304
304
  - lib/govuk_design_system_formbuilder/traits/label.rb
305
305
  - lib/govuk_design_system_formbuilder/traits/localisation.rb
306
306
  - lib/govuk_design_system_formbuilder/traits/supplemental.rb
@@ -1,84 +0,0 @@
1
- module GOVUKDesignSystemFormBuilder
2
- module Elements
3
- module Inputs
4
- class Base < GOVUKDesignSystemFormBuilder::Base
5
- include Traits::Error
6
- include Traits::Hint
7
- include Traits::Label
8
- include Traits::Supplemental
9
-
10
- def initialize(builder, object_name, attribute_name, hint_text:, label:, width:, **extra_args, &block)
11
- super(builder, object_name, attribute_name, &block)
12
-
13
- @width = width
14
- @extra_args = extra_args
15
- @label = label
16
- @hint_text = hint_text
17
- end
18
-
19
- def html
20
- Containers::FormGroup.new(@builder, @object_name, @attribute_name).html do
21
- safe_join(
22
- [
23
- label_element.html,
24
- hint_element.html,
25
- supplemental_content.html,
26
- error_element.html,
27
- @builder.send(
28
- builder_method,
29
- @attribute_name,
30
- id: field_id(link_errors: true),
31
- class: input_classes,
32
- aria: {
33
- describedby: described_by(
34
- hint_id,
35
- error_id,
36
- supplemental_id
37
- )
38
- },
39
- **@extra_args
40
- )
41
- ]
42
- )
43
- end
44
- end
45
-
46
- private
47
-
48
- def input_classes
49
- %w(govuk-input).push(width_classes, error_classes).compact
50
- end
51
-
52
- def error_classes
53
- 'govuk-input--error' if has_errors?
54
- end
55
-
56
- def width_classes
57
- return if @width.blank?
58
-
59
- case @width
60
- when nil then nil
61
-
62
- # fixed (character) widths
63
- when 20 then 'govuk-input--width-20'
64
- when 10 then 'govuk-input--width-10'
65
- when 5 then 'govuk-input--width-5'
66
- when 4 then 'govuk-input--width-4'
67
- when 3 then 'govuk-input--width-3'
68
- when 2 then 'govuk-input--width-2'
69
-
70
- # fluid widths
71
- when 'full' then 'govuk-!-width-full'
72
- when 'three-quarters' then 'govuk-!-width-three-quarters'
73
- when 'two-thirds' then 'govuk-!-width-two-thirds'
74
- when 'one-half' then 'govuk-!-width-one-half'
75
- when 'one-third' then 'govuk-!-width-one-third'
76
- when 'one-quarter' then 'govuk-!-width-one-quarter'
77
-
78
- else fail(ArgumentError, "invalid width '#{@width}'")
79
- end
80
- end
81
- end
82
- end
83
- end
84
- end