aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/file_update_checker.rb
diff options
context:
space:
mode:
authorJon Rowe <hello@jonrowe.co.uk>2012-03-15 12:21:20 +0000
committerJon Rowe <hello@jonrowe.co.uk>2012-03-15 12:21:20 +0000
commit4073505065a0937d67c45860988fbe634a700c37 (patch)
tree847447d1262067ee8392d96bdbfe9ed8b9baa50f /activesupport/lib/active_support/file_update_checker.rb
parentfbc9d0f44f090a9873834f4966760c3e80682559 (diff)
downloadrails-4073505065a0937d67c45860988fbe634a700c37.tar.gz
rails-4073505065a0937d67c45860988fbe634a700c37.tar.bz2
rails-4073505065a0937d67c45860988fbe634a700c37.zip
escape commas in paths before globbing to avoid infinite hang in Dir[]
Diffstat (limited to 'activesupport/lib/active_support/file_update_checker.rb')
-rw-r--r--activesupport/lib/active_support/file_update_checker.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/file_update_checker.rb b/activesupport/lib/active_support/file_update_checker.rb
index 2ede084e95..3ff249536e 100644
--- a/activesupport/lib/active_support/file_update_checker.rb
+++ b/activesupport/lib/active_support/file_update_checker.rb
@@ -106,11 +106,15 @@ module ActiveSupport
globs = []
hash.each do |key, value|
- globs << "#{key}/**/*#{compile_ext(value)}"
+ globs << "#{escape(key)}/**/*#{compile_ext(value)}"
end
"{#{globs.join(",")}}"
end
+ def escape(key)
+ key.gsub(',','\,')
+ end
+
def compile_ext(array) #:nodoc:
array = Array(array)
return if array.empty?