Class: Sphragis::Providers::BaseProvider

Inherits:
Object
  • Object
show all
Defined in:
lib/sphragis/providers/base_provider.rb

Defined Under Namespace

Classes: ProviderError

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = {}) ⇒ BaseProvider

Returns a new instance of BaseProvider.



10
11
12
13
# File 'lib/sphragis/providers/base_provider.rb', line 10

def initialize(config = {})
  @config = config
  @session = nil
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



8
9
10
# File 'lib/sphragis/providers/base_provider.rb', line 8

def config
  @config
end

Instance Method Details

#certificateHash

Get certificate information Must be implemented by subclasses

Returns:

  • (Hash)

    Certificate details

Raises:

  • (NotImplementedError)


43
44
45
# File 'lib/sphragis/providers/base_provider.rb', line 43

def certificate
  raise NotImplementedError, "#{self.class.name} must implement #certificate"
end

#connectObject

Connect to the signature provider Must be implemented by subclasses

Raises:

  • (NotImplementedError)


17
18
19
# File 'lib/sphragis/providers/base_provider.rb', line 17

def connect
  raise NotImplementedError, "#{self.class.name} must implement #connect"
end

#connected?Boolean

Check if connected

Returns:

  • (Boolean)


28
29
30
# File 'lib/sphragis/providers/base_provider.rb', line 28

def connected?
  !@session.nil?
end

#disconnectObject

Disconnect from the provider Must be implemented by subclasses

Raises:

  • (NotImplementedError)


23
24
25
# File 'lib/sphragis/providers/base_provider.rb', line 23

def disconnect
  raise NotImplementedError, "#{self.class.name} must implement #disconnect"
end

#provider_nameString

Get provider name

Returns:

  • (String)

    Human-readable provider name



49
50
51
# File 'lib/sphragis/providers/base_provider.rb', line 49

def provider_name
  self.class.name.split("::").last.gsub("Provider", "")
end

#sign(data) ⇒ Hash

Sign data Must be implemented by subclasses

Parameters:

  • data (String)

    Data to sign

Returns:

  • (Hash)

    Signature information

Raises:

  • (NotImplementedError)


36
37
38
# File 'lib/sphragis/providers/base_provider.rb', line 36

def sign(data)
  raise NotImplementedError, "#{self.class.name} must implement #sign"
end

#validate_configuration!Object

Validate configuration Can be overridden by subclasses



55
56
57
58
# File 'lib/sphragis/providers/base_provider.rb', line 55

def validate_configuration!
  # Base implementation does nothing
  true
end