Sha256: 2699be626ba32388e7f25ee527e15ce694b2c5f185664705e2142d4af15fd578
Contents?: true
Size: 1.31 KB
Versions: 9
Compression:
Stored size: 1.31 KB
Contents
module GOVUKDesignSystemFormBuilder module Containers class Fieldset < Base def initialize(builder, object_name = nil, attribute_name = nil, legend: {}, caption: {}, described_by: nil, &block) super(builder, object_name, attribute_name, &block) @legend = legend @caption = caption @described_by = described_by(described_by) @attribute_name = attribute_name end def html tag.fieldset(**options) do safe_join([legend_element, (@block_content || yield)]) end end private def options { class: classes, aria: { describedby: @described_by } } end def classes %(#{brand}-fieldset) end def legend_element @legend_element ||= if @legend.nil? Elements::Null.new else Elements::Legend.new(@builder, @object_name, @attribute_name, **legend_options) end end def legend_options case @legend when Hash @legend.merge(caption: @caption) when Proc { content: @legend } else fail(ArgumentError, %(legend must be a Proc or Hash)) end end end end end
Version data entries
9 entries across 9 versions & 1 rubygems