Sha256: a63bcff4da47b0a7696ff414e13fcac13cee0f9eb3922fc56e53394e9677c4d5

Contents?: true

Size: 923 Bytes

Versions: 4

Compression:

Stored size: 923 Bytes

Contents

module Ecm
  module Sliders
    class Item < ActiveRecord::Base
      # acts as list
      acts_as_list scope: :slider_id

      # acts as markup
      acts_as_markup language: :variable, columns: [ :body ]

      # associations
      belongs_to :slider, inverse_of: :items

      # callbacks
      after_initialize :set_defaults, if: :new_record?

      # attachments
      has_one_attached :image

      # validations
      validates :slider, presence: true
      validates :image, presence: true
      validates :markup_language, :presence  => true,
                                  :inclusion => Ecm::Sliders::Configuration.markup_languages

      def human
        "#{slider.class.model_name.human} #{slider.human} - #{self.class.model_name.human} #{id}"
      end

      private

      def set_defaults
        self.markup_language ||= Ecm::Sliders::Configuration.default_markup_language
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ecm_sliders2-0.0.4 app/models/ecm/sliders/item.rb
ecm_sliders2-0.0.3 app/models/ecm/sliders/item.rb
ecm_sliders2-0.0.2 app/models/ecm/sliders/item.rb
ecm_sliders2-0.0.1 app/models/ecm/sliders/item.rb