class YAMLParser

Attributes

configuration[R]

The configuration to use in order to add scripts in your project

Public Class Methods

new(yaml_file_path) click to toggle source
# File lib/spinjector/yaml_parser.rb, line 13
def initialize(yaml_file_path)
    @configuration_description = load_yml_content(yaml_file_path)
    @configuration = Configuration.new(targets)
end

Private Instance Methods

get_script(entry) click to toggle source
# File lib/spinjector/yaml_parser.rb, line 37
def get_script(entry)
    script = 
        if !@configuration_description["scripts"].nil? && !@configuration_description["scripts"][entry].nil?
            get_script_by_name(entry)
        elsif File.exist?(entry)
            get_script_by_path(entry)
        else
            raise "[Error] Script #{entry} does not exist" unless !script.nil?
        end
end
get_script_by_name(name) click to toggle source
# File lib/spinjector/yaml_parser.rb, line 48
def get_script_by_name(name)
    script_description = @configuration_description["scripts"][name]
    ScriptMapper.new(script_description).map()
end
get_script_by_path(path) click to toggle source
# File lib/spinjector/yaml_parser.rb, line 53
def get_script_by_path(path)
    script_description = load_yml_content(path)
    ScriptMapper.new(script_description).map()
end
load_yml_content(configuration_path) click to toggle source

@param [String] configuration_path @return [Hash] the hash in the configuration file

# File lib/spinjector/yaml_parser.rb, line 61
def load_yml_content(configuration_path)
    raise "[Error] YAML file #{configuration_path} not found." unless File.exist?(configuration_path)
    YAML.load(File.read(configuration_path)) || {}
end
targets() click to toggle source
# File lib/spinjector/yaml_parser.rb, line 20
def targets
    if @configuration_description["targets"].nil?
        puts "[Warning] There is no target in your configuration file."
        return
    end
    @configuration_description["targets"].map do |target_name, script_entries|
        if script_entries.nil?
            puts "[Warning] There is no scripts in your configuration file under target #{target_name}"
            return
        end
        scripts = script_entries.map do |entry|
            get_script(entry)
        end
        Target.new(target_name, scripts)
    end
end