Sha256: 122adb59110f292fd7457b01e9e507a695ed0eb53ef9b7713f10be5ff7b706fa

Contents?: true

Size: 1.34 KB

Versions: 21

Compression:

Stored size: 1.34 KB

Contents

module Virgo
  class Image < ActiveRecord::Base
    extend FriendlyId

    friendly_id :name, use: :slugged

    mount_uploader :image, Virgo::ImageUploader

    validates :name, presence: true
    validates :image, presence: true

    belongs_to :user

    before_validation :derive_name

    scope :search, ->(filters={}){
      items = all

      if filters[:term].present?
        items = items.where("virgo_images.name ILIKE :term", term: "%#{filters[:term]}%")
      end

      items
    }

    def url(arg)
      image.url
    end

    def redactor_json
      {
        thumb: image.url(:thumb),
        image: image.url
      }
    end

    def as_json(opts={})
      {
        id: id,
        name: name,
        alt_text: alt_text,
        credit: credit,
        description: description,
        slug: slug,
        image_url: image.try(:url),
        small_thumb_image: image.try(:url, :small_thumb),
        thumb_image: image.try(:url, :thumb),
        med_thumb_image: image.try(:url, :med_thumb),
        content_image: image.try(:url, :content),
        featured_image: image.try(:url, :featured),
        wide_image: image.try(:url, :wide)
      }
    end

    private

    def derive_name
      if defined?(image_changed?) && image_changed? && !name_changed? && name.blank?
        self.name = image.file.try(:filename)
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
virgo-0.3.17 app/models/virgo/image.rb
virgo-0.3.16 app/models/virgo/image.rb
virgo-0.3.15 app/models/virgo/image.rb
virgo-0.3.14 app/models/virgo/image.rb
virgo-0.3.13 app/models/virgo/image.rb
virgo-0.3.12 app/models/virgo/image.rb
virgo-0.3.11 app/models/virgo/image.rb
virgo-0.3.10 app/models/virgo/image.rb
virgo-0.3.9 app/models/virgo/image.rb
virgo-0.3.8 app/models/virgo/image.rb
virgo-0.3.7 app/models/virgo/image.rb
virgo-0.3.6 app/models/virgo/image.rb
virgo-0.3.4 app/models/virgo/image.rb
virgo-0.3.3 app/models/virgo/image.rb
virgo-0.3.2 app/models/virgo/image.rb
virgo-0.3.1 app/models/virgo/image.rb
virgo-0.3 app/models/virgo/image.rb
virgo-0.2.9 app/models/virgo/image.rb
virgo-0.2.8 app/models/virgo/image.rb
virgo-0.2.7 app/models/virgo/image.rb