Sha256: 9584dbf59eda816264ceb42b23bd622184e49bafb82baae80b148287bc18884f

Contents?: true

Size: 754 Bytes

Versions: 1

Compression:

Stored size: 754 Bytes

Contents

require  'voom/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

1 entries across 1 versions & 1 rubygems

Version Path
voom-presenters-0.2.0 lib/voom/container_methods.rb