class OpenPGP::Engine

Public Class Methods

available?() click to toggle source

@return [Boolean]

# File lib/openpgp/engine.rb, line 9
def self.available?
  begin
    load!(true)
    return true
  rescue LoadError => e
    return false
  end
end
install!() click to toggle source

@return [void] @raise [LoadError]

# File lib/openpgp/engine.rb, line 29
def self.install!
  load!
end
load!(reload = false) click to toggle source

@param [Boolean] reload @return [void] @raise [LoadError]

# File lib/openpgp/engine.rb, line 22
def self.load!(reload = false)
  raise LoadError
end
use(&block) click to toggle source

@yield [engine] @yieldparam [Engine] engine @return [void]

# File lib/openpgp/engine.rb, line 37
def self.use(&block)
  load!
  block.call(self)
end

Protected Class Methods

install_extensions!(extension) click to toggle source

@param [Module] extension @return [void]

# File lib/openpgp/engine.rb, line 47
def self.install_extensions!(extension)
  name = extension.name.split('::').last.to_sym

  klass = OpenPGP.const_get(name)
  extension.constants.each do |const|
    klass.send(:remove_const, const)
    klass.const_set(const, extension.const_get(const))
  end

  target = (class << klass; self; end)
  extension.instance_methods(false).each do |method|
    target.send(:remove_method, method)
    target.send(:include, extension)
  end
end