class LetsCert::IOPlugin

Input/output plugin @author Sylvain Daubert

Attributes

registered[R]

Get registered plugins @return [Hash] keys are filenames and keys are instances of IOPlugin

subclasses.
name[R]

Plugin name @return [String]

Public Class Methods

empty_data() click to toggle source

Get empty data @return [Hash] +{ account_key: nil, key: nil, cert: nil, chain: nil }+

# File lib/letscert/io_plugin.rb, line 47
def empty_data
  { account_key: nil, key: nil, cert: nil, chain: nil }
end
new(name) click to toggle source

@param [String] name

# File lib/letscert/io_plugin.rb, line 68
def initialize(name)
  @name = name
end
register(klass, *args) click to toggle source

Register a plugin @param [Class] klass @param [Array] args args to pass to klass constructor @return [IOPlugin]

# File lib/letscert/io_plugin.rb, line 55
def register(klass, *args)
  plugin = klass.new(*args)
  if plugin.name =~ %r{[/\\]} or ['.', '..'].include?(plugin.name)
    raise Error, 'plugin name should just be a file name, without path'
  end

  @registered[plugin.name] = plugin
  klass
end

Public Instance Methods

load() click to toggle source

@abstract This method must be overriden in subclasses Load data from disk

# File lib/letscert/io_plugin.rb, line 74
def load
  raise NotImplementedError
end
save() click to toggle source

@abstract This method must be overriden in subclasses Save data to disk

# File lib/letscert/io_plugin.rb, line 80
def save
  raise NotImplementedError
end