Sha256: 661fffceffa948b3fbadb58a58442e770fc6ed4c851b7068908d84c7442ea70c

Contents?: true

Size: 623 Bytes

Versions: 4

Compression:

Stored size: 623 Bytes

Contents

module AbAdmin
  module Concerns
    module Headerable
      extend ActiveSupport::Concern

      included do
        has_one :header, as: :headerable, dependent: :delete

        accepts_nested_attributes_for :header, reject_if: :all_blank

        ::Header.all_translated_attribute_names.each do |attr|
          define_method "header_#{attr}=" do |val|
            default_header.send("#{attr}=", val)
          end

          define_method "header_#{attr}" do
            default_header.send(attr)
          end
        end
      end

      def default_header
        header || build_header
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ab_admin-0.8.2 lib/ab_admin/concerns/headerable.rb
ab_admin-0.8.1 lib/ab_admin/concerns/headerable.rb
ab_admin-0.8.0 lib/ab_admin/concerns/headerable.rb
ab_admin-0.7.0 lib/ab_admin/concerns/headerable.rb