Class: LetsCert::IOPlugin

Inherits:
Object
  • Object
show all
Defined in:
lib/letscert/io_plugin.rb

Overview

Input/output plugin

Direct Known Subclasses

AccountKey, OpenSSLIOPlugin

Constant Summary collapse

ALLOWED_PLUGINS =

Allowed plugin names

%w(account_key.json cert.der cert.pem chain.pem full.pem) +
%w(fullchain.pem key.der key.pem)
@@registered =
{}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ IOPlugin



48
49
50
# File 'lib/letscert/io_plugin.rb', line 48

def initialize(name)
  @name = name
end

Instance Attribute Details

#nameString (readonly)

Plugin name



11
12
13
# File 'lib/letscert/io_plugin.rb', line 11

def name
  @name
end

Class Method Details

.empty_dataObject

Get empty data



21
22
23
# File 'lib/letscert/io_plugin.rb', line 21

def self.empty_data
  { account_key: nil, key: nil, cert: nil, chain: nil }
end

.logger=(logger) ⇒ Object

Set logger



43
44
45
# File 'lib/letscert/io_plugin.rb', line 43

def self.logger=(logger)
  @@logger = logger
end

.register(klass, *args) ⇒ Object

Register a plugin



26
27
28
29
30
31
32
33
34
35
# File 'lib/letscert/io_plugin.rb', line 26

def self.register(klass, *args)
  plugin = klass.new(*args)
  if plugin.name =~ /[\/\\]/ or ['.', '..'].include?(plugin.name)
    raise Error, "plugin name should just ne a file name, without path"
  end

  @@registered[plugin.name] = plugin

  klass
end

.registeredObject

Get registered plugins



38
39
40
# File 'lib/letscert/io_plugin.rb', line 38

def self.registered
  @@registered
end

Instance Method Details

#loadObject

This method is abstract.

This method must be overriden in subclasses

Raises:

  • (NotImplementedError)


59
60
61
# File 'lib/letscert/io_plugin.rb', line 59

def load
  raise NotImplementedError
end

#loggerLogger

Get logger instance



54
55
56
# File 'lib/letscert/io_plugin.rb', line 54

def logger
  @logger ||= self.class.class_variable_get(:@@logger)
end

#saveObject

This method is abstract.

This method must be overriden in subclasses

Raises:

  • (NotImplementedError)


64
65
66
# File 'lib/letscert/io_plugin.rb', line 64

def save
  raise NotImplementedError
end