module Kontena::PluginManager::Common
Constants
- KRATES_PLUGIN
Public Class Methods
@return [Gem::StreamUI] a rubygems user interaction module with minimal output
# File lib/kontena/plugin_manager/common.rb, line 18 def dummy_ui Gem::StreamUI.new(StringIO.new, StringIO.new, StringIO.new, false) end
Retrieve plugin versions from rubygems @param plugin_name [String]
# File lib/kontena/plugin_manager/common.rb, line 78 def gem_versions(plugin_name) rubygems_client.versions(prefix(plugin_name)) end
Gem installation directory @return [String]
# File lib/kontena/plugin_manager/common.rb, line 52 def install_dir return @install_dir if @install_dir install_dir = File.join(Dir.home, '.krates', 'gems', RUBY_VERSION) unless File.directory?(install_dir) require 'fileutils' FileUtils.mkdir_p(install_dir, mode: 0700) end @install_dir = install_dir end
Find a plugin by name from installed plugins @param plugin_name [String]
# File lib/kontena/plugin_manager/common.rb, line 39 def installed(plugin_name) search = prefix(plugin_name) plugins.find {|plugin| plugin.name == search } end
# File lib/kontena/plugin_manager/common.rb, line 45 def installed?(plugin_name) !installed(plugin_name).nil? end
@return [Boolean] is the CLI in plugin debugging mode?
# File lib/kontena/plugin_manager/common.rb, line 12 def plugin_debug? @plugin_debug ||= ENV['CMD_DEBUG'] == 'plugin' end
# File lib/kontena/plugin_manager/common.rb, line 83 def plugins Kontena::PluginManager.plugins end
Prefix a plugin name into a gem name (hello to krates-plugin-hello)
# File lib/kontena/plugin_manager/common.rb, line 30 def prefix(plugin_name) return KRATES_PLUGIN % nil if plugin_name.nil? || plugin_name.empty? return plugin_name if plugin_name.start_with?('krates-plugin-') || plugin_name.include?('.') KRATES_PLUGIN % plugin_name end
@return [Kontena::PluginManager::RubygemsClient]
# File lib/kontena/plugin_manager/common.rb, line 64 def rubygems_client @rubygems_client ||= Kontena::PluginManager::RubygemsClient.new end
Search rubygems for kontena plugins @param pattern [String] optional search pattern
# File lib/kontena/plugin_manager/common.rb, line 71 def search_plugins(pattern = nil) rubygems_client.search(prefix(pattern)) end
Tell rubygems to use the dummy ui as default user interaction
# File lib/kontena/plugin_manager/common.rb, line 24 def use_dummy_ui Gem::DefaultUserInteraction.ui = dummy_ui end
Private Instance Methods
@return [Gem::StreamUI] a rubygems user interaction module with minimal output
# File lib/kontena/plugin_manager/common.rb, line 18 def dummy_ui Gem::StreamUI.new(StringIO.new, StringIO.new, StringIO.new, false) end
Retrieve plugin versions from rubygems @param plugin_name [String]
# File lib/kontena/plugin_manager/common.rb, line 78 def gem_versions(plugin_name) rubygems_client.versions(prefix(plugin_name)) end
Gem installation directory @return [String]
# File lib/kontena/plugin_manager/common.rb, line 52 def install_dir return @install_dir if @install_dir install_dir = File.join(Dir.home, '.krates', 'gems', RUBY_VERSION) unless File.directory?(install_dir) require 'fileutils' FileUtils.mkdir_p(install_dir, mode: 0700) end @install_dir = install_dir end
Find a plugin by name from installed plugins @param plugin_name [String]
# File lib/kontena/plugin_manager/common.rb, line 39 def installed(plugin_name) search = prefix(plugin_name) plugins.find {|plugin| plugin.name == search } end
# File lib/kontena/plugin_manager/common.rb, line 45 def installed?(plugin_name) !installed(plugin_name).nil? end
@return [Boolean] is the CLI in plugin debugging mode?
# File lib/kontena/plugin_manager/common.rb, line 12 def plugin_debug? @plugin_debug ||= ENV['CMD_DEBUG'] == 'plugin' end
# File lib/kontena/plugin_manager/common.rb, line 83 def plugins Kontena::PluginManager.plugins end
Prefix a plugin name into a gem name (hello to krates-plugin-hello)
# File lib/kontena/plugin_manager/common.rb, line 30 def prefix(plugin_name) return KRATES_PLUGIN % nil if plugin_name.nil? || plugin_name.empty? return plugin_name if plugin_name.start_with?('krates-plugin-') || plugin_name.include?('.') KRATES_PLUGIN % plugin_name end
@return [Kontena::PluginManager::RubygemsClient]
# File lib/kontena/plugin_manager/common.rb, line 64 def rubygems_client @rubygems_client ||= Kontena::PluginManager::RubygemsClient.new end
Search rubygems for kontena plugins @param pattern [String] optional search pattern
# File lib/kontena/plugin_manager/common.rb, line 71 def search_plugins(pattern = nil) rubygems_client.search(prefix(pattern)) end
Tell rubygems to use the dummy ui as default user interaction
# File lib/kontena/plugin_manager/common.rb, line 24 def use_dummy_ui Gem::DefaultUserInteraction.ui = dummy_ui end