Sha256: 66fff752b18e5fa588baf0e31ca815fb613bc14e33e0356cb91fdbdf8aea46da
Contents?: true
Size: 1.72 KB
Versions: 1
Compression:
Stored size: 1.72 KB
Contents
module Cxxproject module Utils class ProgressHelper attr_reader :todo attr_reader :needed_tasks def initialize @todo = 0.0 @needed_tasks = {} end def count_with_filter(name) tasks = find_tasks_for_toplevel_task(name) tasks.each do |t| count(t) end if @todo < 1 @todo = 1 end end def find_tasks_for_toplevel_task(name) regex = create_regex_for_name(name) return filter_all_tasks(regex) end def create_regex_for_name(name) res = Regexp.new(name) res = create_regex_for_filter(name, res) return res end def is_filter(name) return name.index('filter') end def create_regex_for_filter(name, res) return res unless is_filter(name) name = name.gsub('filter', '') if name.index('[') == nil name = name + '.*' else name = name.gsub('[', '') name = name.gsub(']', '') end return Regexp.new(name) end def filter_all_tasks(regex) return Rake::Task::tasks.find_all do |t| task_name = t.name res = ((task_name.index('filter') == nil) && regex.match(task_name)!=nil) end end def count(task) task.visit() do |t| count_needed_tasks(t) true end end def count_needed_tasks(t) c = t.progress_count if c && c > 0 if t.needed? && @needed_tasks[t.name] == nil @needed_tasks[t.name] = true @todo += c end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cxxproject-0.5.59 | lib/cxxproject/utils/progress_helper.rb |