Sha256: f3823edd2af4102d5d7febc26f7154be0ecc5c93683bb2e1bd1c7e362da4c4a9

Contents?: true

Size: 1.24 KB

Versions: 5

Compression:

Stored size: 1.24 KB

Contents

module ActiveadminSettings
  module PictureMethods

    def self.included(base)
      # Features
      base.mount_uploader :data, ActiveadminSettings::RedactorPictureUploader
    end

    # Helpers
    def has_dimensions?
      respond_to?(:width) && respond_to?(:height)
    end

    def image?
      ActiveadminSettings::IMAGE_TYPES.include?(data_content_type)
    end

    def url
      data.url
    end

    def image
      url
    end

    def thumb
      data.thumb.url
    end

    def as_json_methods
      [:image, :thumb]
    end

    def as_json(options = nil)
      options = {
        :methods => as_json_methods
      }
      super options
    end
  end

  if defined?(Mongoid)
    class Picture
      include Mongoid::Document
      include Mongoid::Timestamps

      # Fields
      field :data_file_size
      field :data_content_type
      field :width,   :type => Integer
      field :height,  :type => Integer

      include PictureMethods

      # Scopes
      default_scope order_by(:created_at => :desc)
    end
  else
    class Picture < ActiveRecord::Base

      attr_accessible :data_content_type, :data_file_size, :height, :width, :data

      include PictureMethods

      # Scopes
      default_scope order('created_at desc')
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
activeadmin-settings-0.4.4 app/models/activeadmin_settings/picture.rb
activeadmin-settings-0.4.3 app/models/activeadmin_settings/picture.rb
activeadmin-settings-0.4.2 app/models/activeadmin_settings/picture.rb
activeadmin-settings-0.4.1 app/models/activeadmin_settings/picture.rb
activeadmin-settings-0.4.0 app/models/activeadmin_settings/picture.rb