Class: GOVUKDesignSystemFormBuilder::Elements::TextArea

Inherits:
Base
  • Object
show all
Includes:
Traits::DataAttributesI18n, Traits::Error, Traits::HTMLAttributes, Traits::HTMLClasses, Traits::Hint, Traits::Label, Traits::Supplemental
Defined in:
lib/govuk_design_system_formbuilder/elements/text_area.rb

Instance Method Summary collapse

Methods included from Traits::HTMLClasses

#build_classes

Methods included from Traits::HTMLAttributes

#attributes

Methods included from Traits::Hint

#hint_id

Methods included from Traits::Error

#error_id

Methods inherited from Base

#field_id, #to_s

Constructor Details

#initialize(builder, object_name, attribute_name, hint:, label:, caption:, rows:, max_words:, max_chars:, threshold:, form_group:, description_other_text:, under_limit_other_text:, under_limit_one_text:, at_limit_text:, over_limit_other_text:, over_limit_one_text:, **kwargs, &block) ⇒ TextArea

Returns a new instance of TextArea.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/govuk_design_system_formbuilder/elements/text_area.rb', line 14

def initialize(
  builder,
  object_name,
  attribute_name,
  hint:,
  label:,
  caption:,
  rows:,
  max_words:,
  max_chars:,
  threshold:,
  form_group:,
  description_other_text:,
  under_limit_other_text:,
  under_limit_one_text:,
  at_limit_text:,
  over_limit_other_text:,
  over_limit_one_text:,
  **kwargs,
  &block
)
  super(builder, object_name, attribute_name, &block)

  fail ArgumentError, 'limit can be words or chars' if max_words && max_chars

  @label           = label
  @caption         = caption
  @hint            = hint
  @max_words       = max_words
  @max_chars       = max_chars
  @threshold       = threshold
  @rows            = rows
  @form_group      = form_group
  @html_attributes = kwargs

  @description_other_text = description_other_text
  @under_limit_other_text = under_limit_other_text
  @under_limit_one_text   = under_limit_one_text
  @at_limit_text          = at_limit_text
  @over_limit_other_text  = over_limit_other_text
  @over_limit_one_text    = over_limit_one_text
end

Instance Method Details

#htmlObject



57
58
59
60
61
# File 'lib/govuk_design_system_formbuilder/elements/text_area.rb', line 57

def html
  Containers::FormGroup.new(*bound, **@form_group.merge(limit_form_group_options), **i18n_data).html do
    safe_join([label_element, supplemental_content, hint_element, error_element, text_area, limit_description])
  end
end