Sha256: eeb818101f651db67770e45dda91e896add04c0a5f97e2773ac32316eeca0144

Contents?: true

Size: 569 Bytes

Versions: 1

Compression:

Stored size: 569 Bytes

Contents

require 'crystal_ext/gems'

module Crystal
  @plugin_initializers = {}
  class << self
    attr_accessor :plugin_initializers
  
    def initialize_plugin type, dir, *args, &block
      type = type.to_s      
      plugin_initializers.must.include(type)
      
      pi_class = plugin_initializers[type]
      pi = pi_class.new dir, *args
      block.call pi if block
    end
  end
end

require 'crystal_ext/plugin/web'
crystal.plugin_initializers['web'] = Crystal::Plugin::Web

require 'crystal_ext/plugin/app'
crystal.plugin_initializers['app'] = Crystal::Plugin::App

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
crystal_ext-0.0.7 lib/crystal_ext/plugin.rb