| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | require "db/exceptions/invalid_record" | 
					
						
							|  |  |  | require "db/mongo/models/mongo_model" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Image < MongoModel | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   attr_accessor :id, :provider, :remote_user, :name, :bootstrap_template | 
					
						
							|  |  |  |   types :id => {:type => String, :empty => false}, | 
					
						
							|  |  |  |         :provider => {:type => String, :empty => false}, | 
					
						
							|  |  |  |         :remote_user => {:type => String, :empty => false}, | 
					
						
							|  |  |  |         :name => {:type => String, :empty => true}, | 
					
						
							|  |  |  |         :bootstrap_template => {:type => String, :empty => false, :nil => true} | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  |   set_validators ::Validators::Image::ImageInFilter, | 
					
						
							|  |  |  |     ::Validators::Image::BootstrapTemplate | 
					
						
							| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def initialize p={} | 
					
						
							|  |  |  |     self.id = p["id"] | 
					
						
							|  |  |  |     self.provider = p["provider"] | 
					
						
							|  |  |  |     self.remote_user = p["remote_user"] | 
					
						
							|  |  |  |     self.name = p["name"] || "" | 
					
						
							|  |  |  |     self.bootstrap_template = p["bootstrap_template"] | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-18 11:00:24 +03:00
										 |  |  |   def self.build_from_bson args | 
					
						
							| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  |     image = Image.new(args) | 
					
						
							|  |  |  |     image.id = args["_id"] | 
					
						
							|  |  |  |     image | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def to_hash_without_id | 
					
						
							|  |  |  |     o = { | 
					
						
							|  |  |  |       "provider" => self.provider, | 
					
						
							|  |  |  |       "name" => self.name, | 
					
						
							|  |  |  |       "remote_user" => self.remote_user | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     o["bootstrap_template"] = self.bootstrap_template | 
					
						
							|  |  |  |     o | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def self.create_from_json! json | 
					
						
							|  |  |  |     Image.new( JSON.parse(json) ) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | end |