Sha256: a2610ce5a9d58f6d4bdb308801582241c0629fa298d078d0aa3968c9c5126fa7

Contents?: true

Size: 497 Bytes

Versions: 13

Compression:

Stored size: 497 Bytes

Contents

module Rasti
  class App
    class Container
      
      def initialize
        @registry = {}
        @cache = {}
        yield self if block_given?
      end

      def register(key, &block)
        registry[key] = block
      end

      def resolve(key)
        cache[key] ||= registry.fetch(key).call
      end

      alias_method :[], :resolve

      def resolve_all
        registry.each_key { |k| resolve k }
      end

      private

      attr_reader :registry, :cache

    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
rasti-app-0.1.2 lib/rasti/app/container.rb
rasti-app-0.1.1 lib/rasti/app/container.rb
rasti-app-0.1.0 lib/rasti/app/container.rb
rasti-app-0.0.10 lib/rasti/app/container.rb
rasti-app-0.0.9 lib/rasti/app/container.rb
rasti-app-0.0.8 lib/rasti/app/container.rb
rasti-app-0.0.7 lib/rasti/app/container.rb
rasti-app-0.0.6 lib/rasti/app/container.rb
rasti-app-0.0.5 lib/rasti/app/container.rb
rasti-app-0.0.4 lib/rasti/app/container.rb
rasti-app-0.0.3 lib/rasti/app/container.rb
rasti-app-0.0.2 lib/rasti/app/container.rb
rasti-app-0.0.1 lib/rasti/app/container.rb