Sha256: 067e67871ffa9d52b97555317027ab43add96eefff940fffb5dffed50c07b157
Contents?: true
Size: 1.55 KB
Versions: 1
Compression:
Stored size: 1.55 KB
Contents
# # Custom field types for Model#field ..., type: ... # module Media class File attr_accessor :uid, :name def initialize( mongoid_value ) case mongoid_value when nil @uid, @name = nil, nil when Array @uid, @name = mongoid_value[0], mongoid_value[1] when Hash @uid, @name = mongoid_value[:uid], mongoid_value[:name] when Media::File @uid, @name = mongoid_value.uid, mongoid_value.name else raise ArgumentError.new "Failed to create Media::File value from #{mongoid_value.class}" end end # Converts an object of this instance into a database friendly value. def mongoize (uid.nil? && name.nil?) ? nil : [ uid, name ] end class << self # Get the object as it was stored in the database, and instantiate # this custom class from it. def demongoize( object ) object.nil? ? nil : Media::File.new( object ) end # Takes any possible object and converts it to how it would be # stored in the database. def mongoize( object ) Media::File.new(object).mongoize end # Converts the object that was supplied to a criteria and converts it # into a database friendly form. def evolve( object ) case object when Media::File then object.mongoize else object end end end # class << self end # class File class Image < File MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif'] # definitions here end # class Image end # module Media
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
aerogel-media-1.4.0 | lib/aerogel/media/field_types.rb |