converting distance_of_time_in_words to seconds
# DOES NOT HANDLE 'half a minute','about a minute' among others
# dotiw is the distance_of_time_in_words
if dotiw
# split it with ' ' and get an array.
# Your array contains things such as :
# ["1", "year,", "11", "months,", "27", "days,", "13", "hours,", "and", "39", "minutes"]
split_distance_of_time_into_array = dotiw.split(' ')
total_time=0
split_distance_of_time_into_array.each_with_index do |t,index|
# Converting any string into integer with no actual integer value inside would return zero.
if t.to_i.zero?
# If t is 'year' then its predecessor in the array has to be the no of years
count = split_distance_of_time_into_array[index-1].to_i
# t could be 'month', 'months', 'months,' or even 'month,'
# Thus, split it with ','
time_unit = t.split(',').first
end
# Converting the count of whatever time_unit into seconds here
# ex :
# count = 3
# time_unit = month
# 3.months.to_i => 7776000
if t != "and" and t != "and," and !count.nil? and !time_unit.nil?
total_time += count.send(time_unit).to_i
end
end
end
Written by Kaushik Thirthappa
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Ruby
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#