module Kontena::PluginManager::Common

Constants

KONTENA_PLUGIN

Public Class Methods

dummy_ui() click to toggle source

@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
gem_versions(plugin_name) click to toggle source

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
install_dir() click to toggle source

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, '.kontena', 'gems', RUBY_VERSION)
  unless File.directory?(install_dir)
    require 'fileutils'
    FileUtils.mkdir_p(install_dir, mode: 0700)
  end
  @install_dir = install_dir
end
installed(plugin_name) click to toggle source

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
installed?(plugin_name) click to toggle source
# File lib/kontena/plugin_manager/common.rb, line 45
def installed?(plugin_name)
  !installed(plugin_name).nil?
end
plugin_debug?() click to toggle source

@return [Boolean] is the CLI in plugin debugging mode?

# File lib/kontena/plugin_manager/common.rb, line 12
def plugin_debug?
  @plugin_debug ||= ENV['DEBUG'] == 'plugin'
end
plugins() click to toggle source
# File lib/kontena/plugin_manager/common.rb, line 83
def plugins
  Kontena::PluginManager.plugins
end
prefix(plugin_name) click to toggle source

Prefix a plugin name into a gem name (hello to kontena-plugin-hello)

# File lib/kontena/plugin_manager/common.rb, line 30
def prefix(plugin_name)
  return KONTENA_PLUGIN % nil if plugin_name.nil? || plugin_name.empty?
  return plugin_name if plugin_name.start_with?('kontena-plugin-') || plugin_name.include?('.')
  KONTENA_PLUGIN % plugin_name
end
rubygems_client() click to toggle source

@return [Kontena::PluginManager::RubygemsClient]

# File lib/kontena/plugin_manager/common.rb, line 64
def rubygems_client
  @rubygems_client ||= Kontena::PluginManager::RubygemsClient.new
end
search_plugins(pattern = nil) click to toggle source

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
use_dummy_ui() click to toggle source

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

dummy_ui() click to toggle source

@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
gem_versions(plugin_name) click to toggle source

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
install_dir() click to toggle source

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, '.kontena', 'gems', RUBY_VERSION)
  unless File.directory?(install_dir)
    require 'fileutils'
    FileUtils.mkdir_p(install_dir, mode: 0700)
  end
  @install_dir = install_dir
end
installed(plugin_name) click to toggle source

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
installed?(plugin_name) click to toggle source
# File lib/kontena/plugin_manager/common.rb, line 45
def installed?(plugin_name)
  !installed(plugin_name).nil?
end
plugin_debug?() click to toggle source

@return [Boolean] is the CLI in plugin debugging mode?

# File lib/kontena/plugin_manager/common.rb, line 12
def plugin_debug?
  @plugin_debug ||= ENV['DEBUG'] == 'plugin'
end
plugins() click to toggle source
# File lib/kontena/plugin_manager/common.rb, line 83
def plugins
  Kontena::PluginManager.plugins
end
prefix(plugin_name) click to toggle source

Prefix a plugin name into a gem name (hello to kontena-plugin-hello)

# File lib/kontena/plugin_manager/common.rb, line 30
def prefix(plugin_name)
  return KONTENA_PLUGIN % nil if plugin_name.nil? || plugin_name.empty?
  return plugin_name if plugin_name.start_with?('kontena-plugin-') || plugin_name.include?('.')
  KONTENA_PLUGIN % plugin_name
end
rubygems_client() click to toggle source

@return [Kontena::PluginManager::RubygemsClient]

# File lib/kontena/plugin_manager/common.rb, line 64
def rubygems_client
  @rubygems_client ||= Kontena::PluginManager::RubygemsClient.new
end
search_plugins(pattern = nil) click to toggle source

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
use_dummy_ui() click to toggle source

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