Sha256: 7e22c6f356e4811ed1193b026c3010194c981dc15b89ea0f51b54e9a8728f889
Contents?: true
Size: 1.75 KB
Versions: 2
Compression:
Stored size: 1.75 KB
Contents
class Ecm::Pictures::Picture < ActiveRecord::Base # associations belongs_to :gallery, counter_cache: true has_many :attached_pictures, foreign_key: 'ecm_pictures_picture_id' # acts as list acts_as_list scope: :gallery # acts as markup acts_as_markup language: :variable, columns: [:description, :description] # callbacks after_initialize :set_defaults before_validation :set_name_from_image_file_name, if: proc { |p| (p.name.nil? || p.name.empty?) } # default scope default_scope { order(:gallery_id, :position) } # friendly id extend FriendlyId friendly_id :name, use: [:slugged, :finders] # paperclip has_attached_file :image, Ecm::Pictures::Configuration.paperclip_options # tagging acts_as_taggable if respond_to?(:acts_as_taggable) # validations validates :image, attachment_presence: true # validates_attachment_presence :image validates_attachment :image, content_type: { content_type: /\Aimage\/.*\Z/ } validates :markup_language, presence: true, inclusion: Ecm::Pictures::Configuration.markup_languages validates :name, presence: true def display_code_for_erb display_code(:erb) end def display_code_for_textile display_code(:textile) end def display_code(style) case style when :erb "<%= render_picture '#{name}' %>" when :textile "!#{image.url}!".gsub(/(\?[0-9]{1,})/, '') end end def to_s name end def human name end private def set_defaults if self.new_record? self.markup_language ||= Ecm::Pictures::Configuration.default_markup_language end end def set_name_from_image_file_name self.name = File.basename(image_file_name, File.extname(image_file_name)) unless image_file_name.nil? end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ecm_pictures2-3.0.1 | app/models/ecm/pictures/picture.rb |
ecm_pictures2-3.0.0 | app/models/ecm/pictures/picture.rb |