Class: OutputBuilder
- Inherits:
-
Object
- Object
- OutputBuilder
- Includes:
- CustomFileUtils
- Defined in:
- lib/output_builder.rb
Instance Attribute Summary collapse
-
#directory_concrete_builders ⇒ Object
readonly
Returns the value of attribute directory_concrete_builders.
-
#output_directory ⇒ Object
readonly
Returns the value of attribute output_directory.
-
#topology_provider ⇒ Object
readonly
Returns the value of attribute topology_provider.
Instance Method Summary collapse
- #build_output ⇒ Object
-
#initialize(topology_provider, directory_concrete_builders, output_directory) ⇒ OutputBuilder
constructor
A new instance of OutputBuilder.
- #validate_output_concrete_builder ⇒ Object
- #validate_params(topology_provider, directory_concrete_builders, output_directory) ⇒ Object
Methods included from CustomFileUtils
#create_empty_file, #write_file
Constructor Details
#initialize(topology_provider, directory_concrete_builders, output_directory) ⇒ OutputBuilder
Returns a new instance of OutputBuilder.
9 10 11 12 13 14 15 |
# 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 |
Instance Attribute Details
#directory_concrete_builders ⇒ Object (readonly)
Returns the value of attribute directory_concrete_builders.
5 6 7 |
# File 'lib/output_builder.rb', line 5 def directory_concrete_builders @directory_concrete_builders end |
#output_directory ⇒ Object (readonly)
Returns the value of attribute output_directory.
5 6 7 |
# File 'lib/output_builder.rb', line 5 def output_directory @output_directory end |
#topology_provider ⇒ Object (readonly)
Returns the value of attribute topology_provider.
5 6 7 |
# File 'lib/output_builder.rb', line 5 def topology_provider @topology_provider end |
Instance Method Details
#build_output ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# 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 ⇒ Object
33 34 35 36 37 |
# 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) ⇒ Object
39 40 41 42 43 44 |
# 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 |