Commit d2ce058c7a9a93db3ec30f38bcb94cf2da8271b7

Authored by AntonioTerceiro
1 parent 089cccb0

ActionItem41: transforming name into identifiers for community. I also needed

to change profile class to accept dashes in the identifiers.


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1302 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/models/community.rb
1 1 class Community < Profile
  2 +
  3 + def name=(value)
  4 + super(value)
  5 + self.identifier = value.to_slug
  6 + end
  7 +
2 8 end
... ...
app/models/profile.rb
... ... @@ -19,7 +19,7 @@ class Profile &lt; ActiveRecord::Base
19 19 acts_as_searchable :fields => [ :name, :identifier ]
20 20  
21 21 # Valid identifiers must match this format.
22   - IDENTIFIER_FORMAT = /^[a-z][a-z0-9_]*[a-z0-9]$/
  22 + IDENTIFIER_FORMAT = /^[a-z][a-z0-9]+([_-][a-z0-9]+)*$/
23 23  
24 24 # These names cannot be used as identifiers for Profiles
25 25 RESERVED_IDENTIFIERS = %w[
... ...
test/unit/community_test.rb
... ... @@ -6,4 +6,10 @@ class CommunityTest &lt; Test::Unit::TestCase
6 6 assert_kind_of Profile, Community.new
7 7 end
8 8  
  9 + should 'convert name into identifier' do
  10 + c = Community.new(:name =>'My shiny new Community')
  11 + assert_equal 'My shiny new Community', c.name
  12 + assert_equal 'my-shiny-new-community', c.identifier
  13 + end
  14 +
9 15 end
... ...
test/unit/profile_test.rb
... ... @@ -27,6 +27,10 @@ class ProfileTest &lt; Test::Unit::TestCase
27 27 p.identifier = 'right_format'
28 28 p.valid?
29 29 assert ! p.errors.invalid?(:identifier)
  30 +
  31 + p.identifier = 'identifier-with-dashes'
  32 + p.valid?
  33 + assert ! p.errors.invalid?(:identifier), 'Profile should accept identifier with dashes'
30 34 end
31 35  
32 36 def test_has_domains
... ...