Sha256: bc2d19842fa88b50e778b48a8a0deaebbc2ed7a97f2fac573a2a0fd280f3b452

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

module CurationConcerns
  class QuickClassificationQuery
    def self.each_for_context(*args, &block)
      new(*args).all.each(&block)
    end

    attr_reader :user

    def initialize(user, options = {})
      @user = user
      @concern_name_normalizer = options.fetch(:concern_name_normalizer, ClassifyConcern.method(:to_class))
      @registered_curation_concern_names = options.fetch(:registered_curation_concern_names, CurationConcerns.config.registered_curation_concern_types)
    end

    def all
      ActiveFedora::Base.logger.debug "User is #{user}"
      ActiveFedora::Base.logger.debug "try is #{normalized_curation_concern_names.first}"
      ActiveFedora::Base.logger.debug "can is  #{user.can?(:create, normalized_curation_concern_names.first)}"
      normalized_curation_concern_names.select { |klass| user.can?(:create, klass) }
    end

    private

      attr_reader :concern_name_normalizer, :registered_curation_concern_names

      def normalized_curation_concern_names
        registered_curation_concern_names.collect { |name| concern_name_normalizer.call(name) }
      end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
curation_concerns-models-0.3.0 app/models/curation_concerns/quick_classification_query.rb
curation_concerns-models-0.2.0 app/models/curation_concerns/quick_classification_query.rb