module Cronex::Utils
Public Instance Methods
day_of_week_name(number)
click to toggle source
# File lib/cronex/utils.rb, line 25 def day_of_week_name(number) Date::DAYNAMES[number.to_i % 7] end
format_minutes(minute_expression)
click to toggle source
# File lib/cronex/utils.rb, line 29 def format_minutes(minute_expression) if minute_expression.include?(',') minute_expression.split(',').map { |m| format('%02d', integer(m)) }.join(',') else format('%02d', integer(minute_expression)) end end
format_time(hour_expression, minute_expression, second_expression = '', timezone = 'UTC')
click to toggle source
# File lib/cronex/utils.rb, line 37 def format_time(hour_expression, minute_expression, second_expression = '', timezone = 'UTC') hour = integer(hour_expression) minute = integer(minute_expression) second = second_expression.to_s.empty? ? 0 : integer(second_expression) tz = TZInfo::Timezone.get(timezone) time = tz.utc_to_local(Date.today.to_time + hour * 60 * 60 + minute * 60 + second) format = present?(second_expression) ? '%l:%M:%S %p' : '%l:%M %p' time.strftime(format).lstrip end
include_any?(str, chars)
click to toggle source
# File lib/cronex/utils.rb, line 11 def include_any?(str, chars) chars.any? { |char| str.include?(char) } end
integer(str)
click to toggle source
# File lib/cronex/utils.rb, line 19 def integer(str) # strip leading zeros in numbers to prevent '08', '09' # from being treated as invalid octals Integer(str.sub(/^0*(\d+)/, '\1')) end
number?(str)
click to toggle source
# File lib/cronex/utils.rb, line 15 def number?(str) integer(str) rescue nil end
present?(str)
click to toggle source
# File lib/cronex/utils.rb, line 7 def present?(str) !str.to_s.strip.empty? end