Sha256: 28de3bcd2e70928bf93787cd5cccc1b16a2350aa42d3b90a20bc51386905187f

Contents?: true

Size: 757 Bytes

Versions: 14

Compression:

Stored size: 757 Bytes

Contents

require_relative 'symbol/to_str'

module Voom
  module ContainerMethods
    include Voom::Symbol

    def registered_keys
      @registered_keys ||= []
    end

    def registered?(presenter)
      container.key?(sym_to_str(presenter))
    end

    def [](name)
      resolve(name)
    end

    def resolve(name)
      container.resolve(sym_to_str(name))
    end

    def list
      container.keys
    end
    alias keys list

    def container
      @container ||= Dry::Container.new
    end

    # This method empties out the container
    # It should ONLY be used for testing purposes
    def reset!
      registered_keys.each { |key| ClassConstants.new(key).deconstantize }
      @registered_keys = []
      container._container.clear
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
voom-presenters-0.1.13 lib/voom/container_methods.rb
voom-presenters-0.1.12 lib/voom/container_methods.rb
voom-presenters-0.1.11 lib/voom/container_methods.rb
voom-presenters-0.1.10 lib/voom/container_methods.rb
voom-presenters-0.1.9 lib/voom/container_methods.rb
voom-presenters-0.1.8 lib/voom/container_methods.rb
voom-presenters-0.1.7 lib/voom/container_methods.rb
voom-presenters-0.1.6 lib/voom/container_methods.rb
voom-presenters-0.1.5 lib/voom/container_methods.rb
voom-presenters-0.1.4 lib/voom/container_methods.rb
voom-presenters-0.1.3 lib/voom/container_methods.rb
voom-presenters-0.1.2 lib/voom/container_methods.rb
voom-presenters-0.1.1 lib/voom/container_methods.rb
voom-presenters-0.1.0 lib/voom/container_methods.rb