Sha256: 2d11b05c78362c1076ea52e2eddc0603905d252b6298636c75669ad1c82c29b8

Contents?: true

Size: 893 Bytes

Versions: 37

Compression:

Stored size: 893 Bytes

Contents

# frozen_string_literal: true

module Alchemy
  module Ingredients
    # A text headline
    #
    class Headline < Alchemy::Ingredient
      include DomIds

      store_accessor :data,
        :dom_id,
        :level,
        :size

      allow_settings %i[
        anchor
        levels
        sizes
      ]

      before_create :set_level_and_size

      def preview_text(maxlength = 30)
        "H#{level}: #{value}"[0..maxlength - 1]
      end

      def level_options
        levels.map { |level| ["H#{level}", level] }
      end

      def size_options
        sizes.map { |size| [".h#{size}", size] }
      end

      private

      def levels
        settings.fetch(:levels, (1..6))
      end

      def sizes
        settings.fetch(:sizes, [])
      end

      def set_level_and_size
        self.level ||= levels.first
        self.size ||= sizes.first
      end
    end
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
alchemy_cms-7.1.13 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.0.16 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.1.12 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.0.15 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.1.11 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.1.10 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.1.9 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.0.14 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.0.13 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.1.8 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.1.7 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.0.12 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.0.11 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.1.6 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.1.5 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.0.10 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.1.4 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.0.9 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.1.3 app/models/alchemy/ingredients/headline.rb
alchemy_cms-7.1.2 app/models/alchemy/ingredients/headline.rb