loco 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +116 -0
- data/bin/loco +43 -0
- data/lib/loco.rb +3 -0
- data/lib/loco/counter.rb +90 -0
- data/lib/loco/stats.rb +38 -0
- data/lib/loco/util.rb +7 -0
- data/lib/loco/version.rb +1 -1
- metadata +9 -5
- data/README.txt +0 -68
- data/lib/tasks/loco.rake +0 -143
data/README.md
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
# Loco
|
2
|
+
|
3
|
+
Loco counts all of the lines in all of the files in the current directory and recursively in
|
4
|
+
subdirectories. Then it tells you how many lines in how many files. Now you have a pretty
|
5
|
+
distribution graph of file sizes in your project. Loco will also show a breakdown of file
|
6
|
+
and line counts by file extension. Loco does not count blank lines, but it does count comment
|
7
|
+
files because loco is not going to try to guess all the comment formats for all of the
|
8
|
+
languages you use.
|
9
|
+
|
10
|
+
## Installation
|
11
|
+
|
12
|
+
$ gem install loco
|
13
|
+
|
14
|
+
## Usage
|
15
|
+
|
16
|
+
$ loco
|
17
|
+
|
18
|
+
will produce something like this:
|
19
|
+
|
20
|
+
### extensions ###
|
21
|
+
.rb - 791 files, 25907 lines
|
22
|
+
.haml - 391 files, 6938 lines
|
23
|
+
.yml - 173 files, 7512 lines
|
24
|
+
.rake - 8 files, 383 lines
|
25
|
+
.html - 4 files, 179 lines
|
26
|
+
.js - 14 files, 840 lines
|
27
|
+
|
28
|
+
### longest files ###
|
29
|
+
145 public/javascripts/validations.js
|
30
|
+
145 spec/models/invoice_spec.rb
|
31
|
+
144 app/models/widget/stage.rb
|
32
|
+
144 app/models/invoice.rb
|
33
|
+
144 app/models/widget/address_extractor.rb
|
34
|
+
143 spec/models/invoice_presenter_spec.rb
|
35
|
+
143 app/helpers/html_helper.rb
|
36
|
+
141 config/routes.rb
|
37
|
+
141 app/controllers/people/people_controller.rb
|
38
|
+
138 spec/models/person_spec.rb
|
39
|
+
138 spec/models/xaction_spec.rb
|
40
|
+
137 app/controllers/welcome_controller.rb
|
41
|
+
135 app/views/invoices/show.html.haml
|
42
|
+
132 spec/support/factory.rb
|
43
|
+
131 app/models/person.rb
|
44
|
+
129 public/javascripts/application.js
|
45
|
+
|
46
|
+
### distribution ###
|
47
|
+
0 lines 10 **********
|
48
|
+
1 lines 13 *************
|
49
|
+
5 lines 29 *****************************
|
50
|
+
6 lines 44 ********************************************
|
51
|
+
10 lines 55 **********************************************************
|
52
|
+
11 lines 33 *********************************
|
53
|
+
15 lines 27 ***************************
|
54
|
+
16 lines 27 ***************************
|
55
|
+
20 lines 35 *************************
|
56
|
+
21 lines 29 ********************
|
57
|
+
25 lines 16 ****************
|
58
|
+
26 lines 15 ***************
|
59
|
+
30 lines 15 ***************
|
60
|
+
31 lines 16 ****************
|
61
|
+
35 lines 12 ************
|
62
|
+
36 lines 13 *************
|
63
|
+
40 lines 9 *********
|
64
|
+
41 lines 11 ***********
|
65
|
+
45 lines 9 *********
|
66
|
+
46 lines 11 ***********
|
67
|
+
50 lines 5 *****
|
68
|
+
51 lines 8 ********
|
69
|
+
52 lines 2 **
|
70
|
+
53 lines 8 ********
|
71
|
+
54 lines 9 *********
|
72
|
+
55 lines 4 ****
|
73
|
+
56 lines 5 *****
|
74
|
+
69 lines 3 ***
|
75
|
+
71 lines 1 *
|
76
|
+
80 lines 2 **
|
77
|
+
95 lines 1 *
|
78
|
+
128 lines 1 *
|
79
|
+
|
80
|
+
|
81
|
+
You can also run any of :
|
82
|
+
|
83
|
+
$ loco js
|
84
|
+
# => shows stats for .js files in your project
|
85
|
+
|
86
|
+
$ loco rb
|
87
|
+
# => shows stats for .rb files in your project
|
88
|
+
|
89
|
+
$ loco haml
|
90
|
+
# => shows stats for .haml files in your project
|
91
|
+
|
92
|
+
$ loco views
|
93
|
+
# => shows stats for files in your project under app/views/
|
94
|
+
|
95
|
+
$ loco spec
|
96
|
+
# => shows stats for files in your project under spec/
|
97
|
+
|
98
|
+
$ loco empty
|
99
|
+
# => shows stats for empty files in your project (same as loco size 0)
|
100
|
+
|
101
|
+
$ loco size 8
|
102
|
+
# => shows stats for project files that are 8 lines long
|
103
|
+
|
104
|
+
|
105
|
+
## Contributing
|
106
|
+
|
107
|
+
1. Fork it
|
108
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
109
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
110
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
111
|
+
5. Create new Pull Request
|
112
|
+
|
113
|
+
|
114
|
+
## License
|
115
|
+
|
116
|
+
Loco is released under the MIT license.
|
data/bin/loco
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- mode: ruby -*-
|
3
|
+
|
4
|
+
lib_path = File.join(File.dirname(File.dirname(__FILE__)), "lib")
|
5
|
+
$LOAD_PATH.unshift(lib_path)
|
6
|
+
|
7
|
+
require "loco"
|
8
|
+
|
9
|
+
settings = "./.loco"
|
10
|
+
load settings if File.exist?(settings)
|
11
|
+
|
12
|
+
patterns = {
|
13
|
+
:all => { :pattern => /.*/ },
|
14
|
+
:js => { :pattern => /.*\.js$/ },
|
15
|
+
:rb => { :pattern => /.*\.rb$/ },
|
16
|
+
:haml => { :pattern => /.*\.haml$/ },
|
17
|
+
:views => { :pattern => /^app\/views\// },
|
18
|
+
:app => { :pattern => /^app\// },
|
19
|
+
:models => { :pattern => /^app\/models\// },
|
20
|
+
:migrations=> { :pattern => /^db\/migrate\// },
|
21
|
+
:spec => { :pattern => /^spec\// },
|
22
|
+
:empty => { :pattern => /.*/, :size => 0 },
|
23
|
+
:size => { :pattern => /.*/, :size => ARGV[1].to_i }
|
24
|
+
}
|
25
|
+
|
26
|
+
help = {
|
27
|
+
:all => "show loc for all files",
|
28
|
+
:js => "show loc for all .js files",
|
29
|
+
:rb => "show loc for all .rb files",
|
30
|
+
:haml => "show loc for all .haml files",
|
31
|
+
:views => "show loc for all app/views files",
|
32
|
+
:app => "show loc for all app/** files",
|
33
|
+
:models => "show loc for all app/models/** files",
|
34
|
+
:migrations => "show loc for all db/migrate/** files",
|
35
|
+
:spec => "show loc for all spec/** files",
|
36
|
+
:empty => "show details for empty files",
|
37
|
+
:size => "show details for files of length specified by ENV['SIZE']",
|
38
|
+
:help => "show this help"
|
39
|
+
}
|
40
|
+
|
41
|
+
command = (ARGV[0] || "all").to_sym
|
42
|
+
Loco::Counter.new.analyse_loc patterns[command]
|
43
|
+
|
data/lib/loco.rb
CHANGED
data/lib/loco/counter.rb
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
module Loco
|
2
|
+
class Counter
|
3
|
+
include Loco::Util
|
4
|
+
|
5
|
+
EXCLUDE = [
|
6
|
+
/\.sqlite3/,
|
7
|
+
/\.gem/,
|
8
|
+
/^db\/schema.rb/,
|
9
|
+
/^db\/backups/,
|
10
|
+
/^db\/migrate/,
|
11
|
+
/^vendor/,
|
12
|
+
/^public\/system/,
|
13
|
+
/^public\/images/,
|
14
|
+
/^public\/stylesheets/,
|
15
|
+
/^config\/newrelic.yml/,
|
16
|
+
/^tmp/,
|
17
|
+
/^coverage/,
|
18
|
+
/^log/,
|
19
|
+
/^doc/,
|
20
|
+
/^script/,
|
21
|
+
/^stories/,
|
22
|
+
/^static/,
|
23
|
+
/^public\/fonts/,
|
24
|
+
/\.#.+/,
|
25
|
+
/\.png/,
|
26
|
+
/\.pdf/,
|
27
|
+
/\.ico/,
|
28
|
+
/lib\/tasks\/.+\.txt/,
|
29
|
+
/^README/,
|
30
|
+
/^Gemfile.lock/,
|
31
|
+
/^public\/javascripts\/jquery/
|
32
|
+
]
|
33
|
+
|
34
|
+
def exclude? path
|
35
|
+
EXCLUDE.each { |regex|
|
36
|
+
if path =~ regex
|
37
|
+
return true
|
38
|
+
end
|
39
|
+
}
|
40
|
+
false
|
41
|
+
end
|
42
|
+
|
43
|
+
def analyse_loc opts={ }
|
44
|
+
regexp = opts[:pattern]
|
45
|
+
@stats = []
|
46
|
+
@exts = Hash.new { |h, k| h[k] = 0 }
|
47
|
+
@ext_lines = Hash.new { |h, k| h[k] = 0 }
|
48
|
+
@sizes = Hash.new { |h, k| h[k] = [] }
|
49
|
+
total_lines = 0
|
50
|
+
|
51
|
+
here = File.expand_path "."
|
52
|
+
Dir.glob("#{here}/**/*").each do |full_path|
|
53
|
+
unless File.stat(full_path).directory?
|
54
|
+
path = full_path.sub("#{here}/", '')
|
55
|
+
unless exclude?(path) || !regexp.match(path)
|
56
|
+
s = Stats.new(path)
|
57
|
+
if s.matches(opts)
|
58
|
+
@stats << s
|
59
|
+
@exts[File.extname(path)] += 1
|
60
|
+
@ext_lines[File.extname(path)] += s.lines
|
61
|
+
@sizes[s.lines] << path
|
62
|
+
total_lines += s.lines
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
puts "\n### extensions ###"
|
69
|
+
@exts.each { |ext, count| puts "#{align ext} - #{align count} files, #{align @ext_lines[ext]} lines"}
|
70
|
+
|
71
|
+
puts "\n### distribution ###"
|
72
|
+
@sizes = @sizes.to_a.sort { |a, b|
|
73
|
+
a[0] <=> b[0]
|
74
|
+
}
|
75
|
+
|
76
|
+
@sizes.each { |size, files|
|
77
|
+
puts "#{align size} lines #{align files.size} #{"*" * files.size}"
|
78
|
+
}
|
79
|
+
|
80
|
+
total = @stats.size
|
81
|
+
@stats = @stats.sort { |a, b| b.lines <=> a.lines }
|
82
|
+
@stats = @stats[0..50] if @stats.size > 50
|
83
|
+
|
84
|
+
puts "\n### longest files ###"
|
85
|
+
@stats.each { |s| puts s }
|
86
|
+
|
87
|
+
puts "\n### Total #{regexp.inspect} : #{total} files, #{total_lines} lines, #{"%.3f" % (1.0 * total_lines / total)} avg loc per file ###"
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
data/lib/loco/stats.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
module Loco
|
4
|
+
class Stats
|
5
|
+
include Loco::Util
|
6
|
+
|
7
|
+
attr_accessor :path, :lines
|
8
|
+
|
9
|
+
def initialize(path)
|
10
|
+
@path = path
|
11
|
+
@lines = count_lines(path)
|
12
|
+
end
|
13
|
+
|
14
|
+
def blank? str
|
15
|
+
str.nil? || str.strip == ""
|
16
|
+
end
|
17
|
+
|
18
|
+
def count_lines path
|
19
|
+
File.read(path).split(/\n/).inject(0) {|sum, line| sum + (blank?(line) ? 0 : 1) }
|
20
|
+
rescue Exception => e
|
21
|
+
puts "ERROR: reading #{path}: #{e.message}"
|
22
|
+
puts ""
|
23
|
+
puts "consider adding this line to your .loco:"
|
24
|
+
puts ""
|
25
|
+
puts "Loco::Counter::EXCLUDE << /^#{path.gsub /\//, "\\/"}/"
|
26
|
+
puts ""
|
27
|
+
0
|
28
|
+
end
|
29
|
+
|
30
|
+
def to_s
|
31
|
+
"#{align lines} #{path}"
|
32
|
+
end
|
33
|
+
|
34
|
+
def matches options
|
35
|
+
options[:size].nil? || (options[:size] == lines)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/loco/util.rb
ADDED
data/lib/loco/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: loco
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-07-12 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: ! 'Count lines of code in project files, excluding a bunch of common
|
15
15
|
defaults, and show (a) for each N, how many files have N lines of code; (b) how
|
@@ -17,18 +17,22 @@ description: ! 'Count lines of code in project files, excluding a bunch of commo
|
|
17
17
|
and their length '
|
18
18
|
email:
|
19
19
|
- conan@conandalton.net
|
20
|
-
executables:
|
20
|
+
executables:
|
21
|
+
- loco
|
21
22
|
extensions: []
|
22
23
|
extra_rdoc_files: []
|
23
24
|
files:
|
24
25
|
- .gitignore
|
25
26
|
- Gemfile
|
26
|
-
- README.
|
27
|
+
- README.md
|
27
28
|
- Rakefile
|
29
|
+
- bin/loco
|
28
30
|
- lib/loco.rb
|
31
|
+
- lib/loco/counter.rb
|
29
32
|
- lib/loco/railtie.rb
|
33
|
+
- lib/loco/stats.rb
|
34
|
+
- lib/loco/util.rb
|
30
35
|
- lib/loco/version.rb
|
31
|
-
- lib/tasks/loco.rake
|
32
36
|
- loco.gemspec
|
33
37
|
homepage: https://github.com/conanite/loco
|
34
38
|
licenses: []
|
data/README.txt
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
|
2
|
-
rake loco
|
3
|
-
|
4
|
-
will produce something like this:
|
5
|
-
|
6
|
-
### longest files ###
|
7
|
-
145 public/javascripts/validations.js
|
8
|
-
145 spec/models/invoice_spec.rb
|
9
|
-
144 app/models/widget/stage.rb
|
10
|
-
144 app/models/invoice.rb
|
11
|
-
144 app/models/widget/address_extractor.rb
|
12
|
-
143 spec/models/invoice_presenter_spec.rb
|
13
|
-
143 app/helpers/html_helper.rb
|
14
|
-
141 config/routes.rb
|
15
|
-
141 app/controllers/people/people_controller.rb
|
16
|
-
138 spec/models/person_spec.rb
|
17
|
-
138 spec/models/xaction_spec.rb
|
18
|
-
137 app/controllers/welcome_controller.rb
|
19
|
-
135 app/views/invoices/show.html.haml
|
20
|
-
132 spec/support/factory.rb
|
21
|
-
131 app/models/person.rb
|
22
|
-
129 public/javascripts/application.js
|
23
|
-
|
24
|
-
### distribution ###
|
25
|
-
0 lines 10 **********
|
26
|
-
1 lines 13 *************
|
27
|
-
5 lines 29 *****************************
|
28
|
-
6 lines 44 ********************************************
|
29
|
-
10 lines 55 **********************************************************
|
30
|
-
11 lines 33 *********************************
|
31
|
-
15 lines 27 ***************************
|
32
|
-
16 lines 27 ***************************
|
33
|
-
20 lines 35 *************************
|
34
|
-
21 lines 29 ********************
|
35
|
-
25 lines 16 ****************
|
36
|
-
26 lines 15 ***************
|
37
|
-
30 lines 15 ***************
|
38
|
-
31 lines 16 ****************
|
39
|
-
35 lines 12 ************
|
40
|
-
36 lines 13 *************
|
41
|
-
40 lines 9 *********
|
42
|
-
41 lines 11 ***********
|
43
|
-
45 lines 9 *********
|
44
|
-
46 lines 11 ***********
|
45
|
-
50 lines 5 *****
|
46
|
-
51 lines 8 ********
|
47
|
-
52 lines 2 **
|
48
|
-
53 lines 8 ********
|
49
|
-
54 lines 9 *********
|
50
|
-
55 lines 4 ****
|
51
|
-
56 lines 5 *****
|
52
|
-
69 lines 3 ***
|
53
|
-
71 lines 1 *
|
54
|
-
80 lines 2 **
|
55
|
-
95 lines 1 *
|
56
|
-
128 lines 1 *
|
57
|
-
|
58
|
-
### extensions ###
|
59
|
-
.rb - 791 files, 25907 lines
|
60
|
-
.haml - 391 files, 6938 lines
|
61
|
-
.yml - 173 files, 7512 lines
|
62
|
-
.rake - 8 files, 383 lines
|
63
|
-
.html - 4 files, 179 lines
|
64
|
-
.js - 14 files, 840 lines
|
65
|
-
|
66
|
-
== License
|
67
|
-
|
68
|
-
Loco is released under the MIT license.
|
data/lib/tasks/loco.rake
DELETED
@@ -1,143 +0,0 @@
|
|
1
|
-
namespace :loco do
|
2
|
-
@exclude = [
|
3
|
-
/^db\/schema.rb/,
|
4
|
-
/^db\/backups/,
|
5
|
-
/^db\/migrate/,
|
6
|
-
/^vendor/,
|
7
|
-
/^public\/system/,
|
8
|
-
/^public\/images/,
|
9
|
-
/^public\/stylesheets/,
|
10
|
-
/^config\/newrelic.yml/,
|
11
|
-
/^tmp/,
|
12
|
-
/^coverage/,
|
13
|
-
/^log/,
|
14
|
-
/^doc/,
|
15
|
-
/^script/,
|
16
|
-
/^stories/,
|
17
|
-
/^static/,
|
18
|
-
/^public\/fonts/,
|
19
|
-
/\.#.+/,
|
20
|
-
/\.png/,
|
21
|
-
/\.pdf/,
|
22
|
-
/\.ico/,
|
23
|
-
/lib\/tasks\/.+\.txt/,
|
24
|
-
/^README/,
|
25
|
-
/^Gemfile.lock/,
|
26
|
-
/^public\/javascripts\/jquery/
|
27
|
-
]
|
28
|
-
|
29
|
-
def exclude? path
|
30
|
-
@exclude.each { |regex|
|
31
|
-
if path =~ regex
|
32
|
-
return true
|
33
|
-
end
|
34
|
-
}
|
35
|
-
false
|
36
|
-
end
|
37
|
-
|
38
|
-
def align x
|
39
|
-
x.to_s.rjust(8, " ")
|
40
|
-
end
|
41
|
-
|
42
|
-
class Stats
|
43
|
-
attr_accessor :path, :lines
|
44
|
-
def initialize(path)
|
45
|
-
@path = path
|
46
|
-
@lines = count_lines(path)
|
47
|
-
end
|
48
|
-
|
49
|
-
def count_lines path
|
50
|
-
File.read(path).split(/\n/).inject(0) {|sum, line| sum + (line.blank? ? 0 : 1) }
|
51
|
-
end
|
52
|
-
|
53
|
-
def to_s
|
54
|
-
"#{align lines} #{path}"
|
55
|
-
end
|
56
|
-
|
57
|
-
def matches options
|
58
|
-
options[:size].blank? || (options[:size] == lines)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def analyse_loc regexp, opts={ }
|
63
|
-
@stats = []
|
64
|
-
@exts = Hash.new { |h, k| h[k] = 0 }
|
65
|
-
@ext_lines = Hash.new { |h, k| h[k] = 0 }
|
66
|
-
@sizes = Hash.new { |h, k| h[k] = [] }
|
67
|
-
total_lines = 0
|
68
|
-
|
69
|
-
Dir.glob("#{Rails.root}/**/*").each do |full_path|
|
70
|
-
unless File.stat(full_path).directory?
|
71
|
-
path = full_path.sub(Rails.root.to_s + "/", '')
|
72
|
-
unless exclude?(path) || !regexp.match(path)
|
73
|
-
s = Stats.new(path)
|
74
|
-
if s.matches(opts)
|
75
|
-
@stats << s
|
76
|
-
@exts[File.extname(path)] += 1
|
77
|
-
@ext_lines[File.extname(path)] += s.lines
|
78
|
-
@sizes[s.lines] << path
|
79
|
-
total_lines += s.lines
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
puts "\n### extensions ###"
|
86
|
-
@exts.each { |ext, count| puts "#{align ext} - #{align count} files, #{align @ext_lines[ext]} lines"}
|
87
|
-
|
88
|
-
puts "\n### distribution ###"
|
89
|
-
@sizes = @sizes.to_a.sort { |a, b|
|
90
|
-
a[0] <=> b[0]
|
91
|
-
}
|
92
|
-
|
93
|
-
@sizes.each { |size, files|
|
94
|
-
puts "#{align size} lines #{align files.size} #{"*" * files.size}"
|
95
|
-
}
|
96
|
-
|
97
|
-
total = @stats.size
|
98
|
-
@stats = @stats.sort { |a, b| b.lines <=> a.lines }
|
99
|
-
@stats = @stats[0..50] if @stats.size > 50
|
100
|
-
|
101
|
-
puts "\n### longest files ###"
|
102
|
-
@stats.each { |s| puts s }
|
103
|
-
|
104
|
-
puts "\n### Total #{regexp.inspect} : #{total} files, #{total_lines} lines, #{"%.3f" % (1.0 * total_lines / total)} avg loc per file ###"
|
105
|
-
end
|
106
|
-
|
107
|
-
desc "show loc for all files"
|
108
|
-
task(:all) { analyse_loc /.*/ }
|
109
|
-
|
110
|
-
desc "show loc for all .js files"
|
111
|
-
task(:js) { analyse_loc /.*\.js$/ }
|
112
|
-
|
113
|
-
desc "show loc for all .rb files"
|
114
|
-
task(:rb) { analyse_loc /.*\.rb$/ }
|
115
|
-
|
116
|
-
desc "show loc for all .haml files"
|
117
|
-
task(:haml) { analyse_loc /.*\.haml$/ }
|
118
|
-
|
119
|
-
desc "show loc for all app/views files"
|
120
|
-
task(:views) { analyse_loc /^app\/views\// }
|
121
|
-
|
122
|
-
desc "show loc for all app/** files"
|
123
|
-
task(:app) { analyse_loc /^app\// }
|
124
|
-
|
125
|
-
desc "show loc for all app/models/** files"
|
126
|
-
task(:models) { analyse_loc /^app\/models\// }
|
127
|
-
|
128
|
-
desc "show loc for all db/migrate/** files"
|
129
|
-
task(:migrations) { analyse_loc /^db\/migrate\// }
|
130
|
-
|
131
|
-
desc "show loc for all spec/** files"
|
132
|
-
task(:spec) { analyse_loc /^spec\// }
|
133
|
-
|
134
|
-
desc "show details for empty files"
|
135
|
-
task(:empty) { analyse_loc /.*/, :size => 0 }
|
136
|
-
|
137
|
-
desc "show details for files of length specified by ENV['SIZE']"
|
138
|
-
task(:size) { analyse_loc /.*/, :size => ENV['SIZE'].to_i }
|
139
|
-
end
|
140
|
-
|
141
|
-
task :loco => "loco:all"
|
142
|
-
|
143
|
-
|