Sha256: 3efdebf7670c342380cdf9d25e4ef0eaef2cfde68fe0ec2a966d5618029fa7d8
Contents?: true
Size: 767 Bytes
Versions: 11
Compression:
Stored size: 767 Bytes
Contents
# frozen_string_literal: true module Decidim # # Takes care of holding and serving globally registered manifests. # class ManifestRegistry def initialize(entity) @entity = entity end def register(name) manifest = manifest_class.new(name: name.to_sym) yield(manifest) manifest.validate! manifests << manifest end def manifests @manifests ||= Set.new end def find(name) manifests.find do |manifest| manifest.try(:model_class_name) == name.to_s || manifest.name.to_s == name.to_s || manifest.name.to_s.pluralize == name.to_s end end private def manifest_class "Decidim::#{@entity.to_s.classify}Manifest".constantize end end end
Version data entries
11 entries across 11 versions & 1 rubygems