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