Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Eliminate Pathname extensions

  • Loading branch information...
commit bd84b820188daed991756531071137dc7e0876a0 1 parent 727e9dc
@jeremy jeremy authored
View
17 activesupport/lib/active_support/core_ext/exception.rb
@@ -1,13 +1,19 @@
-require 'active_support/core_ext/pathname'
-
module ActiveSupport
FrozenObjectError = RUBY_VERSION < '1.9' ? TypeError : RuntimeError
end
# TODO: Turn all this into using the BacktraceCleaner.
class Exception # :nodoc:
+ # Clean the paths contained in the message.
+ def self.clean_paths(string)
+ require 'pathname' unless defined? Pathname
+ string.gsub(%r{[\w. ]+(/[\w. ]+)+(\.rb)?(\b|$)}) do |path|
+ Pathname.new(path).cleanpath
+ end
+ end
+
def clean_message
- Pathname.clean_within message
+ Exception.clean_paths(message)
end
TraceSubstitutions = []
@@ -16,9 +22,10 @@ def clean_message
def clean_backtrace
backtrace.collect do |line|
- Pathname.clean_within(TraceSubstitutions.inject(line) do |result, (regexp, sub)|
+ substituted = TraceSubstitutions.inject(line) do |result, (regexp, sub)|
result.gsub regexp, sub
- end)
+ end
+ Exception.clean_paths(substituted)
end
end
View
5 activesupport/lib/active_support/core_ext/pathname.rb
@@ -1,5 +0,0 @@
-if defined? Pathname
- require 'active_support/core_ext/pathname/clean_within'
-else
- autoload :Pathname, 'active_support/core_ext/pathname/clean_within'
-end
View
10 activesupport/lib/active_support/core_ext/pathname/clean_within.rb
@@ -1,10 +0,0 @@
-require 'pathname'
-
-class Pathname
- # Clean the paths contained in the provided string.
- def self.clean_within(string)
- string.gsub(%r{[\w. ]+(/[\w. ]+)+(\.rb)?(\b|$)}) do |path|
- new(path).cleanpath
- end
- end
-end
View
10 activesupport/test/core_ext/pathname_test.rb
@@ -1,10 +0,0 @@
-require 'abstract_unit'
-require 'active_support/core_ext/pathname'
-
-class TestPathname < Test::Unit::TestCase
- def test_clean_within
- assert_equal "Hi", Pathname.clean_within("Hi")
- assert_equal "Hi", Pathname.clean_within("Hi/a/b/../..")
- assert_equal "Hello\nWorld", Pathname.clean_within("Hello/a/b/../..\na/b/../../World/c/..")
- end
-end
Please sign in to comment.
Something went wrong with that request. Please try again.