class Kustomize::PluginManager
Public Class Methods
new(session:)
click to toggle source
# File lib/kustomize/plugin_manager.rb, line 6 def initialize(session:) @session = session @registry = Kustomize::PluginRegistry.instance end
Public Instance Methods
get(api_version:, kind:)
click to toggle source
# File lib/kustomize/plugin_manager.rb, line 11 def get(api_version:, kind:) plugin_klass = @registry.get(api_version: api_version, kind: kind) return plugin_klass if plugin_klass try_loading(api_version, kind) end
Private Instance Methods
try_loading(api_version, kind)
click to toggle source
# File lib/kustomize/plugin_manager.rb, line 19 def try_loading(api_version, kind) rel_load_path = Pathname.new(api_version) / "#{underscore(kind)}.rb" abs_load_path = @session.effective_load_paths .map{ |prefix| prefix / rel_load_path } .find{ |f| f.file? } raise LoadError, "could not find kustomize plugin to load" unless abs_load_path Kernel.require(abs_load_path) plugin_klass = @registry.get(api_version: api_version, kind: kind) raise LoadError, "#{abs_load_path} did not define expected plugin" unless plugin_klass plugin_klass end
underscore(str)
click to toggle source
# File lib/kustomize/plugin_manager.rb, line 39 def underscore(str) str .gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2') .gsub(/([a-z\d])([A-Z])/,'\1_\2') .tr("-", "_") .downcase end