aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib
diff options
context:
space:
mode:
Diffstat (limited to 'activesupport/lib')
-rw-r--r--activesupport/lib/active_support/file_evented_update_checker.rb9
1 files changed, 8 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/file_evented_update_checker.rb b/activesupport/lib/active_support/file_evented_update_checker.rb
index ae500d697f..9c66363e9f 100644
--- a/activesupport/lib/active_support/file_evented_update_checker.rb
+++ b/activesupport/lib/active_support/file_evented_update_checker.rb
@@ -79,7 +79,14 @@ module ActiveSupport
using Module.new {
refine Pathname do
def ascendant_of?(other)
- other.to_s =~ /\A#{Regexp.quote(to_s)}#{Pathname::SEPARATOR_PAT}?/
+ if self != other && other.to_s.start_with?(to_s)
+ # On Windows each_filename does not include the drive letter,
+ # but the test above already detects if they differ.
+ parts = each_filename.to_a
+ other_parts = other.each_filename.to_a
+
+ other_parts[0, parts.length] == parts
+ end
end
end
}