churn 0.0.26 → 0.0.27
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.
- data/Gemfile.lock +1 -1
- data/README.md +44 -42
- data/bin/churn +7 -1
- data/lib/churn/churn_calculator.rb +1 -0
- data/lib/churn/version.rb +1 -1
- metadata +3 -3
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -8,7 +8,7 @@ Currently has full Git, Mercurial (hg), and Bazaar (bzr) support, and partial SV
|
|
8
8
|
Authors:
|
9
9
|
|
10
10
|
* danmayer
|
11
|
-
* ajwalters
|
11
|
+
* ajwalters
|
12
12
|
* cldwalker
|
13
13
|
* absurdhero
|
14
14
|
|
@@ -18,50 +18,51 @@ __CI Build Status__
|
|
18
18
|
|
19
19
|
This project runs [travis-ci.org](http://travis-ci.org)
|
20
20
|
|
21
|
-
__Churn Usage__
|
21
|
+
__Churn Usage__
|
22
22
|
Install with `gem install churn` or for bundler add to your Gemfile `gem 'churn'`
|
23
23
|
|
24
24
|
* rake:
|
25
25
|
* add `require 'churn'` to Rakefile
|
26
26
|
* then run`rake churn` or `bundle exec rake churn`
|
27
|
-
* use environment variables to control churn defaults
|
28
|
-
|
29
|
-
ENV['CHURN_MINIMUM_CHURN_COUNT']
|
30
|
-
ENV['CHURN_START_DATE']
|
27
|
+
* use environment variables to control churn defaults
|
28
|
+
|
29
|
+
ENV['CHURN_MINIMUM_CHURN_COUNT']
|
30
|
+
ENV['CHURN_START_DATE']
|
31
31
|
ENV['CHURN_IGNORE_FILES']
|
32
|
-
|
33
|
-
* CLI:
|
32
|
+
|
33
|
+
* CLI:
|
34
34
|
* on command line run `churn` or `bundle exec churn`
|
35
35
|
* need help run `churn -h` to get additional information
|
36
36
|
* run the executable passing in options to override defaults
|
37
|
-
|
37
|
+
|
38
38
|
churn -i "churn.gemspec, Gemfile" #ignore files
|
39
39
|
churn -y #output yaml format opposed to text
|
40
40
|
churn -c 10 #set minimum churn count on a file to 10
|
41
41
|
churn -c 5 -y -i "Gemfile" #mix and match
|
42
|
-
|
43
|
-
|
44
|
-
|
42
|
+
churn --start_date "6 months ago" #Start looking at file changes from 6 months ago
|
43
|
+
|
44
|
+
|
45
|
+
__Example Output__
|
45
46
|
|
46
47
|
**********************************************************************
|
47
|
-
* Revision Changes
|
48
|
+
* Revision Changes
|
48
49
|
**********************************************************************
|
49
|
-
Files:
|
50
|
+
Files:
|
50
51
|
+-------------------------------+
|
51
52
|
| file |
|
52
53
|
+-------------------------------+
|
53
54
|
| Rakefile |
|
54
55
|
| lib/churn/churn_calculator.rb |
|
55
56
|
+-------------------------------+
|
56
|
-
|
57
|
-
Classes:
|
57
|
+
|
58
|
+
Classes:
|
58
59
|
+-------------------------------+-----------------+
|
59
60
|
| file | klass |
|
60
61
|
+-------------------------------+-----------------+
|
61
62
|
| lib/churn/churn_calculator.rb | ChurnCalculator |
|
62
63
|
+-------------------------------+-----------------+
|
63
|
-
|
64
|
-
Methods:
|
64
|
+
|
65
|
+
Methods:
|
65
66
|
+-------------------------------+----------------- +-------------------------------+
|
66
67
|
| file | klass | method |
|
67
68
|
+-------------------------------+-----------------+-------------------------------+
|
@@ -69,11 +70,11 @@ __Example Output__
|
|
69
70
|
| lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#display_array |
|
70
71
|
| lib/churn/churn_calculator.rb | ChurnCalculator | ChurnCalculator#to_s |
|
71
72
|
+-------------------------------+-----------------+-------------------------------+
|
72
|
-
|
73
|
+
|
73
74
|
**********************************************************************
|
74
|
-
* Project Churn
|
75
|
+
* Project Churn
|
75
76
|
**********************************************************************
|
76
|
-
Files:
|
77
|
+
Files:
|
77
78
|
+------------------------------------+---------------+
|
78
79
|
| file_path | times_changed |
|
79
80
|
+------------------------------------+---------------+
|
@@ -86,17 +87,17 @@ __Example Output__
|
|
86
87
|
| test/test_helper.rb | 4 |
|
87
88
|
| test/unit/churn_calculator_test.rb | 3 |
|
88
89
|
| test/churn_test.rb | 3 |
|
89
|
-
+------------------------------------+---------------+
|
90
|
-
|
91
|
-
Classes:
|
90
|
+
+------------------------------------+---------------+
|
91
|
+
|
92
|
+
Classes:
|
92
93
|
+-------------------------------+-----------------+---------------+
|
93
94
|
| file | klass | times_changed |
|
94
95
|
+-------------------------------+-----------------+---------------+
|
95
96
|
| lib/churn/churn_calculator.rb | ChurnCalculator | 1 |
|
96
97
|
| lib/churn/churn_calculator.rb | ChurnCalculator | 1 |
|
97
98
|
+-------------------------------+-----------------+---------------+
|
98
|
-
|
99
|
-
Methods:
|
99
|
+
|
100
|
+
Methods:
|
100
101
|
+-------------------------------+-----------------+-----------------------------------------+---------------+
|
101
102
|
| file | klass | method | times_changed |
|
102
103
|
+-------------------------------+-----------------+-----------------------------------------+---------------+
|
@@ -114,31 +115,32 @@ __Options__
|
|
114
115
|
[~/projects/churn] churn -h
|
115
116
|
NAME
|
116
117
|
churn
|
117
|
-
|
118
|
+
|
118
119
|
SYNOPSIS
|
119
120
|
churn [options]+
|
120
|
-
|
121
|
+
|
121
122
|
PARAMETERS
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
123
|
+
--minimum_churn_count=minimum_churn_count, -c (0 ~> int(minimum_churn_count=3))
|
124
|
+
--yaml, -y
|
125
|
+
--ignore_files=[ignore_files], -i (0 ~> string(ignore_files=))
|
126
|
+
--start_date=[start_date], -s (0 ~> string(start_date=))
|
127
|
+
--help, -h
|
127
128
|
|
128
|
-
__TODO:__
|
129
|
+
__TODO:__
|
129
130
|
|
130
|
-
* SVN only supports file, add full SVN support
|
131
|
-
* support
|
131
|
+
* SVN only supports file, add full SVN support (method and line numbers)
|
132
|
+
* add support for cvs, and darcs
|
132
133
|
* make storage directory configurable instead of using tmp
|
133
|
-
* allow passing in directories to churn
|
134
|
-
* add a filter that allows for other files besides. *.rb
|
135
|
-
*
|
134
|
+
* allow passing in directories to churn
|
135
|
+
* add a filter that allows for other files besides. *.rb to get method/class checks
|
136
|
+
* improve line number matching for Ruby files
|
137
|
+
* add line number matching for other langauges
|
136
138
|
* finish adding better documenation using YARD
|
137
|
-
* rake task for building manpage (currently manually run
|
139
|
+
* rake task for building manpage (currently manually run `ronn -b1 README.rdoc`)
|
138
140
|
* don't output methods and classes on a commit that has none detected (css and view only commits, etc)
|
139
141
|
|
140
142
|
__Notes on Patches/Pull Requests__
|
141
|
-
|
143
|
+
|
142
144
|
* Fork the project.
|
143
145
|
* Make your feature addition or bug fix.
|
144
146
|
* Add tests for it. This is important so I don't break it in a
|
@@ -150,4 +152,4 @@ __Notes on Patches/Pull Requests__
|
|
150
152
|
|
151
153
|
__Copyright__
|
152
154
|
|
153
|
-
Copyright (c)
|
155
|
+
Copyright (c) 2013 Dan Mayer. See LICENSE for details.
|
data/bin/churn
CHANGED
@@ -21,9 +21,15 @@ Main do
|
|
21
21
|
default ''
|
22
22
|
end
|
23
23
|
|
24
|
+
option('start_date', 's') do
|
25
|
+
cast :string
|
26
|
+
argument :optional
|
27
|
+
default ''
|
28
|
+
end
|
29
|
+
|
24
30
|
def report_churn(output_string)
|
25
31
|
require File.join(File.dirname(__FILE__), '..', 'lib', 'churn', 'churn_calculator')
|
26
|
-
result = Churn::ChurnCalculator.new({:minimum_churn_count => params['minimum_churn_count'].value, :ignore_files => params['ignore_files'].value}).report(output_string)
|
32
|
+
result = Churn::ChurnCalculator.new({:minimum_churn_count => params['minimum_churn_count'].value, :ignore_files => params['ignore_files'].value, :start_date => params['start_date'].value}).report(output_string)
|
27
33
|
unless output_string
|
28
34
|
result = YAML::dump(result)
|
29
35
|
end
|
@@ -23,6 +23,7 @@ module Churn
|
|
23
23
|
|
24
24
|
# intialized the churn calculator object
|
25
25
|
def initialize(options={})
|
26
|
+
options[:start_date]=nil if options[:start_date]==''
|
26
27
|
start_date = options.fetch(:start_date) { '3 months ago' }
|
27
28
|
@minimum_churn_count = options.fetch(:minimum_churn_count) { 5 }.to_i
|
28
29
|
@ignore_files = (options.fetch(:ignore_files){ "" }).to_s.split(',').map(&:strip)
|
data/lib/churn/version.rb
CHANGED
metadata
CHANGED