Commit 4c09e30e598a7aabd326fd5a7191d2c56026c0b6
1 parent
1249a774
Exists in
master
and in
29 other branches
ActionItem24: adding description methods on Article
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1125 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
2 changed files
with
35 additions
and
0 deletions
Show diff stats
app/models/article.rb
@@ -70,4 +70,24 @@ class Article < ActiveRecord::Base | @@ -70,4 +70,24 @@ class Article < ActiveRecord::Base | ||
70 | "/" + [profile.identifier, path].join('/') | 70 | "/" + [profile.identifier, path].join('/') |
71 | end | 71 | end |
72 | 72 | ||
73 | + def self.short_description | ||
74 | + if self == Article | ||
75 | + _('Article') | ||
76 | + else | ||
77 | + _('"%s" article') % self.article_type_name | ||
78 | + end | ||
79 | + end | ||
80 | + | ||
81 | + def self.description | ||
82 | + if self == Article | ||
83 | + _('An ordinary article') | ||
84 | + else | ||
85 | + _('An article of type "%s"') % self.article_type_name | ||
86 | + end | ||
87 | + end | ||
88 | + | ||
89 | + def self.article_type_name | ||
90 | + self.name.gsub(/article$/i, '') | ||
91 | + end | ||
92 | + | ||
73 | end | 93 | end |
test/unit/article_test.rb
@@ -143,4 +143,19 @@ class ArticleTest < Test::Unit::TestCase | @@ -143,4 +143,19 @@ class ArticleTest < Test::Unit::TestCase | ||
143 | 143 | ||
144 | end | 144 | end |
145 | 145 | ||
146 | + should 'provied proper descriptions' do | ||
147 | + assert_equal "Article", Article.short_description | ||
148 | + assert_equal "An ordinary article", Article.description | ||
149 | + end | ||
150 | + | ||
151 | + should 'provide a usable descriptions to subclasses that don\'t override them' do | ||
152 | + klass = Class.new(Article) | ||
153 | + klass.stubs(:name).returns("MyClass") | ||
154 | + klass.expects(:_).with('"%s" article').returns('"%s" article') | ||
155 | + klass.expects(:_).with('An article of type "%s"').returns('An article of type "%s"') | ||
156 | + | ||
157 | + assert_equal '"MyClass" article', klass.short_description | ||
158 | + assert_equal 'An article of type "MyClass"', klass.description | ||
159 | + end | ||
160 | + | ||
146 | end | 161 | end |