Class: Hyrax::MultipleMembershipChecker
- Inherits:
-
Object
- Object
- Hyrax::MultipleMembershipChecker
- Defined in:
- app/services/hyrax/multiple_membership_checker.rb
Overview
Service class for checking an item’s collection memberships, to make sure that the item is not added to multiple single-membership collections
Instance Attribute Summary collapse
-
#item ⇒ Object
readonly
Returns the value of attribute item.
Instance Method Summary collapse
-
#check(collection_ids:, include_current_members: false) ⇒ nil, String
Scan a list of collection_ids for multiple single-membership collections.
-
#initialize(item:) ⇒ MultipleMembershipChecker
constructor
A new instance of MultipleMembershipChecker.
Constructor Details
#initialize(item:) ⇒ MultipleMembershipChecker
Returns a new instance of MultipleMembershipChecker.
10 11 12 |
# File 'app/services/hyrax/multiple_membership_checker.rb', line 10 def initialize(item:) @item = item end |
Instance Attribute Details
#item ⇒ Object (readonly)
Returns the value of attribute item.
7 8 9 |
# File 'app/services/hyrax/multiple_membership_checker.rb', line 7 def item @item end |
Instance Method Details
#check(collection_ids:, include_current_members: false) ⇒ nil, String
Scan a list of collection_ids for multiple single-membership collections.
Collections that have a collection type declaring ‘allow_multiple_membership` as `false` require that its members do not also belong to other collections of the same type.
31 32 33 34 35 36 37 38 39 40 41 |
# File 'app/services/hyrax/multiple_membership_checker.rb', line 31 def check(collection_ids:, include_current_members: false) return unless single_membership_collection_types_exist? proposed_single_membership_collections = filter_to_single_membership_collections(collection_ids) return if proposed_single_membership_collections.blank? collections_to_check = collections_to_check(proposed_single_membership_collections, include_current_members) problematic_collections = check_collections(collections_to_check) (problematic_collections) end |