Sha256: fe692586efd0bd5a513d4fff900370f285adc0b1c88e917365f90278ee3ddfad

Contents?: true

Size: 776 Bytes

Versions: 2

Compression:

Stored size: 776 Bytes

Contents

# Implements a very basic registry for Woodhouse extensions. This is a Class
# rather than a Module because it will eventually be used to provide a more
# structured approach than the one Woodhouse::Progress uses.
class Woodhouse::Extension
  
  class << self

    attr_accessor :registry

    def register(name, extension)
      registry[name] = extension
    end

    def install_extension(name, configuration, opts = {}, &blk)
      if ext = registry[name]
        ext.install_extension(configuration, opts, &blk)
      else
        ext = load_extension(name)
        ext.install_extension(configuration, opts, &blk)
      end
    end

    def load_extension(name)
      require "woodhouse/extensions/#{name}"
      registry[name]
    end

  end

  self.registry = {}

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
woodhouse-1.0.0 lib/woodhouse/extension.rb
woodhouse-0.1.5 lib/woodhouse/extension.rb