Sha256: c11a5a7073a4ade56781ef029f264cecbbb38dd7187f4a319972829ccb51e157
Contents?: true
Size: 1.87 KB
Versions: 1
Compression:
Stored size: 1.87 KB
Contents
# encoding: utf-8 require 'ostruct' require 'active_support/inflector' require 'active_support/core_ext/string/inflections' module CSD # A convenience wrapper to get information about the available applications # class Applications # Returns nil if application could not be found # def self.find(app_name) begin UI.debug "Applications.find: Attempting to require `#{File.join(Path.applications, app_name.to_s)}´." require File.join(Path.applications, app_name.to_s) UI.debug "Applications.find: Attempting to load `#{app_name}´." ActiveSupport::Inflector.constantize "CSD::Application::#{app_name.camelize}" rescue LoadError => e UI.debug "Applications.find: The Application `#{app_name}´ could not be loaded properly." UI.debug " Reason: #{e}" nil end end def self.all(&block) result = [] Dir.directories(Path.applications) do |dir| next if dir == 'default' UI.debug "Applications.all: Identified application directory `#{dir}´." if app = find(dir) UI.debug "Applications.all: The application `#{dir}´ is valid." block_given? ? yield(app) : result << app end end result end def self.valid?(name) list.include?(name) end # This method identifies the desired application and initializes it in to +@@current+. # It is meant to be very robust, we expect the application to be any one of the first three arguments. # def self.current @@current ||= begin Applications.find(ARGV.first) || Applications.find(ARGV.second) || Applications.find(ARGV.third) end end # Forces a reload of the current application. This method is useful for functional tests. # def self.current! @@current = false current end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
csd-0.1.5 | lib/csd/applications.rb |