Sha256: 3c6242415979b5248664e431bd3518247213e49ad97fd5f72d296fe7191b83ad

Contents?: true

Size: 1.08 KB

Versions: 56

Compression:

Stored size: 1.08 KB

Contents

module GovukPublishingComponents
  module Presenters
    class SharedHelper
      attr_reader :options, :margin_top, :margin_bottom, :heading_level, :classes

      def initialize(local_assigns)
        @options = local_assigns
        @margin_top = @options[:margin_top] || nil
        @margin_bottom = @options[:margin_bottom] || 3
        @heading_level = @options[:heading_level] || 2

        if local_assigns.include?(:classes)
          @classes = local_assigns[:classes].split(" ")
          unless @classes.all? { |c| c.start_with?("js-") }
            raise(ArgumentError, "Passed classes must be prefixed with `js-`")
          end
        end
      end

      def get_margin_top
        [*0..9].include?(@margin_top) ? "govuk-!-margin-top-#{margin_top}" : ""
      end

      def get_margin_bottom
        [*0..9].include?(@margin_bottom) ? "govuk-!-margin-bottom-#{margin_bottom}" : "govuk-!-margin-bottom-3"
      end

      def get_heading_level
        return [*1..6].include?(@heading_level) ? "h#{@heading_level}" : "h2" unless @heading_level.zero?

        "span"
      end
    end
  end
end

Version data entries

56 entries across 56 versions & 1 rubygems

Version Path
govuk_publishing_components-23.7.1 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-23.7.0 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-23.6.0 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-23.5.1 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-23.5.0 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-23.4.0 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-23.3.0 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-23.2.1 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-23.2.0 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-23.1.0 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-23.0.0 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-21.69.0 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-21.68.1 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-21.68.0 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-21.67.2 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-21.67.1 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-21.67.0 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-21.66.4 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-21.66.3 lib/govuk_publishing_components/presenters/shared_helper.rb
govuk_publishing_components-21.66.2 lib/govuk_publishing_components/presenters/shared_helper.rb