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 site_id # needed by the uploader of custom fields self.collection.site_id end def to_liquid Locomotive::Liquid::Drops::Asset.new(self) end end