nested app layouts are available now
Oleg
committed Aug 12, 2011
commit 9e67fe55e02869f613ad2daa574898c8e8948b48
Showing 2
changed files with
13 additions
and 6 deletions
app/models/cms/layout.rb
+4
-5
| @@ | @@ -41,11 +41,10 @@ class Cms::Layout < ActiveRecord::Base |
| # List of available application layouts | |
| def self.app_layouts_for_select | |
| - | Dir.glob(File.expand_path('app/views/layouts/*.html.*', Rails.root)).collect do |filename| |
| - | match = filename.match(/\w*.html.\w*$/) |
| - | app_layout = match && match[0] |
| - | app_layout.to_s[0...1] == '_' ? nil : app_layout |
| - | end.compact |
| + | Dir.glob(File.expand_path('app/views/layouts/**/*.html.*', Rails.root)).collect do |filename| |
| + | filename.gsub!("#{File.expand_path('app/views/layouts', Rails.root)}/", '') |
| + | filename.split('/').last[0...1] == '_' ? nil : filename |
| + | end.compact.sort |
| end | |
| # -- Instance Methods ----------------------------------------------------- | |
test/unit/models/layout_test.rb
+9
-1
| @@ | @@ -47,7 +47,15 @@ class CmsLayoutTest < ActiveSupport::TestCase |
| end | |
| def test_app_layouts_for_select | |
| - | assert_equal ['cms_admin.html.erb'], Cms::Layout.app_layouts_for_select |
| + | FileUtils.touch(File.expand_path('app/views/layouts/cms_admin/nested.html.erb', Rails.root)) |
| + | FileUtils.touch(File.expand_path('app/views/layouts/_partial.html.erb', Rails.root)) |
| + | FileUtils.touch(File.expand_path('app/views/layouts/not_a_layout.erb', Rails.root)) |
| + | |
| + | assert_equal ['cms_admin.html.erb', 'cms_admin/nested.html.erb'], Cms::Layout.app_layouts_for_select |
| + | |
| + | FileUtils.rm(File.expand_path('app/views/layouts/cms_admin/nested.html.erb', Rails.root)) |
| + | FileUtils.rm(File.expand_path('app/views/layouts/_partial.html.erb', Rails.root)) |
| + | FileUtils.rm(File.expand_path('app/views/layouts/not_a_layout.erb', Rails.root)) |
| end | |
| def test_merged_content_with_same_child_content | |