Sha256: e9073e3265dd3eb0ac1ed4df998f02991d9bb6d447b2289d299784bca64087fe

Contents?: true

Size: 966 Bytes

Versions: 5

Compression:

Stored size: 966 Bytes

Contents

class QuickClassificationQuery
  CURATION_CONCERNS_TO_TRY = ['article', 'dataset', 'image']
  def self.each_for_context(*args, &block)
    new(*args).all.each(&block)
  end

  def initialize(context, options = {})
    @concern_name_normalizer = options.fetch(:concern_name_normalizer, ClassifyConcern.method(:normalize_concern_name))
    @registered_curation_concern_names = options.fetch(:registered_curation_concern_names, Curate.configuration.registered_curation_concern_types)
    @curation_concern_names_to_try = options.fetch(:curation_concern_names_to_try, CURATION_CONCERNS_TO_TRY)
  end

  def all
    (registered_curation_concern_names & normalized_curation_concern_names).collect(&:constantize)
  end

  private
  attr_reader :concern_name_normalizer, :registered_curation_concern_names, :curation_concern_names_to_try
  def normalized_curation_concern_names
    curation_concern_names_to_try.collect{|name| concern_name_normalizer.call(name) }
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
curate-0.5.4 app/models/quick_classification_query.rb
curate-0.5.2 app/models/quick_classification_query.rb
curate-0.5.1 app/models/quick_classification_query.rb
curate-0.5.0 app/models/quick_classification_query.rb
curate-0.4.2 app/models/quick_classification_query.rb