breadcrumbs_helper.rb revision 24b6dfc1ff6325422fbb7905af2f3473a2f1f23c
02c335c23bf5fa225a467c19f2c063fb0dc7b8c3Timo Sirainenmodule BreadcrumbsHelper
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen def repository_breadcrumbs(repository, path, is_head, oid)
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen path ||= ''
9137c55411aa39d41c1e705ddc34d5bd26c65021Timo Sirainen crumbs = path.split('/')
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen result = [{
9ddd3d7d8651985e373a6c48e0ddc76b8a4ef1c7Timo Sirainen name: 'Home',
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen last: false,
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen path: fancy_repository_files_path(repository, nil, oid)
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen }]
bdd36cfdba3ff66d25570a9ff568d69e1eb543cfTimo Sirainen
9137c55411aa39d41c1e705ddc34d5bd26c65021Timo Sirainen crumbs.each_with_index do | c, i |
9137c55411aa39d41c1e705ddc34d5bd26c65021Timo Sirainen segment = crumbs[0..i].join('/')
9137c55411aa39d41c1e705ddc34d5bd26c65021Timo Sirainen result << {
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen name: c,
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen last: false,
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen path: fancy_repository_files_path(repository, segment, oid)
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen }
9137c55411aa39d41c1e705ddc34d5bd26c65021Timo Sirainen end
0cb5a9bfbf40b3b323956792aa13d342a459585eTimo Sirainen
9137c55411aa39d41c1e705ddc34d5bd26c65021Timo Sirainen result.last[:last] = true
0cb5a9bfbf40b3b323956792aa13d342a459585eTimo Sirainen
9137c55411aa39d41c1e705ddc34d5bd26c65021Timo Sirainen result
9ddd3d7d8651985e373a6c48e0ddc76b8a4ef1c7Timo Sirainen end
9ddd3d7d8651985e373a6c48e0ddc76b8a4ef1c7Timo Sirainenend
a272994d43de80a306a8ed1f2983960d1f3102d0Timo Sirainen