quality_report 1.1.0 → 1.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a14f06872f83645bba1702173f3f9ee1942c54ae51ca3031db00158c63b51217
4
- data.tar.gz: 614f5743e39d968b4a431206f5f886a40a258a849e2a89543687ce00b2a8015f
3
+ metadata.gz: 1aafbd19100b614829f3aa4a2d7043b7b7028da09443bb536e37ee809809b6c0
4
+ data.tar.gz: cf7797690c19a1dc7c1f89737d828a4270bee1b9c36c3183ea642109998fdb45
5
5
  SHA512:
6
- metadata.gz: 5af1a4cfcef6c1831c40a5a6a111d684091ad282109015a9438ec9ab692349a7284b73a9e0b06d3ce51c29536f6167e4b3429386841a2fe622f9846ddd99c5a3
7
- data.tar.gz: a059cce459f23251d0d7c72cd0b29d4f3f3824fb2bf65a8e2d9fb0af78299a4dec89af4986071534ce690e0e7838aa00289c0171db94da8beddfbc1830197bbe
6
+ metadata.gz: e5b3663e60903633291665affbc5347c604fb60037adf8ac7661ddd82929009ad36335ad5e754d09f58b88f916df74d899ef7c75472fdbeb505ac3e2c06796a5
7
+ data.tar.gz: 9076995297047c26ede10b5c0c892a07eeb0b178e562da85aaf0a61a0a4e8bf173cfdecc62f86045d465d6c58a0d731923c871da28daa19604c2ea3c8e8038c8
@@ -21,10 +21,12 @@ RUBOCOP_WARNINGS = `rubocop --format json --force-default-config --only Metrics/
21
21
 
22
22
  LOCATIONS =
23
23
  JSON
24
- .parse(RUBOCOP_WARNINGS)['files']
25
- .reject{ |f| f['offenses'].empty? }
26
- .map{ |f| f['offenses']
27
- .map{|o| { path: f['path'], begin: o['location']['start_line'], end: o['location']['last_line'] }}}
24
+ .parse(RUBOCOP_WARNINGS)['files']
25
+ .reject { |f| f['offenses'].empty? }
26
+ .map do |f|
27
+ f['offenses']
28
+ .map { |o| { path: f['path'], begin: o['location']['start_line'], end: o['location']['last_line'] } }
29
+ end
28
30
  .flatten
29
31
 
30
32
  LOCATIONS.each do |location|
@@ -15,7 +15,7 @@
15
15
  # Bob
16
16
  # Alice
17
17
 
18
- RUBY_FILES = `find . -name '*.rb'`
18
+ RUBY_FILES = `find . -name '*.rb'`.freeze
19
19
 
20
20
  RUBY_FILES
21
- .each_line{ |filename| puts `line-authors #{filename}` }
21
+ .each_line { |filename| puts `line-authors #{filename}` }
@@ -31,7 +31,7 @@ def make_data_set(two_column_data)
31
31
  hash = {}
32
32
  two_column_data.each_line do |line|
33
33
  count, label = line.split(' ')
34
- hash[label] = count.to_i
34
+ hash[label] = count.to_i
35
35
  end
36
36
  hash
37
37
  end
@@ -62,9 +62,27 @@ def generate_data(combined_stats)
62
62
  end
63
63
 
64
64
  def should_skip?(stats)
65
+ less_than_200_lines_total?(stats) || no_commits_in_last_60_days?(stats)
66
+ end
67
+
68
+ def less_than_200_lines_total?(stats)
65
69
  stats[:whole_count] < 200
66
70
  end
67
71
 
72
+ def no_commits_in_last_60_days?(stats)
73
+ author = stats[:label]
74
+
75
+ # Get the last commit timestamp in Unix epoch format
76
+ last_commit = `git log -1 --format="%at" --author="#{author}"`.chomp
77
+ return true if last_commit.empty? # Handle case where author has no commits
78
+
79
+ # Convert Unix timestamp to Time object
80
+ last_commit_time = Time.at(last_commit.to_i)
81
+ sixty_days_ago = Time.now - (60 * 24 * 60 * 60) # 60 days in seconds
82
+
83
+ last_commit_time < sixty_days_ago
84
+ end
85
+
68
86
  def float_to_percent(a_float)
69
87
  (Float(a_float) * 100).round(1)
70
88
  end
@@ -72,8 +90,8 @@ end
72
90
  #
73
91
  # Execution begins here
74
92
  #
75
- PART_STATS = `ruby-author-warnings | frequency-list`
76
- WHOLE_STATS = `ruby-line-authors | frequency-list`
93
+ PART_STATS = `ruby-author-warnings | frequency-list`.freeze
94
+ WHOLE_STATS = `ruby-line-authors | frequency-list`.freeze
77
95
  COMBINED_STATS = create_combined_stats(PART_STATS, WHOLE_STATS)
78
96
 
79
97
  puts generate_table(COMBINED_STATS)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module QualityReport
4
- VERSION = '1.1.0'
4
+ VERSION = '1.2.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quality_report
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robb Shecter