Sha256: cf3309572b01a2249439a4e25918e7b6a6abe1901d12e302182ae71ecc95c142
Contents?: true
Size: 710 Bytes
Versions: 3
Compression:
Stored size: 710 Bytes
Contents
# frozen_string_literal: true module Staticky module Pluggable class Resolver < Dry::Container::Resolver def initialize(klass) @klass = klass end def call(container, key) container.fetch(key.to_s).call end end module ClassMethods def load_plugin(key) resolve(key) end def register_plugin(key, klass) register(key.to_s, klass) end end def self.included(base) base.extend Dry::Container::Mixin base.extend ClassMethods base.config.resolver = Resolver.new(base) base.define_singleton_method :namespace do base.name.split("::")[0..-2].join("::") end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
staticky-0.3.1 | lib/staticky/pluggable.rb |
staticky-0.3.0 | lib/staticky/pluggable.rb |
staticky-0.2.0 | lib/staticky/pluggable.rb |