Module: DynTask
- Defined in:
- lib/dyntask/task_mngr.rb
Defined Under Namespace
Classes: TaskMngr
Constant Summary collapse
- @@task_mngr =
nil- @@task_cpt =
-1- @@cfg_dir =
nil- @@cfg_pandoc =
nil
Class Method Summary collapse
-
.add_task(task, id = nil) ⇒ Object
id.nil? => new task.
- .cfg_dir ⇒ Object
- .cfg_pandoc(renew = false) ⇒ Object
- .inc_task_cpt ⇒ Object
- .read_tasks(task_filename) ⇒ Object
- .relative_path_from_sys_root(abs_path) ⇒ Object
- .save_tasks(task_basename, task_dirname = nil) ⇒ Object
- .sys_root_path(rel_path) ⇒ Object
-
.update_sys_root(path) ⇒ Object
to be able to change sys_root path depending on local or remote mode.
- .wait_for_file(filename, wait_loop_number = 20, wait_loop_time = 0.5, verbose = false) ⇒ Object
Class Method Details
.add_task(task, id = nil) ⇒ Object
id.nil? => new task
16 17 18 19 |
# File 'lib/dyntask/task_mngr.rb', line 16 def self.add_task(task,id=nil) #id.nil? => new task @@task_mngr ||= DynTask::TaskMngr.new @@task_mngr.add_task(task,id) end |
.cfg_dir ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/dyntask/task_mngr.rb', line 34 def self.cfg_dir return @@cfg_dir if @@cfg_dir root=File.join(ENV["HOME"],".dyntask") ## the idea is that any path has to be relative to some system root sys_root=(ENV["HOMEDRIVE"]||"")+"/" # local mode @@cfg_dir={ :root => root, :etc => File.join(root,"etc"), :share => File.join(root,"share"), :tasks => File.join(root,"share","tasks"), :plugins => File.join(root,"share","plugins"), :run => File.join(root,"run") # default folder to watch. In a perfect world (this is my goal), only this folder to watch! } ## File containing the sys_root_path (used in atom package) @@cfg_dir[:sys_root_path_cfg]=File.join(@@cfg_dir[:etc],"sys_root_path") self.update_sys_root(sys_root) @@cfg_dir end |
.cfg_pandoc(renew = false) ⇒ Object
81 82 83 84 85 86 87 88 89 |
# File 'lib/dyntask/task_mngr.rb', line 81 def self.cfg_pandoc(renew=false) return @@cfg_pandoc if @@cfg_pandoc and !renew @@cfg_pandoc={} @@cfg_pandoc[:extra_etc]=File.join(self.cfg_dir[:etc],"pandoc_extra_dir") @@cfg_pandoc[:extra_dir]=((File.exist? @@cfg_pandoc[:extra_etc]) ? File.read(@@cfg_pandoc[:extra_etc]) : File.join(self.cfg_dir[:root],"pandoc-extra")).strip @@cfg_pandoc[:config_rb]=File.join(self.cfg_dir[:share],"pandoc","config.rb") @@cfg_pandoc[:extra]=(File.exist? @@cfg_pandoc[:config_rb]) ? Object.class_eval(File.read(@@cfg_pandoc[:config_rb])) : {} @@cfg_pandoc end |
.inc_task_cpt ⇒ Object
12 13 14 |
# File 'lib/dyntask/task_mngr.rb', line 12 def self.inc_task_cpt ((@@task_cpt += 1) == 9999 ? (@@task_cpt = 0) : @@task_cpt) end |
.read_tasks(task_filename) ⇒ Object
26 27 28 29 30 |
# File 'lib/dyntask/task_mngr.rb', line 26 def self.read_tasks(task_filename) @@task_mngr ||= DynTask::TaskMngr.new @@task_mngr.load_user_task_plugins @@task_mngr.read_tasks(task_filename) end |
.relative_path_from_sys_root(abs_path) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/dyntask/task_mngr.rb', line 67 def self.relative_path_from_sys_root(abs_path) begin #p abs_path #p self.cfg_dir[:sys_root] ap=Pathname.new(abs_path).realpath #p ap ap.relative_path_from(Pathname.new(self.cfg_dir[:sys_root])).to_s rescue nil end end |
.save_tasks(task_basename, task_dirname = nil) ⇒ Object
21 22 23 24 |
# File 'lib/dyntask/task_mngr.rb', line 21 def self.save_tasks(task_basename,task_dirname=nil) return unless @@task_mngr @@task_mngr.save_tasks(task_basename,task_dirname) end |
.sys_root_path(rel_path) ⇒ Object
63 64 65 |
# File 'lib/dyntask/task_mngr.rb', line 63 def self.sys_root_path(rel_path) File. File.join(self.cfg_dir[:sys_root],rel_path) end |
.update_sys_root(path) ⇒ Object
to be able to change sys_root path depending on local or remote mode
54 55 56 57 58 59 60 61 |
# File 'lib/dyntask/task_mngr.rb', line 54 def self.update_sys_root(path) @@cfg_dir[:sys_root]=path ## save sys_root_path to some config file (used in atom package) FileUtils.mkdir_p File.dirname(@@cfg_dir[:sys_root_path_cfg]) File.open(@@cfg_dir[:sys_root_path_cfg],"w") do |f| f << @@cfg_dir[:sys_root] end end |
.wait_for_file(filename, wait_loop_number = 20, wait_loop_time = 0.5, verbose = false) ⇒ Object
91 92 93 94 95 96 97 98 99 100 |
# File 'lib/dyntask/task_mngr.rb', line 91 def self.wait_for_file(filename,wait_loop_number = 20, wait_loop_time = 0.5,verbose=false) cpt=0 while !File.exists? filename and cpt < wait_loop_number p "wait: #{cpt}" sleep wait_loop_time cpt+=1 end ## return succeed File.exists? filename end |