module Prioritizer
Constants
- DEFAULT
- HEADERS
- READOPT
- WRITOPT
Public Instance Methods
call()
click to toggle source
# File lib/assets/promo/lib/prioritizer.rb, line 14 def call load if File.exist?(output) repo = from_repo file = from_file inside_bin { write(merge(repo, file)) } end
Protected Instance Methods
backup()
click to toggle source
# File lib/assets/promo/lib/prioritizer.rb, line 61 def backup return unless File.exist?(output) bckp = File.basename(output, '.csv') bckp << ' ' bckp << File.mtime(output).strftime('%Y-%b-%d %H-%M') bckp << '.csv' File.rename(output, bckp) puts "'#{Creq::Settings.bin}/#{output}' backup as '#{Creq::Settings.bin}/#{bckp}'." end
from_file()
click to toggle source
# File lib/assets/promo/lib/prioritizer.rb, line 44 def from_file return {} unless File.exist?(output) {}.tap {|res| CSV.foreach(output, READOPT) { |row| row.to_h.tap {|h| res[h.shift[1]] = h} } } end
from_repo()
click to toggle source
# File lib/assets/promo/lib/prioritizer.rb, line 35 def from_repo repo = requirements_repository repo = repo.query(query) unless query.empty? repo .inject([], :<<) .tap{|a| a.delete_at(0) unless repo.is_a? Array} .map{|r| {id: r.id, title: r.title}.merge(DEFAULT)} end
merge(repo, file)
click to toggle source
# File lib/assets/promo/lib/prioritizer.rb, line 23 def merge(repo, file) # TODO user add columns to output? repo.each {|i| next unless file[i[:id]] i[:status] = file[i[:id]][:status] i[:risk] = file[i[:id]][:risk] i[:effort] = file[i[:id]][:effort] i[:priority] = file[i[:id]][:priority] } repo end
write(source)
click to toggle source
# File lib/assets/promo/lib/prioritizer.rb, line 53 def write(source) backup CSV.open(output, "wb", WRITOPT){|csv| source.each{|i| csv << i.values} } puts "'#{Creq::Settings.bin}/#{output}' created." end