class FeduxOrgStdlib::GemPlugins::Plugin

Plugin

Attributes

author[R]
homepage[R]
name[R]
version[R]

Public Class Methods

new(spec:) click to toggle source
# File lib/fedux_org_stdlib/gem_plugins/plugin.rb, line 14
def initialize(spec:)
  @name        = spec.name
  @author      = Array(spec.authors).zip(Array(spec.email)).map { |a, e| format('%s (%s)', a, e) }.to_list
  @version     = spec.version
  @homagepage  = spec.homepage
  @active      = false
end

Public Instance Methods

<=>(other) click to toggle source

@private

# File lib/fedux_org_stdlib/gem_plugins/plugin.rb, line 57
def <=>(other)
  name <=> other.name
end
activate() click to toggle source

Activate the plugin (require the gem - enables/loads the plugin immediately at point of call, even if plugin is disabled) Does not reload plugin if it's already active.

# File lib/fedux_org_stdlib/gem_plugins/plugin.rb, line 26
def activate
  return if active?

  begin
    require name
  rescue LoadError => e
    warn "Found plugin \"#{name}\", but could not require \"#{require_file}\""
    warn e
  rescue StandardError => e
    warn "Require plugin \"#{name}\" failed, saying: #{e}\n#{e.backtrace.join("\n")}"
  end

  @active = true
end
active?() click to toggle source

Is plugin active?

# File lib/fedux_org_stdlib/gem_plugins/plugin.rb, line 42
def active?
  @active == true
end
blank?() click to toggle source

Is an existing plugin

# File lib/fedux_org_stdlib/gem_plugins/plugin.rb, line 47
def blank?
  false
end
require_file() click to toggle source

Path of require file

# File lib/fedux_org_stdlib/gem_plugins/plugin.rb, line 52
def require_file
  "#{name}.rb"
end