Sha256: eb60bd92add6ca0d3c42505dc188f762719117805101365d7b1bc447e7094922

Contents?: true

Size: 1.21 KB

Versions: 2

Compression:

Stored size: 1.21 KB

Contents

module CortexReaver
  class Project < Sequel::Model(:projects)
    include CortexReaver::Model::Timestamps
    include CortexReaver::Model::CachedRendering
    include CortexReaver::Model::Renderer
    include CortexReaver::Model::Canonical
    include CortexReaver::Model::Attachments
    include CortexReaver::Model::Comments
    include CortexReaver::Model::Tags
    include CortexReaver::Model::Sequenceable

    many_to_many :tags, :class => 'CortexReaver::Tag'
    belongs_to :creator, :class => 'CortexReaver::User', :key => 'created_by'
    belongs_to :updater, :class => 'CortexReaver::User', :key => 'updated_by'
    has_many :comments, :class => 'CortexReaver::Comment'

    validates do
      uniqueness_of :name
      presence_of :name
      length_of :name, :maximum => 255
      presence_of :title
    end

    render :body

    def self.atom_url
      '/projects/atom'
    end

    def self.get(id)
      self[:name => id] || self[id]
    end

    def self.recent
      reverse_order(:updated_on).limit(16)
    end

    def self.url
      '/projects'
    end

    def atom_url
      '/projects/atom/' + name
    end

    def url
      '/projects/show/' + name
    end

    def to_s
      title || name
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cortex-reaver-0.0.8 lib/cortex_reaver/model/project.rb
cortex-reaver-0.0.9 lib/cortex_reaver/model/project.rb