12345678910111213141516171819202122 |
- # Copyright (C) 2012-2023 Zammad Foundation, https://zammad-foundation.org/
- module Mixin
- module HasBackends
- extend ActiveSupport::Concern
- included do
- class_attribute :backends do
- Set.new
- end
- self_path = ActiveSupport::Dependencies.search_for_file name.underscore
- backends_path = self_path.delete_suffix File.extname(self_path)
- Mixin::RequiredSubPaths.eager_load_recursive name, backends_path
- backends = "#{name}::Backend".constantize.descendants
- self.backends = Set.new(backends)
- end
- end
- end
|