Sha256: 43c44045553411bafc4f75765b3299df4c94ad887f9e03cb04697b24a71013c6
Contents?: true
Size: 1.93 KB
Versions: 15
Compression:
Stored size: 1.93 KB
Contents
module Nucleon module Gems #----------------------------------------------------------------------------- @@core = nil @@gems = {} #----------------------------------------------------------------------------- # Gem interface def self.logger Core.logger end #--- def self.core @@core end #--- def self.registered @@gems end #--- def self.register(reset = false) if reset || Util::Data.empty?(@@gems) logger.info("Registering external gem defined Nucleon plugins at #{Time.now}") if defined?(Gem) if ! defined?(Bundler) && Gem::Specification.respond_to?(:latest_specs) logger.debug("Not using bundler") Gem::Specification.latest_specs(true).each do |spec| register_gem(spec) end else logger.debug("Using bundler or Gem specification without latest_specs") Gem.loaded_specs.each do |name, spec| register_gem(spec) end end end end @@gems end #--- def self.register_gem(spec) name = spec.name.to_sym base_path = File.join(spec.full_gem_path, 'lib') if name == :nucleon logger.debug("Setting Nucleon core gemspec") @@core = spec @@gems[name] = { :spec => spec, :base_path => base_path, :namespaces => [ :nucleon ] } else Manager.connection.register(base_path) do |data| namespace = data[:namespace] plugin_path = data[:directory] logger.info("Registering gem #{name} at #{plugin_path} at #{Time.now}") unless @@gems.has_key?(name) @@gems[name] = { :spec => spec, :base_path => base_path, :namespaces => [] } @@gems[name][:namespaces] << namespace unless @@gems[name][:namespaces].include?(namespace) end end end end end
Version data entries
15 entries across 15 versions & 1 rubygems