Commit 4d52e142e4b7790e3f2f8a74ed3c468a8ddfff6d
1 parent
a07338d6
Exists in
master
and in
29 other branches
ActionItem132: asking for name without leading parents
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1160 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
2 changed files
with
17 additions
and
0 deletions
Show diff stats
lib/acts_as_filesystem.rb
@@ -61,6 +61,15 @@ module ActsAsFileSystem | @@ -61,6 +61,15 @@ module ActsAsFileSystem | ||
61 | self.hierarchy.map {|item| item.name || '?' }.join(sep) | 61 | self.hierarchy.map {|item| item.name || '?' }.join(sep) |
62 | end | 62 | end |
63 | 63 | ||
64 | + # gets the name without leading parents. Usefull when dividing categories | ||
65 | + # in top-level groups and full names must not include the top-level | ||
66 | + # category which is already a emphasized label | ||
67 | + def full_name_without_leading(count, sep = '/') | ||
68 | + parts = self.full_name(sep).split(sep) | ||
69 | + count.times { parts.shift } | ||
70 | + parts.join(sep) | ||
71 | + end | ||
72 | + | ||
64 | # calculates the level of the category in the category hierarchy. Top-level | 73 | # calculates the level of the category in the category hierarchy. Top-level |
65 | # categories have level 0; the children of the top-level categories have | 74 | # categories have level 0; the children of the top-level categories have |
66 | # level 1; the children of categories with level 1 have level 2, and so on. | 75 | # level 1; the children of categories with level 1 have level 2, and so on. |
test/unit/acts_as_filesystem_test.rb
@@ -54,4 +54,12 @@ class ActsAsFilesystemTest < Test::Unit::TestCase | @@ -54,4 +54,12 @@ class ActsAsFilesystemTest < Test::Unit::TestCase | ||
54 | assert_equal 'test.txt', Article.new(:name => 'test.txt').slug | 54 | assert_equal 'test.txt', Article.new(:name => 'test.txt').slug |
55 | end | 55 | end |
56 | 56 | ||
57 | + should 'provide name without leading parents' do | ||
58 | + a = Article.new | ||
59 | + a.expects(:full_name).with('/').returns('a/b/c/d').times(3) | ||
60 | + assert_equal 'b/c/d', a.full_name_without_leading(1) | ||
61 | + assert_equal 'c/d', a.full_name_without_leading(2) | ||
62 | + assert_equal 'd', a.full_name_without_leading(3) | ||
63 | + end | ||
64 | + | ||
57 | end | 65 | end |