Sha256: e39410f728d2d798cc17205582a1a926956f7ee075f61facbda2e9c78915bbec
Contents?: true
Size: 1.2 KB
Versions: 2
Compression:
Stored size: 1.2 KB
Contents
# frozen_string_literal: true module Vedeu # A class responsible for plugin loading. # class Plugin # @!attribute [r] name # @return [String|Symbol] attr_reader :name # @!attribute [r] gem # @return [String] attr_reader :gem # @!attribute [r] gem_name # @return [String] attr_reader :gem_name # @!attribute [rw] enabled # @return [Boolean] attr_accessor :enabled alias enabled? enabled # Returns a new instance of Vedeu::Plugin. # # @param name [String] The plugin name. # @param gem [Gem::Specification] The RubyGems gem. # @return [Vedeu::Plugin] def initialize(name, gem) @name = name @gem = gem @gem_name = "vedeu_#{name}" @enabled = false end # Load the plugin (require the gem). # # @return [void] def load! begin require gem_name unless enabled? rescue LoadError => error raise Vedeu::Error::Fatal, "Unable to load plugin #{gem_name} due to #{error}." rescue => error raise Vedeu::Error::Fatal, "require '#{gem_name}' failed with #{error}." end @enabled = true end end # Plugin end # Vedeu
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
vedeu-0.8.8 | lib/vedeu/plugins/plugin.rb |
vedeu-0.8.7 | lib/vedeu/plugins/plugin.rb |