engine/app/models/asset.rb

40 lines
886 B
Ruby

class Asset
include Mongoid::Document
include Mongoid::Timestamps
## Extensions ##
include Models::Extensions::Asset::Vignette
include CustomFields::ProxyClassEnabler
## fields ##
field :name, :type => String
field :content_type, :type => String
field :width, :type => Integer
field :height, :type => Integer
field :size, :type => Integer
field :position, :type => Integer, :default => 0
mount_uploader :source, AssetUploader
## associations ##
embedded_in :collection, :class_name => 'AssetCollection', :inverse_of => :assets
## validations ##
validates_presence_of :name, :source
## behaviours ##
## methods ##
%w{image stylesheet javascript pdf video audio}.each do |type|
define_method("#{type}?") do
self.content_type == type
end
end
def to_liquid
{ :url => self.source.url }.merge(self.attributes)
end
end