Sha256: 9e1830beffc1617812d3eb8ad72a181d60093ff95354ef7cd4f8ea713412b1e5
Contents?: true
Size: 527 Bytes
Versions: 3
Compression:
Stored size: 527 Bytes
Contents
# frozen_string_literal: true module CobraCommander module Registry def [](key) Class.new(self) do define_singleton_method(:key) { key } define_method(:key) { key } def self.inherited(base) super superclass.all[key] = base end end end def all @all ||= {} end def select(**selector) return all.values unless selector.values.any? all.filter_map do |key, klass| klass if selector[key] end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
cobra_commander-1.1.0 | lib/cobra_commander/registry.rb |
cobra_commander-1.0.1 | lib/cobra_commander/registry.rb |
cobra_commander-1.0.0 | lib/cobra_commander/registry.rb |