jirametrics 2.2.1 → 2.4pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jirametrics/aggregate_config.rb +13 -25
  3. data/lib/jirametrics/aging_work_bar_chart.rb +57 -39
  4. data/lib/jirametrics/aging_work_in_progress_chart.rb +1 -1
  5. data/lib/jirametrics/aging_work_table.rb +9 -26
  6. data/lib/jirametrics/blocked_stalled_change.rb +24 -4
  7. data/lib/jirametrics/board_config.rb +2 -2
  8. data/lib/jirametrics/change_item.rb +13 -5
  9. data/lib/jirametrics/chart_base.rb +27 -39
  10. data/lib/jirametrics/columns_config.rb +4 -0
  11. data/lib/jirametrics/cycletime_histogram.rb +1 -1
  12. data/lib/jirametrics/cycletime_scatterplot.rb +1 -1
  13. data/lib/jirametrics/daily_wip_by_age_chart.rb +1 -1
  14. data/lib/jirametrics/daily_wip_by_blocked_stalled_chart.rb +3 -16
  15. data/lib/jirametrics/daily_wip_chart.rb +1 -13
  16. data/lib/jirametrics/data_quality_report.rb +4 -1
  17. data/lib/jirametrics/dependency_chart.rb +1 -1
  18. data/lib/jirametrics/{story_point_accuracy_chart.rb → estimate_accuracy_chart.rb} +31 -25
  19. data/lib/jirametrics/examples/standard_project.rb +1 -1
  20. data/lib/jirametrics/expedited_chart.rb +3 -1
  21. data/lib/jirametrics/exporter.rb +3 -3
  22. data/lib/jirametrics/file_config.rb +12 -8
  23. data/lib/jirametrics/file_system.rb +11 -2
  24. data/lib/jirametrics/groupable_issue_chart.rb +2 -4
  25. data/lib/jirametrics/hierarchy_table.rb +4 -4
  26. data/lib/jirametrics/html/aging_work_table.erb +3 -3
  27. data/lib/jirametrics/html/index.erb +1 -0
  28. data/lib/jirametrics/html_report_config.rb +61 -74
  29. data/lib/jirametrics/issue.rb +129 -57
  30. data/lib/jirametrics/project_config.rb +13 -7
  31. data/lib/jirametrics/sprint_burndown.rb +11 -0
  32. data/lib/jirametrics/status_collection.rb +4 -1
  33. data/lib/jirametrics/throughput_chart.rb +1 -1
  34. data/lib/jirametrics.rb +1 -1
  35. metadata +5 -7
  36. data/lib/jirametrics/experimental/generator.rb +0 -210
  37. data/lib/jirametrics/experimental/info.rb +0 -77
  38. /data/lib/jirametrics/html/{story_point_accuracy_chart.erb → estimate_accuracy_chart.erb} +0 -0
@@ -1,77 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'require_all'
4
- require_all 'lib'
5
-
6
- class InfoDumper
7
- def initialize
8
- @target_dir = 'target/'
9
- end
10
-
11
- def run key
12
- find_file_prefixes.each do |prefix|
13
- path = "#{@target_dir}#{prefix}_issues/#{key}.json"
14
- path = "#{@target_dir}#{prefix}_issues"
15
- Dir.foreach path do |file|
16
- if file.match?(/^#{key}.+\.json$/)
17
- issue = Issue.new raw: JSON.parse(File.read(File.join(path, file))), board: nil
18
- dump issue
19
- end
20
- end
21
- end
22
- end
23
-
24
- def find_file_prefixes
25
- prefixes = []
26
- Dir.foreach @target_dir do |file|
27
- prefixes << $1 if file =~ /^(.+)_issues$/
28
- end
29
- prefixes
30
- end
31
-
32
- def dump issue
33
- puts "#{issue.key} (#{issue.type}): #{compact_text issue.summary, 200}"
34
-
35
- assignee = issue.raw['fields']['assignee']
36
- puts " [assignee] #{assignee['name'].inspect} <#{assignee['emailAddress']}>" unless assignee.nil?
37
-
38
- issue.raw['fields']['issuelinks'].each do |link|
39
- puts " [link] #{link['type']['outward']} #{link['outwardIssue']['key']}" if link['outwardIssue']
40
- puts " [link] #{link['type']['inward']} #{link['inwardIssue']['key']}" if link['inwardIssue']
41
- end
42
- issue.changes.each do |change|
43
- value = change.value
44
- old_value = change.old_value
45
-
46
- # Description fields get pretty verbose so reduce the clutter
47
- if change.field == 'description' || change.field == 'summary'
48
- value = compact_text value
49
- old_value = compact_text old_value
50
- end
51
-
52
- author = change.author
53
- author = "(#{author})" if author
54
- message = " [change] #{change.time} [#{change.field}] "
55
- message << "#{compact_text(old_value).inspect} -> " unless old_value.nil? || old_value.empty?
56
- message << compact_text(value).inspect
57
- message << " #{author}" if author
58
- message << ' <<artificial entry>>' if change.artificial?
59
- puts message
60
- end
61
- puts ''
62
- end
63
-
64
- def compact_text text, max = 60
65
- return nil if text.nil?
66
-
67
- text = text.gsub(/\s+/, ' ').strip
68
- text = "#{text[0..max]}..." if text.length > max
69
- text
70
- end
71
- end
72
-
73
- if __FILE__ == $PROGRAM_NAME
74
- ARGV.each do |key|
75
- InfoDumper.new.run key
76
- end
77
- end