Sha256: f8c73ffdfff5becf186dc5ff643202bdfb2d97f1d42f91b5259a468fc8aef29d

Contents?: true

Size: 892 Bytes

Versions: 18

Compression:

Stored size: 892 Bytes

Contents

require "set"
require "yaml"

require "vmc/constants"
require "vmc/cli"

module VMC
  module Plugin
    @@plugins = []

    def self.load_all
      # auto-load gems with 'vmc-plugin' in their name
      enabled =
        Set.new(
          Gem::Specification.find_all { |s|
            s.name =~ /vmc-plugin/
          }.collect(&:name))

      # allow explicit enabling/disabling of gems via config
      plugins = File.expand_path(VMC::PLUGINS_FILE)
      if File.exists?(plugins) && yaml = YAML.load_file(plugins)
        enabled += yaml["enabled"] if yaml["enabled"]
        enabled -= yaml["disabled"] if yaml["disabled"]
      end

      # load up each gem's 'plugin' file
      #
      # we require this file specifically so people can require the gem
      # without it plugging into VMC
      enabled.each do |gemname|
        require "#{gemname}/plugin"
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
vmc-0.4.0.beta.30 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.29 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.28 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.27 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.26 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.25 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.24 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.23 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.22 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.21 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.20 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.19 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.18 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.17 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.16 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.15 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.14 vmc-ng/lib/vmc/plugin.rb
vmc-0.4.0.beta.13 vmc-ng/lib/vmc/plugin.rb