class OutputBuilder

Attributes

directory_concrete_builders[R]
output_directory[R]
topology_provider[R]

Public Class Methods

new(topology_provider, directory_concrete_builders, output_directory) click to toggle source
# File lib/output_builder.rb, line 9
def initialize(topology_provider, directory_concrete_builders, output_directory)
    validate_params topology_provider, directory_concrete_builders, output_directory

    @topology_provider = topology_provider
    @directory_concrete_builders = directory_concrete_builders
    @output_directory = output_directory
end

Public Instance Methods

build_output() click to toggle source
# File lib/output_builder.rb, line 17
def build_output
    Dir["#{@directory_concrete_builders}/*.rb"].each { |file| 
        if file[0] == '/' then
            require "#{file}" 
        else
            require "./#{file}" 
        end
    }
    self.class.send(:include,OutputConcreteBuilder)
    validate_output_concrete_builder

    initialize_concrete_builder @topology_provider, @directory_concrete_builders, @output_directory

    build_output_content
end
validate_output_concrete_builder() click to toggle source
# File lib/output_builder.rb, line 33
def validate_output_concrete_builder
    [:initialize_concrete_builder, :build_output_content].each do |method|
        raise ArgumentError, "It was expected to load an OutputConcreteBuilder module from #{@directory_concrete_builders}/builders/output_files_format that implements the method #{method}, but the one provided does not has this method implemented" unless self.respond_to? method
    end
end
validate_params(topology_provider, directory_concrete_builders, output_directory) click to toggle source
# File lib/output_builder.rb, line 39
def validate_params(topology_provider, directory_concrete_builders, output_directory)
    raise ArgumentError, 'The topology provider given cannot be nil' unless topology_provider
    raise ArgumentError, 'The template directory given cannot be nil' unless directory_concrete_builders
    raise ArgumentError, "It was expected to find builders files in directory #{directory_concrete_builders}, but nothing was found." if Dir["#{directory_concrete_builders}/*.rb"].size == 0
    raise ArgumentError, 'The output directory given cannot be nil' unless output_directory    
end