Sha256: 5d7652238da9222e8b51747ab508ab86739d5fa73ead7ab2ed96aa7e1729213c

Contents?: true

Size: 1012 Bytes

Versions: 31

Compression:

Stored size: 1012 Bytes

Contents

# frozen_string_literal: true

require_relative 'project/function_evaluator'

module Checkoff
  module SelectorClasses
    # Project selector classes
    module Project
      # :due_date function
      class DueDateFunctionEvaluator < FunctionEvaluator
        FUNCTION_NAME = :due_date

        def matches?
          fn?(selector, FUNCTION_NAME)
        end

        # @param resource [Asana::Resources::Project]
        # @return [String, nil]
        def evaluate(resource)
          resource.due_date
        end
      end

      # :ready? function
      class ReadyPFunctionEvaluator < FunctionEvaluator
        FUNCTION_NAME = :ready?

        def matches?
          fn?(selector, FUNCTION_NAME)
        end

        # @param project [Asana::Resources::Project]
        # @param period [Symbol<:now_or_before,:this_week>]
        # @return [Boolean]
        def evaluate(project, period = :now_or_before)
          @projects.project_ready?(project, period: period)
        end
      end
    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
checkoff-0.139.0 lib/checkoff/internal/selector_classes/project.rb
checkoff-0.138.0 lib/checkoff/internal/selector_classes/project.rb
checkoff-0.137.0 lib/checkoff/internal/selector_classes/project.rb
checkoff-0.136.0 lib/checkoff/internal/selector_classes/project.rb
checkoff-0.135.0 lib/checkoff/internal/selector_classes/project.rb
checkoff-0.134.0 lib/checkoff/internal/selector_classes/project.rb
checkoff-0.133.0 lib/checkoff/internal/selector_classes/project.rb
checkoff-0.132.0 lib/checkoff/internal/selector_classes/project.rb
checkoff-0.131.0 lib/checkoff/internal/selector_classes/project.rb
checkoff-0.130.0 lib/checkoff/internal/selector_classes/project.rb
checkoff-0.129.0 lib/checkoff/internal/selector_classes/project.rb