chronic_duration icon indicating copy to clipboard operation
chronic_duration copied to clipboard

NoMethodError with ChronicDuration.parse('1:1:1:1:1:1:1')

Open clonezone opened this issue 9 years ago • 3 comments

Running this:

require 'chronic_duration'

puts ChronicDuration.parse('1:1:1:1:1:1:1')

results in

NoMethodError: private method `gsub' called for nil:NilClass
cleanup at /install/path/gems/chronic_duration-0.10.6/lib/chronic_duration.rb:183
    parse at /install/path/gems/chronic_duration-0.10.6/lib/chronic_duration.rb:42
    <top> at chronic_test.rb:3

clonezone avatar Nov 13 '15 16:11 clonezone

There is no such valid input - I think you wanted to write

ChronicDuration.parse('1:1:1:1:1:1.1')

Note the decimal place ... 1.1 rather than ... 1:1

Result is 34239661.1

timkrins avatar Nov 06 '17 11:11 timkrins

The whole point is to take arbitrary user input and do with it what you can. If the user gives invalid input, you don't want the app to fall over. Raising NoMethodError for any input is a bug.

clonezone avatar Nov 07 '17 17:11 clonezone

Agreed. It should be returning nil.

timkrins avatar Nov 07 '17 22:11 timkrins