From 2fc6c7dd05b9481ed81fe19c8fc0cc7915868404 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Wed, 3 Dec 2008 09:59:04 -0600 Subject: Validate template extensions [#1187 state:resolved] --- actionpack/lib/action_view/template.rb | 14 ++++++-------- actionpack/test/fixtures/test/dont_pick_me | 1 + 2 files changed, 7 insertions(+), 8 deletions(-) create mode 100644 actionpack/test/fixtures/test/dont_pick_me diff --git a/actionpack/lib/action_view/template.rb b/actionpack/lib/action_view/template.rb index b486392ac4..52378e049e 100644 --- a/actionpack/lib/action_view/template.rb +++ b/actionpack/lib/action_view/template.rb @@ -115,16 +115,14 @@ module ActionView #:nodoc: # [base_path, name, format, extension] def split(file) if m = file.match(/^(.*\/)?([^\.]+)\.?(\w+)?\.?(\w+)?\.?(\w+)?$/) - if m[5] # Multipart formats + if valid_extension?(m[5]) # Multipart formats [m[1], m[2], "#{m[3]}.#{m[4]}", m[5]] - elsif m[4] # Single format + elsif valid_extension?(m[4]) # Single format [m[1], m[2], m[3], m[4]] - else - if valid_extension?(m[3]) # No format - [m[1], m[2], nil, m[3]] - else # No extension - [m[1], m[2], m[3], nil] - end + elsif valid_extension?(m[3]) # No format + [m[1], m[2], nil, m[3]] + else # No extension + [m[1], m[2], m[3], nil] end end end diff --git a/actionpack/test/fixtures/test/dont_pick_me b/actionpack/test/fixtures/test/dont_pick_me new file mode 100644 index 0000000000..0157c9e503 --- /dev/null +++ b/actionpack/test/fixtures/test/dont_pick_me @@ -0,0 +1 @@ +non-template file \ No newline at end of file -- cgit v1.2.3