Sha256: 2ca8009f7f97b76d5926446ce46fe5b432a9dd3d737b6d00124e87b4fd3fb50e

Contents?: true

Size: 1.15 KB

Versions: 35

Compression:

Stored size: 1.15 KB

Contents

#!/usr/bin/ruby -w
module Rtt
  class Project
    include DataMapper::Resource

    DEFAULT_NAME = 'default'
    DEFAULT_DESCRIPTION = 'Default Project'

    property :id, Serial
    property :name, String, :required => true, :unique => true, :default => DEFAULT_NAME
    property :description, String, :default => DEFAULT_DESCRIPTION
    property :active, Boolean, :default => false
    property :rate, Float

    has n, :tasks #, :through => Resource
    has n, :users, :through => :tasks
    belongs_to :client

    before :valid?, :set_default_client

    before :create do |project|
      project.active = true if Project.all.length == 0
      true
    end

    def self.default
      first_or_create :active => true
    end

    def self.current_active?
      first :active => true
    end

    def activate
      deactivate_all
      self.active = true
      self.save
      self
    end

    def deactivate_all
      Project.all.each do |project|
        if project.id != self.id
          project.active = false
          project.save
        end
      end
    end

    def set_default_client
      self.client = Client.default if self.client.nil?
    end
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
rtt-0.0.0.47 lib/rtt/project.rb
rtt-0.0.0.46 lib/rtt/project.rb
rtt-0.0.0.45 lib/rtt/project.rb
rtt-0.0.0.44 lib/rtt/project.rb
rtt-0.0.0.43 lib/rtt/project.rb
rtt-0.0.0.42 lib/rtt/project.rb
rtt-0.0.0.41 lib/rtt/project.rb
rtt-0.0.0.39 lib/rtt/project.rb
rtt-0.0.0.38 lib/rtt/project.rb
rtt-0.0.0.37 lib/rtt/project.rb
rtt-0.0.0.36 lib/rtt/project.rb
rtt-0.0.0.35 lib/rtt/project.rb
rtt-0.0.0.33 lib/rtt/project.rb
rtt-0.0.0.32 lib/rtt/project.rb
rtt-0.0.0.31 lib/rtt/project.rb
rtt-0.0.0.28 lib/rtt/project.rb
rtt-0.0.0.27 lib/rtt/project.rb
rtt-0.0.0.26 lib/rtt/project.rb
rtt-0.0.0.25 lib/rtt/project.rb
rtt-0.0.0.24 lib/rtt/project.rb