Sha256: 4188d9b648b74094aa2c8862e23e809f99c04124ae35538d1079302db7306294

Contents?: true

Size: 784 Bytes

Versions: 5

Compression:

Stored size: 784 Bytes

Contents

# frozen_string_literal: true

module Checkoff
  module Internal
    # Utility methods for working with task dates and times
    class TaskTiming
      # @param time_class [Class<Time>]
      def initialize(time_class: Time)
        @time_class = time_class
      end

      # @param task [Asana::Resources::Task]
      # @return [Time, nil]
      def start_time(task)
        return @time_class.parse(task.start_at) if task.start_at
        return @time_class.parse(task.start_on) if task.start_on

        nil
      end

      # @param task [Asana::Resources::Task]
      # @return [Time, nil]
      def due_time(task)
        return @time_class.parse(task.due_at) if task.due_at
        return @time_class.parse(task.due_on) if task.due_on

        nil
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
checkoff-0.98.0 lib/checkoff/internal/task_timing.rb
checkoff-0.97.0 lib/checkoff/internal/task_timing.rb
checkoff-0.96.0 lib/checkoff/internal/task_timing.rb
checkoff-0.95.0 lib/checkoff/internal/task_timing.rb
checkoff-0.94.0 lib/checkoff/internal/task_timing.rb