class Evolis::PremiumSdk::Espf

Constants

READ_PARAMS

Parameters valid for reading

WRITE_PARAMS

Parameters and values valid for setting

Public Class Methods

new(host, port) click to toggle source

Initializes the class and sets SDK host and port

@param host [String] host or IP for SDK @param port [String, Fixnum] port for SDK

Calls superclass method
# File lib/evolis/premium_sdk/espf.rb, line 11
def initialize(host, port)
  super(host, port, 'ESPF')
end

Public Instance Methods

get_param(key) click to toggle source

Reads the value of a server parameter

@param key [String] ESPF service parameter @return [String] current value @raise [Error::InvalidParamError] if the parameters supplied is not valid

# File lib/evolis/premium_sdk/espf.rb, line 20
def get_param(key)
  raise Error::InvalidParamError.new key unless valid_param?(key)

  call_rpc('GetParam', {
      key: key
  })
end
set_param(key, value) click to toggle source

Edits the value of server parameter

@param key [String] ESPF service parameter @param value [String] value to be set @return [true] if set as planned @raise [Error::InvalidParamError] if the parameters supplied is not valid

# File lib/evolis/premium_sdk/espf.rb, line 34
def set_param(key, value)
  raise Error::InvalidParamError.new "#{key}=#{value}" unless valid_param?(key, value)

  call_rpc('SetParam', {
      key:  key,
      data: value
  })
end
valid_param?(key, value = nil) click to toggle source

Checks if the parameters supplied is valid

@param key [String] ESPF service parameter @param value [nil, false, String] nil/false when parameter only, String to run check on value @return [true, false] true when validation succeeds and false when it does not

# File lib/evolis/premium_sdk/espf.rb, line 48
def valid_param?(key, value = nil)
  params = value ? WRITE_PARAMS : READ_PARAMS.merge(WRITE_PARAMS)

  return false unless params.has_key?(key.to_sym)

  if value
    return false if value.is_a?(String) && value.empty?
    return false if params[key.to_sym].is_a?(Array) && !params[key.to_sym].include?(value)
    return false if params[key.to_sym].is_a?(Regexp) && value !~ params[key.to_sym]
  end

  return true
end