require "db/mongo/models/mongo_model" require "json" require "db/validators/key/file_existence" require "db/validators/key/scope" module Devops module Model class Key < MongoModel SYSTEM = "system" USER = "user" attr_accessor :id, :path, :scope types :id => {:type => String, :empty => false}, :path => {:type => String, :empty => false}, :scope => {:type => String, :empty => false} set_validators ::Validators::Key::FileExistence, ::Validators::Key::Scope def initialize p={} self.id = p["id"] self.path = p["path"] self.scope = p["scope"] || USER end def self.build_from_bson s key = Key.new s key.id = s["_id"] key end def self.create_from_json json Key.new( JSON.parse(json) ) end def filename File.basename(self.path) end def to_hash_without_id { "path" => self.path, "scope" => self.scope } end end end end