gloc 0.1.0 → 0.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/exe/gloc +20 -5
  3. data/lib/gloc/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 87c33f0da30dfec964eaa95ef212e241042a93d0
4
- data.tar.gz: 51f29da55b65dd8f57b93312cf4f8e21e0256a8c
3
+ metadata.gz: c84cd3269290d4f6060a13a68ef4dcec9026f3fb
4
+ data.tar.gz: d43d54e3fc77fb43c86221c3489e5ad0c579d8e2
5
5
  SHA512:
6
- metadata.gz: b79ab7fa373e134c456b8e38f5ea1dc4e1c5058d3d86f5b8e7d2a7f029b4f628e8fd9677514142937cbfd4deb5661005529ea2238eb30a34cfe17e2063354b6a
7
- data.tar.gz: b510b6a1f0f79a126fd3e79c6626ba2eedc4507710eefae4d7cdeb7c45bfd8990512a2aa2566eb50d2ce46941f0c0d71c86a8b4efeb6f56343434ae0089bbf62
6
+ metadata.gz: 7069c3b6398ffcf1646cc450777e75eb21dbb9a8e90e12a0629cc64daefecc47fe669d2f654050fd2503e2f6e0e886ee0fdb185bd0681326eec1b3f6ec8eef4e
7
+ data.tar.gz: ad03367f2daac51f628efd9a7b78407880d0556487c9e05e8499b08700399df983febf75cdb3aa5aa24196a21a424fe08a656872183caa9793cf85da07159847
data/exe/gloc CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'ostruct'
4
4
 
5
- source_files = if STDIN.tty?
5
+ source_files = if STDIN.tty? || $tty
6
6
  `git rev-parse --show-toplevel &> /dev/null`
7
7
  if $?.success?
8
8
  # we're inside a git repo so
@@ -54,7 +54,7 @@ COMMENTS = {
54
54
  '*.js' => %r{\A\s*(//.*|/\*.*\*/)\s*\Z},
55
55
  }.freeze
56
56
 
57
- source_stats = Hash[source_files.each_with_object({}) { |file, stats|
57
+ source_stats = source_files.each_with_object({}) { |file, stats|
58
58
  file_ext = '*' + File.extname(file) # e.g. '*.rb' or '*' if no ext!
59
59
  stats_for_ext = begin
60
60
  stats[file_ext] ||= OpenStruct.new({
@@ -69,7 +69,7 @@ source_stats = Hash[source_files.each_with_object({}) { |file, stats|
69
69
  stats_for_ext.line_count += source_lines.count
70
70
  stats_for_ext.blank_count += source_lines.grep(BLANKS).count
71
71
  stats_for_ext.comment_count += source_lines.grep(COMMENTS[file_ext]).count
72
- }.sort_by { |_, stats| stats.line_count }.reverse]
72
+ }
73
73
 
74
74
  source_stats.values.each do |stats_for_ext|
75
75
  stats_for_ext.code_count = stats_for_ext.line_count - (
@@ -77,6 +77,21 @@ source_stats.values.each do |stats_for_ext|
77
77
  )
78
78
  end
79
79
 
80
+ sort_metric = case
81
+ when $files then :file_count
82
+ when $lines then :line_count
83
+ when $blank then :blank_count
84
+ when $comment then :comment_count
85
+ when $code then :code_count
86
+ else :code_count
87
+ end
88
+
89
+ source_stats = Hash[
90
+ source_stats.sort_by { |_, stats|
91
+ stats.send(sort_metric)
92
+ }.reverse
93
+ ]
94
+
80
95
  source_stats["TOTAL"] = OpenStruct.new({
81
96
  file_count: source_stats.values.map(&:file_count).reduce(:+),
82
97
  line_count: source_stats.values.map(&:line_count).reduce(:+),
@@ -89,7 +104,7 @@ source_stats["TOTAL"] = OpenStruct.new({
89
104
  # JSON formatting for non-TTY output
90
105
  #
91
106
 
92
- unless STDOUT.tty?
107
+ unless STDOUT.tty? || $tty
93
108
  require 'json'
94
109
 
95
110
  class OpenStruct
@@ -136,7 +151,7 @@ end
136
151
 
137
152
  totals = source_stats.delete("TOTAL").to_h.values
138
153
 
139
- TEMPLATE = " %-13s %12s %12s %12s %12s %12s ".freeze
154
+ TEMPLATE = " %-13s %12s %12s %12s %12s %12s".freeze
140
155
  DIVIDER = ('-' * 80).freeze # `loc` uses 80 columns
141
156
 
142
157
  puts format("%s\n#{TEMPLATE}\n%s",
@@ -1,3 +1,3 @@
1
1
  module GLOC
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gloc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Vandenberk
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-12-29 00:00:00.000000000 Z
11
+ date: 2016-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler