Sha256: 6e0c4e421b7a1ad24e6580a347c8d9a3e36ee015061ad250b7a1647d7f5929be
Contents?: true
Size: 1.75 KB
Versions: 1
Compression:
Stored size: 1.75 KB
Contents
module Reap def self.application Application.instance end class Application def self.instance @application ||= self.new end attr :tasks, :projectfile def initialize @tasks = {} @projectfile = ProjectInfo.find if @projectfile @projectdir = File.dirname( @projectfile ) Dir.chdir( @projectdir ) end require_custom_tasks if @projectfile require_custom_project_tasks @projectinfo = ProjectInfo.load( @projectfile ) end initialize_tasks initialize_special_tasks end def projectfile?() @projectfile end def add_task( task ) @tasks[task.task_name] = task end # Load custom tasks. def require_custom_tasks # Universal custom tasks for all projects. dir = File.join( Config::CONFIG['datadir'], 'reap/task' ) require_all( File.join(dir, '*') ) if File.directory?(dir) # Personal tasks for all projects. dir = File.expand_path( '~/.share/reap/task' ) require_all( File.join(dir, '*') ) if File.directory?(dir) end # Project specific tasks. def require_custom_project_tasks require_all('task/*') if File.directory?('task') end def initialize_tasks return unless @projectinfo @projectinfo.each { |key, value| add_task( value ) if Reap::Task === value } end # Load special tasks. There are tasks that don't require # a ProjectInfo section or other special requirements. def initialize_special_tasks Reap.registry.each { |taskclass| if taskclass.available?( self ) task = taskclass.new({}) task.task_name = taskclass.task_class tasks[task.task_name] = task end } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
reap-5.0.0 | lib/reap/app.rb |