class BacklogApi::Command
Public Instance Methods
progress()
click to toggle source
# File lib/backlog_api/command.rb, line 60 def progress # data = [ # {:foo => '123', :bar => '456', :buz => '789'}, # {:foo => 'abc', :bar => 'def', :buz => 'ghi'}, # {:foo => 'alpha', :bar => 'beta', :buz => 'gamma'}, # ] issues = BacklogApi::Client.new.find_issue(projectId: PROJECT_ID) issues = group_issues_by_assigner(issues) data = issues.map do |name,issues| { "名前" => (name || '未割当'), "進捗" => progress_bar(issues), "完了件数" => completed_count_per_total_count(issues), "完了率" => progress_rate(issues), } end Formatador.display_table(data) end
server()
click to toggle source
# File lib/backlog_api/command.rb, line 52 def server puts "Start sinatra app..." root = File.expand_path(File.join(File.dirname(__FILE__), '..', '..')) exec "cd #{root} && rackup config.ru" end
Private Instance Methods
completed_count_per_total_count(issues)
click to toggle source
# File lib/backlog_api/command.rb, line 93 def completed_count_per_total_count(issues) total_count = issues.count completed_count = issues.count{|issue|issue["status"]["id"] == 4} "%d/%d" % [completed_count, total_count] end
group_issues_by_assigner(issues)
click to toggle source
# File lib/backlog_api/command.rb, line 83 def group_issues_by_assigner(issues) issues.group_by{|issue|issue["assigner"]["name"] if issue["assigner"]} end
progress_bar(issues)
click to toggle source
# File lib/backlog_api/command.rb, line 99 def progress_bar(issues) issues.inject('') do |ret, issue| ret << case issue["status"]["id"] when 1 "|".red when 2 "|".yellow when 3 "|".green when 4 "|".blue end end.tapp.tapp(&:size) end
progress_rate(issues)
click to toggle source
# File lib/backlog_api/command.rb, line 87 def progress_rate(issues) total_count = issues.count completed_count = issues.count{|issue|issue["status"]["id"] == 4} "%d%" % (completed_count.to_f / total_count * 100) end