Class: EC2Launcher::ApplicationProcessor

Inherits:
Object
  • Object
show all
Includes:
DirectoryProcessing
Defined in:
lib/ec2launcher/application_processor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from DirectoryProcessing

#process_directory_list

Constructor Details

#initialize(base_directory, applications_directories) ⇒ ApplicationProcessor

Returns a new instance of ApplicationProcessor.



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/ec2launcher/application_processor.rb', line 19

def initialize(base_directory, applications_directories)
  app_dirs = process_directory_list(base_directory, applications_directories, "applications", "Applications", true)

  # Load applications
  @applications = {}
  app_dirs.each do |app_dir|
    Dir.entries(app_dir).each do |application_name|
      filename = File.join(app_dir, application_name)
      next if File.directory?(filename)

      apps = EC2Launcher::DSL::ApplicationDSL.execute(File.read(filename)).applications
      apps.each do |new_application|
        @applications[new_application.name] = new_application
        validate_application(filename, new_application)
      end
    end
  end

  # Process inheritance rules for applications
  @applications.values.each do |app|
    next if app.inherit.nil?

    new_app = process_application_inheritance(app)
    @applications[new_app.name] = new_app
  end
end

Instance Attribute Details

#applicationsObject

Returns the value of attribute applications.



15
16
17
# File 'lib/ec2launcher/application_processor.rb', line 15

def applications
  @applications
end