mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Fix Time.parse
for out of range arguments with an offset
* lib/time.rb (Time#apply_offset): Guards against a `nil` return value from `Time.month_days` when offsetting date. Out of range values are then caught when `Time.utc` is called (as usual). Previously a `nil` return value from `Time.month_days` would have the `<` operator called on it, and raise `NoMethodError`. [fix GH-667] * lib/rdoc/parser/changelog.rb (RDoc#parse_entries): fix dirty hack. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
595d057e60
commit
f75b676cc4
4 changed files with 23 additions and 3 deletions
|
@ -145,10 +145,14 @@ class RDoc::Parser::ChangeLog < RDoc::Parser
|
|||
# HACK Ruby 1.8 does not raise ArgumentError for Time.parse "Other"
|
||||
entry_name = nil unless entry_name =~ /#{time.year}/
|
||||
rescue NoMethodError
|
||||
# HACK Ruby 2.1.2 and earlier raises NoMethodError if time part is absent
|
||||
time, = entry_name.split ' ', 2
|
||||
time = Time.parse time
|
||||
rescue ArgumentError
|
||||
entry_name = nil
|
||||
if /out of range/ =~ $!.message
|
||||
time = Time.parse(entry_name.split(' ', 2)[0]) rescue entry_name = nil
|
||||
else
|
||||
entry_name = nil
|
||||
end
|
||||
end
|
||||
|
||||
entry_body = []
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue