jirametrics 2.2.1 → 2.4pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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