Class: TimeInputs::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/time_inputs/parser.rb

Instance Method Summary collapse

Constructor Details

#initialize(error_policy = ->(message){ raise BaseError, message }) ⇒ Parser

Returns a new instance of Parser.



3
4
5
# File 'lib/time_inputs/parser.rb', line 3

def initialize error_policy=->(message){ raise BaseError, message }
  @error_policy = error_policy
end

Instance Method Details

#parse(input_string, options = {}) ⇒ Object



7
8
9
10
11
12
13
14
# File 'lib/time_inputs/parser.rb', line 7

def parse input_string, options={}
  input_as_hh_mm = to_hh_mm(input_string.to_s)
  date_context = check_date! options.fetch(:date_context) { Date.today }
  hours, minutes = input_as_hh_mm.split(":")
  Time.local(date_context.year, date_context.month, date_context.day, hours.to_i, minutes.to_i)
rescue BaseError => e
  @error_policy.call(e.message)
end