class Diakonos::ExtensionSet

Public Class Methods

new( root_dir ) click to toggle source
# File lib/diakonos/extension-set.rb, line 5
def initialize( root_dir )
  @extensions = Hash.new
  @root_dir = File.expand_path( root_dir )
end

Public Instance Methods

load( dir ) click to toggle source

@return an Array of configuration filenames to parse

# File lib/diakonos/extension-set.rb, line 15
def load( dir )
  @extensions[ dir ] = false

  confs_to_parse = []
  ext_dir = File.join( @root_dir, dir )
  info = YAML.load_file( File.join( ext_dir, 'info.yaml' ) )

  if info[ 'requirements' ] && info[ 'requirements' ][ 'diakonos' ]
    this_version = ::Diakonos.parse_version( ::Diakonos::VERSION )
    min_version = ::Diakonos.parse_version( info[ 'requirements' ][ 'diakonos' ][ 'minimum' ] )
    if min_version && this_version >= min_version
      extension = Extension.new( ext_dir )
      @extensions[ dir ] = extension
      confs_to_parse += extension.confs
    end
  end

  confs_to_parse
end
loaded?( ext_dir ) click to toggle source
# File lib/diakonos/extension-set.rb, line 35
def loaded?( ext_dir )
  @extensions[ ext_dir ]
end
loaded_extensions() click to toggle source
# File lib/diakonos/extension-set.rb, line 39
def loaded_extensions
  @extensions.values.find_all { |e| e }
end
not_loaded_extensions() click to toggle source
# File lib/diakonos/extension-set.rb, line 43
def not_loaded_extensions
  @extensions.keys.find_all { |e| ! loaded?( e ) }
end
scripts() click to toggle source
# File lib/diakonos/extension-set.rb, line 10
def scripts
  @extensions.values.find_all { |e| e }.map { |e| e.scripts }.flatten
end