diff options
author | Mikel Lindsaar <raasdnil@gmail.com> | 2010-01-20 21:58:22 +1100 |
---|---|---|
committer | Mikel Lindsaar <raasdnil@gmail.com> | 2010-01-20 21:58:22 +1100 |
commit | 8b37fee201bb3f41d3bc4557422c5f8b344f456c (patch) | |
tree | 5c24f3f85f10976b3407f557517dcccf0343cd72 /activesupport/lib | |
parent | c04baed627c85e586e337896d64f61f397554a46 (diff) | |
parent | 8a1be228491f433fa8d20be4f485e2159f5ebe59 (diff) | |
download | rails-8b37fee201bb3f41d3bc4557422c5f8b344f456c.tar.gz rails-8b37fee201bb3f41d3bc4557422c5f8b344f456c.tar.bz2 rails-8b37fee201bb3f41d3bc4557422c5f8b344f456c.zip |
Merge branch 'master' of git://github.com/rails/rails
Conflicts:
actionmailer/lib/action_mailer/base.rb
Diffstat (limited to 'activesupport/lib')
-rw-r--r-- | activesupport/lib/active_support/core_ext/load_error.rb | 46 | ||||
-rw-r--r-- | activesupport/lib/active_support/dependencies.rb | 2 | ||||
-rw-r--r-- | activesupport/lib/active_support/values/time_zone.rb | 7 |
3 files changed, 21 insertions, 34 deletions
diff --git a/activesupport/lib/active_support/core_ext/load_error.rb b/activesupport/lib/active_support/core_ext/load_error.rb index cc6287b100..615ebe9588 100644 --- a/activesupport/lib/active_support/core_ext/load_error.rb +++ b/activesupport/lib/active_support/core_ext/load_error.rb @@ -1,36 +1,22 @@ -class MissingSourceFile < LoadError #:nodoc: - attr_reader :path - def initialize(message, path) - super(message) - @path = path - end - - def is_missing?(path) - path.gsub(/\.rb$/, '') == self.path.gsub(/\.rb$/, '') - end +class LoadError + REGEXPS = [ + /^no such file to load -- (.+)$/i, + /^Missing \w+ (?:file\s*)?([^\s]+.rb)$/i, + /^Missing API definition file in (.+)$/i, + ] - def self.from_message(message) - REGEXPS.each do |regexp, capture| - match = regexp.match(message) - return MissingSourceFile.new(message, match[capture]) unless match.nil? + def path + @path ||= begin + REGEXPS.find do |regex| + message =~ regex + end + $1 end - nil end - REGEXPS = [ - [/^no such file to load -- (.+)$/i, 1], - [/^Missing \w+ (file\s*)?([^\s]+.rb)$/i, 2], - [/^Missing API definition file in (.+)$/i, 1], - [/win32/, 0] - ] unless defined?(REGEXPS) -end - -class LoadError - def self.new(*args) - if self == LoadError - MissingSourceFile.from_message(args.first) - else - super - end + def is_missing?(location) + location.sub(/\.rb$/, '') == path.sub(/\.rb$/, '') end end + +MissingSourceFile = LoadError
\ No newline at end of file diff --git a/activesupport/lib/active_support/dependencies.rb b/activesupport/lib/active_support/dependencies.rb index e858bcdc80..8ded9f8b2d 100644 --- a/activesupport/lib/active_support/dependencies.rb +++ b/activesupport/lib/active_support/dependencies.rb @@ -236,7 +236,7 @@ module ActiveSupport #:nodoc: rescue LoadError => load_error unless swallow_load_errors if file_name = load_error.message[/ -- (.*?)(\.rb)?$/, 1] - raise MissingSourceFile.new(message % file_name, load_error.path).copy_blame!(load_error) + raise LoadError.new(message % file_name).copy_blame!(load_error) end raise end diff --git a/activesupport/lib/active_support/values/time_zone.rb b/activesupport/lib/active_support/values/time_zone.rb index cbb8e890ae..245d3ce051 100644 --- a/activesupport/lib/active_support/values/time_zone.rb +++ b/activesupport/lib/active_support/values/time_zone.rb @@ -172,7 +172,7 @@ module ActiveSupport MAPPING.freeze end - UTC_OFFSET_WITH_COLON = '%+03d:%02d' + UTC_OFFSET_WITH_COLON = '%s%02d:%02d' UTC_OFFSET_WITHOUT_COLON = UTC_OFFSET_WITH_COLON.sub(':', '') # Assumes self represents an offset from UTC in seconds (as returned from Time#utc_offset) @@ -181,9 +181,10 @@ module ActiveSupport # TimeZone.seconds_to_utc_offset(-21_600) # => "-06:00" def self.seconds_to_utc_offset(seconds, colon = true) format = colon ? UTC_OFFSET_WITH_COLON : UTC_OFFSET_WITHOUT_COLON - hours = seconds / 3600 + sign = (seconds < 0 ? '-' : '+') + hours = seconds.abs / 3600 minutes = (seconds.abs % 3600) / 60 - format % [hours, minutes] + format % [sign, hours, minutes] end include Comparable |