#!/usr/bin/env ruby # frozen_string_literal: true require_relative 'sections' require_relative 'portfolios' require_relative 'workspaces' require_relative 'internal/config_loader' require_relative 'internal/task_timing' require_relative 'internal/task_hashes' require_relative 'internal/logging' require_relative 'internal/thread_local' require 'asana' module Checkoff # Pull tasks from Asana class Tasks # @!parse # extend CacheMethod::ClassMethods include Logging MINUTE = 60 HOUR = MINUTE * 60 DAY = 24 * HOUR REALLY_LONG_CACHE_TIME = MINUTE * 30 LONG_CACHE_TIME = MINUTE * 15 SHORT_CACHE_TIME = MINUTE * 5 # @param config [Hash] # @param client [Asana::Client] # @param workspaces [Checkoff::Workspaces] # @param sections [Checkoff::Sections] # @param portfolios [Checkoff::Portfolios] # @param custom_fields [Checkoff::CustomFields] # @param time_class [Class