Commit 4c09e30e598a7aabd326fd5a7191d2c56026c0b6

Authored by AntonioTerceiro
1 parent 1249a774

ActionItem24: adding description methods on Article



git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1125 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/models/article.rb
... ... @@ -70,4 +70,24 @@ class Article < ActiveRecord::Base
70 70 "/" + [profile.identifier, path].join('/')
71 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 93 end
... ...
test/unit/article_test.rb
... ... @@ -143,4 +143,19 @@ class ArticleTest < Test::Unit::TestCase
143 143  
144 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 161 end
... ...