Sha256: 479e05558fb17d066ca7ff45ae6f7a0ae5cd289fe62f99742e7259e6c55f9242

Contents?: true

Size: 1.4 KB

Versions: 41

Compression:

Stored size: 1.4 KB

Contents

# frozen_string_literal: true

require_relative 'selector_classes/common'
require_relative 'selector_classes/project'
require_relative 'selector_evaluator'

module Checkoff
  # Evaluates project selectors against a project
  class ProjectSelectorEvaluator < SelectorEvaluator
    # @param project [Asana::Resources::Project]
    # @param projects [Checkoff::Projects]
    def initialize(project:,
                   projects: Checkoff::Projects.new)
      @item = project
      @projects = projects
      super()
    end

    private

    COMMON_FUNCTION_EVALUATORS = (Checkoff::SelectorClasses::Common.constants.map do |const|
      Checkoff::SelectorClasses::Common.const_get(const)
    end - [Checkoff::SelectorClasses::Common::FunctionEvaluator]).freeze

    PROJECT_FUNCTION_EVALUATORS = (Checkoff::SelectorClasses::Project.constants.map do |const|
      Checkoff::SelectorClasses::Project.const_get(const)
    end - [Checkoff::SelectorClasses::Project::FunctionEvaluator]).freeze

    FUNCTION_EVALUTORS = (COMMON_FUNCTION_EVALUATORS + PROJECT_FUNCTION_EVALUATORS).freeze

    # @return [Array<Class<ProjectSelectorClasses::FunctionEvaluator>>]
    def function_evaluators
      FUNCTION_EVALUTORS
    end

    # @return [Hash]
    def initializer_kwargs
      { projects: projects }
    end

    # @return [Asana::Resources::Project]
    attr_reader :item
    # @return [Checkoff::Projects]
    attr_reader :projects
  end
end

Version data entries

41 entries across 41 versions & 1 rubygems

Version Path
checkoff-0.109.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.108.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.107.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.106.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.105.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.104.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.103.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.102.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.101.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.100.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.99.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.98.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.97.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.96.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.95.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.94.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.93.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.92.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.91.0 lib/checkoff/internal/project_selector_evaluator.rb
checkoff-0.90.0 lib/checkoff/internal/project_selector_evaluator.rb