class CanvasOss::Configuration

A class that open a CANVAS configuration file and parse it @example Load configuration from a CANVAS subsystem_name subsystem configuration file. A default file URI is assumed.

> configuration = new Configuration(uri)

Constants

DEFAULT_PATH

Default CANVAS configuration path

SUBSYSTEM_NAME
VERSION

Attributes

global[R]

:global contains CANVAS global configuration as a hash

subsys[R]

:subsys contains CANVAS subsystem configuration as a hash

Public Class Methods

new(uri = nil) click to toggle source

Load CANVAS configuration file from `uri` file or from default file

# File lib/canvas_oss/configuration.rb, line 33
def initialize(uri = nil)
  filename = File.realpath(File.join(DEFAULT_PATH, configuration_filename)) unless uri
  filename = File.realpath(uri) if uri.is_a?(String) && uri.length.positive?
  # Load YAML configuration file
  documents = []
  YAML.load_stream(File.read(filename)) do |document|
    documents << document
  end
  # CANVAS Configuration file contain CANVAS global configuration
  @global = validate_global(documents[0])
  # CANVAS Configuration file contains CANVAS product-inventory subprocess configuration
  @subsys = validate_subsys(documents[1])
end

Public Instance Methods

configuration_filename() click to toggle source

Return configuration filename

# File lib/canvas_oss/configuration.rb, line 79
def configuration_filename
  return SUBSYSTEM_NAME + '.yml'
end
validate_global(hash) click to toggle source

Ensure that CANVAS configuration contains at least some parameters

# File lib/canvas_oss/configuration.rb, line 48
def validate_global(hash)
  # CANVAS global configuration contains `canvas`
  hash.key?(:canvas)
  # CANVAS global configuration contains database parameters
  hash[:canvas].key?(:database)
  # CANVAS global configuration contains `canvas_configuration` database parameters
  hash[:canvas][:database].key?(:canvas_configuration)
  hash[:canvas][:database][:canvas_configuration].key?(:host)
  hash[:canvas][:database][:canvas_configuration].key?(:port)
  hash[:canvas][:database][:canvas_configuration].key?(:database)
  hash[:canvas][:database][:canvas_configuration].key?(:username)
  hash[:canvas][:database][:canvas_configuration].key?(:password)
  # CANVAS global configuration contains `canvas_data` database parameters
  hash[:canvas][:database].key?(:canvas_data)
  hash[:canvas][:database][:canvas_data].key?(:host)
  hash[:canvas][:database][:canvas_data].key?(:port)
  hash[:canvas][:database][:canvas_data].key?(:database)
  hash[:canvas][:database][:canvas_data].key?(:username)
  hash[:canvas][:database][:canvas_data].key?(:password)
  return hash[:canvas]
end
validate_subsys(hash) click to toggle source

Ensure that CANVAS subsystem configuration contains at least some parameters This method should be overloaded

# File lib/canvas_oss/configuration.rb, line 72
def validate_subsys(hash)
  # CANVAS global configuration contains `subsystem_name`
  hash.key?(:subsystem_name)
  return hash[:subsystem_name]
end