0
0
Fork 0
zero-blog/models/post.rb

52 lines
1.1 KiB
Ruby
Raw Normal View History

class Post
include DataMapper::Resource
include DataMapper::Validate
property :id, Serial
property :title, Text, :required => true
2011-06-28 21:37:37 +02:00
property :written, Time, :default => lambda {|r, p| Time.now }
property :released, Boolean, :default => false
property :markup, Text, :default => 'textile'
property :content, Text
belongs_to :account
has n, :comments
2011-07-27 18:03:53 +02:00
has n, :tags, :through => Resource
2011-07-05 19:02:26 +02:00
def self.get_released id
2011-09-28 14:35:25 +02:00
get_all_released.get(id)
2011-07-05 19:02:26 +02:00
end
2011-07-05 19:18:11 +02:00
def self.get_all_released
all(:released => true)
end
2011-07-11 20:01:23 +02:00
def self.get_page page=0
get_all_released.all(:limit => 10, :offset => (page * 10),
2011-07-11 20:01:23 +02:00
:order => [:written.desc])
end
def self.page_count
(get_all_released.count / 10).ceil
end
def self.find_of_day time
2011-09-28 14:36:14 +02:00
get_all_released.all_written(time..(time+86400))
end
2011-07-05 19:18:11 +02:00
def acknowledged_comments
comments(:acknowledged => true)
end
2011-08-09 18:05:59 +02:00
# checks if a post has this tag
2011-08-09 18:05:59 +02:00
def has_tag tag
2011-09-28 14:38:17 +02:00
tag_id = tag.id
tags.any? { |t| t.id == tag_id }
2011-08-09 18:05:59 +02:00
end
# sets all tags for this post
def set_tags new_tags
2011-09-28 15:07:05 +02:00
self.tags = Tag.all(:id => new_tags)
end
end