Sha256: 2edf9bf37d9c964d80a83efff7a5b0c6013adb32c86c4f70547a6353b829ce94

Contents?: true

Size: 1 KB

Versions: 1

Compression:

Stored size: 1 KB

Contents

class MatchResult
  def initialize(match_data)
    @match_data = match_data
  end

  def start_time
    match_data[:start_time]
  end

  def start_period
    @start_period ||= match_data[:start_period].presence || begin
      start_t = start_time.to_i
      end_t = end_time.to_i

      if end_period.casecmp("pm") == 0 && (start_t > end_t || (end_t == 12 && start_t < end_t))
        "am"
      else
        end_period
      end
    end
  end

  def end_time
    match_data[:end_time]
  end

  def end_period
    match_data[:end_period]
  end

  def time_zone
    match_data[:time_zone]
  end

  def start_time_string
    if range?
      [start_time, start_period, time_zone].compact.join(' ')
    else
      end_time && [end_time, end_period, time_zone].compact.join(' ')
    end
  end

  def end_time_string
    return start_time_string unless range?

    [end_time, end_period, time_zone].compact.join(' ')
  end

  private

  def range?
    start_time.present? && end_time.present?
  end

  attr_reader :match_data
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
time_range_extractor-0.1.1 lib/time_range_extractor/match_result.rb