Sha256: bcdc252f7d7bc5b0137a01e42807ec097a96e1cce22b822bc52f1a49d3c2edfe

Contents?: true

Size: 893 Bytes

Versions: 3

Compression:

Stored size: 893 Bytes

Contents

module AbAdmin
  module Models
    module Header
      extend ActiveSupport::Concern

      included do
        include ActionView::Helpers::SanitizeHelper

        belongs_to :headerable, polymorphic: true
        before_save :normalize_html
      end
      
      def empty?
        [keywords, description, title].map(&:blank?).all?
      end

      def has_info?
        !empty?
      end

      def read(key)
        value = read_attribute(key)
        value.blank? ? nil : value
      end

      def normalize_html
        AbAdmin.translated_locales.each do |loc|
          %w(title h1 keywords description).each do |attr|
            send("#{attr}_#{loc}=", send("#{attr}_#{loc}").to_s.no_html)
          end
        end
        AbAdmin.translated_locales.each do |loc|
          send("seo_block_#{loc}=", sanitize(send("seo_block_#{loc}").to_s))
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ab_admin-0.11.0 lib/ab_admin/models/header.rb
ab_admin-0.10.0 lib/ab_admin/models/header.rb
ab_admin-0.9.0 lib/ab_admin/models/header.rb