Class: Blogit::Post

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/blogit/post.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.active_with_id(id) ⇒ Object

Finds an active post with given id

id - The id of the Post to find

Returns a Blogit::Post Raises ActiveRecord::NoMethodError if no Blogit::Post could be found



61
62
63
# File 'app/models/blogit/post.rb', line 61

def self.active_with_id(id)
  active.find(id)
end

.for_feedObject

The posts to be displayed for RSS and XML feeds/sitemaps

Returns an ActiveRecord::Relation



51
52
53
# File 'app/models/blogit/post.rb', line 51

def self.for_feed
  active.order('created_at DESC')
end

Instance Method Details

#bloggerObject

The blogger (User, Admin, etc.) who wrote this Post

Returns a Blogger (polymorphic type)



30
# File 'app/models/blogit/post.rb', line 30

belongs_to :blogger, :polymorphic => true

#blogger_display_nameObject

The blogger who wrote this Post’s display name

Returns the blogger’s display name as a String if it’s set. Returns an empty String if blogger is not present. Raises a ConfigurationError if the method called is not defined on #blogger



106
107
108
109
110
111
112
113
114
# File 'app/models/blogit/post.rb', line 106

def blogger_display_name
  return "" if blogger.blank?
  if blogger.respond_to?(Blogit.configuration.blogger_display_name_method)
    blogger.send(Blogit.configuration.blogger_display_name_method)
  else
    method_name = Blogit.configuration.blogger_display_name_method
    raise ConfigurationError, "#{blogger.class}##{method_name} is not defined"
  end
end

#blogger_twitter_usernameObject

If there’s a blogger and that blogger responds to :twitter_username, returns that. Otherwise, returns nil



118
119
120
121
122
# File 'app/models/blogit/post.rb', line 118

def blogger_twitter_username
  if blogger and blogger.respond_to?(:twitter_username)
    blogger.twitter_username
  end
end

#commentsObject

The Comments written on this Post

Returns an ActiveRecord::Relation instance



36
# File 'app/models/blogit/post.rb', line 36

has_many :comments, :class_name => "Blogit::Comment"

#comments=(value) ⇒ Object



95
96
97
98
# File 'app/models/blogit/post.rb', line 95

def comments=(value)
  check_comments_config
  super(value)
end

#published_atObject

TODO: Get published at working properly!



70
71
72
# File 'app/models/blogit/post.rb', line 70

def published_at
  created_at
end

#short_bodyObject

The content of the Post to be shown in the RSS feed.

Returns description when Blogit.configuration.show_post_description is true Returns body when Blogit.configuration.show_post_description is false



82
83
84
85
86
87
88
# File 'app/models/blogit/post.rb', line 82

def short_body
  if Blogit.configuration.show_post_description
    description
  else
    body
  end
end

#to_paramObject



74
75
76
# File 'app/models/blogit/post.rb', line 74

def to_param
  "#{id}-#{title.parameterize}"
end