Sha256: 45d6497f869ea49935b50d1d9a0baa20418bd090c9b75f5e73a3b3fcd6ec04cd
Contents?: true
Size: 1.27 KB
Versions: 10
Compression:
Stored size: 1.27 KB
Contents
module Hyrax class QuickClassificationQuery attr_reader :user # @param [User] user the current user # @param [Hash] options # @option options [#call] :concern_name_normalizer (ClassifyConcern.to_class) a proc that translates names to classes # @option options [Array<String>] :models the options to display, defaults to everything. def initialize(user, options = {}) @user = user @concern_name_normalizer = options.fetch(:concern_name_normalizer, ClassifyConcern.method(:to_class)) @models = options.fetch(:models, Hyrax.config.registered_curation_concern_types) end def each(&block) authorized_models.each(&block) end # @return true if the requested concerns is same as all avaliable concerns def all? models == Hyrax.config.registered_curation_concern_types end # @return [Array] a list of all the requested concerns that the user can create def authorized_models normalized_model_names.select { |klass| user.can?(:create, klass) } end private attr_reader :concern_name_normalizer, :models # Transform the list of requested model names into a list of class names def normalized_model_names models.map { |name| concern_name_normalizer.call(name) } end end end
Version data entries
10 entries across 10 versions & 2 rubygems