Class: LetsCert::IOPlugin

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

Overview

Input/output plugin

Author:

  • Sylvain Daubert

Direct Known Subclasses

AccountKey, OpenSSLIOPlugin

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Loggable

included, #logger

Constructor Details

#initialize(name) ⇒ IOPlugin

Returns a new instance of IOPlugin.

Parameters:

  • name (String)


68
69
70
# File 'lib/letscert/io_plugin.rb', line 68

def initialize(name)
  @name = name
end

Class Attribute Details

.registeredHash (readonly)

Get registered plugins

Returns:

  • (Hash)

    keys are filenames and keys are instances of IOPlugin subclasses.



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

def registered
  @registered
end

Instance Attribute Details

#nameString (readonly)

Plugin name

Returns:

  • (String)


33
34
35
# File 'lib/letscert/io_plugin.rb', line 33

def name
  @name
end

Class Method Details

.empty_dataHash

Get empty data

Returns:

  • (Hash)

    { account_key: nil, key: nil, cert: nil, chain: nil }



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

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

.register(klass, *args) ⇒ IOPlugin

Register a plugin

Parameters:

  • klass (Class)
  • args (Array)

    args to pass to klass constructor

Returns:



55
56
57
58
59
60
61
62
63
# 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

Instance Method Details

#loadObject

This method is abstract.

This method must be overriden in subclasses

Load data from disk

Raises:

  • (NotImplementedError)


74
75
76
# File 'lib/letscert/io_plugin.rb', line 74

def load
  raise NotImplementedError
end

#saveObject

This method is abstract.

This method must be overriden in subclasses

Save data to disk

Raises:

  • (NotImplementedError)


80
81
82
# File 'lib/letscert/io_plugin.rb', line 80

def save
  raise NotImplementedError
end