Sha256: 6934db08e59d20d32600ef68a25089ac76d6f77f222a0f9034c98a47c9d46c58

Contents?: true

Size: 776 Bytes

Versions: 1

Compression:

Stored size: 776 Bytes

Contents

module Logman
  class Bucket
    include MongoMapper::Document
    set_collection_name 'logman_buckets'
    
    attr_accessible :name, :user_ids
    
    key :name, String, :required=>true
    key :write_token, String
    key :user_ids, Array
    
    many :users, :in => :user_ids, :class_name=>'Logman::User'
    
    many :logs, :class_name=>'Logman::Log'
    
    def user_ids=(val)
      val = val.map {|key| BSON::ObjectId(key) }
      write_attribute(:user_ids, val)
    end
    
    before_create :new_token
    
    def new_token
      self.write_token = generate_new_token
    end
    
    
    def generate_new_token
      while true
        token = SecureRandom.hex
        return token if Bucket.find_by_write_token(token).nil?
      end
    end

    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
logman-0.0.2 lib/models/bucket.rb