git_stats 1.0.7 → 1.0.8

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -18,4 +18,9 @@ test/version_tmp
18
18
  tmp
19
19
 
20
20
  # rubymine
21
- .idea
21
+ .idea
22
+
23
+ # rvm or rbenv related files
24
+ .rvmrc
25
+ .ruby-version
26
+ .ruby-gemset
data/README.md CHANGED
@@ -20,8 +20,43 @@ It browses the repository and outputs html page with statistics.
20
20
 
21
21
  ### Generator
22
22
 
23
+ #### Print help
24
+
23
25
  $ git_stats
24
- <follow instructions on the screen>
26
+ Commands:
27
+ git_stats generate # Generates the statistics of a repository
28
+ git_stats help [COMMAND] # Describe available commands or one specific command
29
+
30
+ #### Print help of the generate command
31
+
32
+ $ git_stats help generate
33
+ Usage:
34
+ git_stats generate
35
+
36
+ Options:
37
+ p, [--path=PATH] # Path to repository from which statistics should be generated.
38
+ # Default: .
39
+ o, [--output=OUTPUT] # Output path where statistics should be written.
40
+ # Default: ./git_stats
41
+ l, [--language=LANGUAGE] # Language of written statistics.
42
+ # Default: en
43
+ f, [--from=FROM] # Commit from where statistics should start.
44
+ t, [--to=TO] # Commit where statistics should stop.
45
+ # Default: HEAD
46
+
47
+ #### Start generator with default settings
48
+
49
+ $ git_stats generate
50
+ git rev-list --pretty=format:'%h|%at|%ai|%aE' HEAD | grep -v commit
51
+ git shortlog -se HEAD
52
+ ...
53
+
54
+ #### Start generator with some parameters in long and short form.
55
+
56
+ $ git_stats generate -o stats --langugage de
57
+ git rev-list --pretty=format:'%h|%at|%ai|%aE' HEAD | grep -v commit
58
+ git shortlog -se HEAD
59
+ ...
25
60
 
26
61
  ### API usage example
27
62
 
@@ -7,5 +7,4 @@ $LOAD_PATH.unshift(lib) if File.directory?(lib) && !$LOAD_PATH.include?(lib)
7
7
  # start up the CLI
8
8
  require "git_stats/cli"
9
9
 
10
- cli = GitStats::CLI.new
11
- cli.start
10
+ GitStats::CLI.start(ARGV)
@@ -0,0 +1,60 @@
1
+ de:
2
+ project_name: Projektname
3
+ project_version: Generiert aus commit
4
+ generated_at: Generiert am
5
+ generator: Generiert durch
6
+ report_period: Berichtsperiode
7
+ total_files: Gesamtanzahl der Dateien
8
+ total_lines: Gesamtanzahl der Zeilen
9
+ total_commits: Gesamtanzahl der Commits
10
+ authors: Autoren
11
+ commits: Commits
12
+ commits_by_hour: Commits in der Stunde
13
+ files: Dateien
14
+ lines: Zeilen
15
+ files_by_date: Dateien nach Datum
16
+ lines_by_date: Zeilen nach Datum
17
+ files_by_extension: Dateien nach Erweiterungen
18
+ lines_by_extension: Zeilen nach Erweiterungen
19
+ hour_of_day: Tagesstunden
20
+ hour: Stunde
21
+ percentage: Prozent
22
+ day: Tag
23
+ day_of_week: Wochentagen
24
+ hour_of_week: Tagesstunden und Woche
25
+ month: Monat
26
+ month_of_year: Monaten im Jahr
27
+ year_month: Monaten und Jahr
28
+ commits_by_wday: Commits am Wochentag
29
+ commits_by_month: Commits im Monat
30
+ commits_by_year_month: Commits nach Jahr und Monat
31
+ commits_by_month_of_year: Commits pro Monat des Jahres
32
+ year: Jahr
33
+ commits_by_year: Commits im Jahr
34
+ activity: Aktivit&auml;ten
35
+ activity_by_date: Datum
36
+ commits_by_date: Commits am Datum
37
+ insertions_by_author: Zeilen hinzuf&uuml;gt von Autor
38
+ deletions_by_author: Zeilen gel&ouml;scht von Autor
39
+ changed_lines_by_author: Ge&auml;nderte Zeilen von Autor
40
+ best_authors_shown: aktivsten Autoren werden angezeigt
41
+ commits_count_by_author: Commits eines Autors
42
+ commits_sum_by_author_by_date: Commits nach Autor und Datum
43
+ insertions_by_author_by_date: Hinzugef&uuml;gte Zeilen pro Autor und Datum
44
+ deletions_by_author_by_date: Gel&ouml;schte Zeilen pro Autor und Datum
45
+ changed_lines_by_author_by_date: Ge&auml;nderte Zeilen pro Autor und Datum
46
+ best_authors: Aktivste Autoren
47
+ insertions: Zeilen hinzugef&uuml;gt
48
+ deletions: Zeilen gel&ouml;scht
49
+ first_commit: Erster commit
50
+ last_commit: Letzter commit
51
+ author: Autor
52
+ show_more: Mehr
53
+ close: Schliessen
54
+ binary: Bin&auml;r
55
+ text: Text
56
+ general: Allgemein
57
+ details: Details
58
+ insertions_by_date: Zeilen hinzugef&uuml;gt pro Datum
59
+ deletions_by_date: Zeilen gel&ouml;scht pro Datum
60
+ changed_lines_by_date: Ge&auml;nderte Zeilen pro Datum
@@ -0,0 +1,224 @@
1
+ de:
2
+ date:
3
+ abbr_day_names:
4
+ - So
5
+ - Mo
6
+ - Di
7
+ - Mi
8
+ - Do
9
+ - Fr
10
+ - Sa
11
+ abbr_month_names:
12
+ -
13
+ - Jan
14
+ - Feb
15
+ - M&auml;r
16
+ - Apr
17
+ - Mai
18
+ - Jun
19
+ - Jul
20
+ - Aug
21
+ - Sep
22
+ - Okt
23
+ - Nov
24
+ - Dez
25
+ day_names:
26
+ - Sonntag
27
+ - Montag
28
+ - Dienstag
29
+ - Mittwoch
30
+ - Donnerstag
31
+ - Freitag
32
+ - Samstag
33
+ formats:
34
+ default: ! '%d. %m. %Y'
35
+ long: ! '%d. %B %Y'
36
+ short: ! '%d %b'
37
+ month_names:
38
+ -
39
+ - Januar
40
+ - Februar
41
+ - M&auml;rz
42
+ - April
43
+ - Mai
44
+ - Juni
45
+ - Juli
46
+ - August
47
+ - September
48
+ - Oktober
49
+ - November
50
+ - Dezember
51
+ order:
52
+ - :day
53
+ - :month
54
+ - :year
55
+ datetime:
56
+ distance_in_words:
57
+ about_x_hours:
58
+ few: wenige %{count} Stunden
59
+ one: eine Stunde
60
+ other: '%{count} Stunden'
61
+ many: '%{count} Stunden'
62
+ about_x_months:
63
+ few: wenige %{count} Monate
64
+ one: ein Monat
65
+ other: '%{count} Monate'
66
+ many: '%{count} Monate'
67
+ about_x_years:
68
+ few: wenige %{count} Jahre
69
+ one: ein Jahr
70
+ other: '%{count} Jahre'
71
+ many: '%{count} Jahre'
72
+ almost_x_years:
73
+ few: fast %{count} Jahre
74
+ one: fast ein Jahr
75
+ other: fast %{count} Jahre'
76
+ many: fast %{count} Jahre
77
+ half_a_minute: eine halbe Minute
78
+ less_than_x_minutes:
79
+ few: weniger als %{count} Minuten
80
+ one: weniger als eine Minute
81
+ other: weniger als %{count} Minuten
82
+ many: weniger als %{count} Minuten
83
+ less_than_x_seconds:
84
+ few: weniger als %{count} Sekunden
85
+ one: weniger als eine Sekunde
86
+ other: weniger als %{count} Sekunden
87
+ many: weniger als %{count} Sekunden
88
+ over_x_years:
89
+ few: mehr als %{count} Jahre
90
+ one: mehr als ein Jahr
91
+ other: mehr als %{count} Jahre
92
+ many: mehr als %{count} Jahre
93
+ x_days:
94
+ few: ! '%{count} Tage'
95
+ one: 1 Tag
96
+ other: ! '%{count} Tage'
97
+ many: ! '%{count} Tage'
98
+ x_minutes:
99
+ few: ! '%{count} Minuten'
100
+ one: 1 Minute
101
+ other: ! '%{count} Minuten'
102
+ many: ! '%{count} Minuten'
103
+ x_months:
104
+ few: ! '%{count} Monate'
105
+ one: 1 Monat
106
+ other: ! '%{count} Monate'
107
+ many: ! '%{count} Monate'
108
+ x_seconds:
109
+ few: ! '%{count} Sekunden'
110
+ one: 1 Sekunde
111
+ other: ! '%{count} Sekunden'
112
+ many: ! '%{count} Sekunden'
113
+ prompts:
114
+ day: Tag
115
+ hour: Stunde
116
+ minute: Minute
117
+ month: Monat
118
+ second: Sekunde
119
+ year: Jahr
120
+ errors: &errors
121
+ format: ! '%{attribute} %{message}'
122
+ messages:
123
+ accepted: Muss akzeptiert werden
124
+ blank: Darf nicht leer sein
125
+ confirmation: Stimmt nicht mit der Best&auml;tigung &uuml;berein
126
+ empty: Darf nicht leer sein
127
+ equal_to: Muss gleich %{count} sein
128
+ even: Muss gerade sein
129
+ exclusion: Ist reserviert
130
+ greater_than: Muss gr&ouml;&szlig;er als %{count} sein
131
+ greater_than_or_equal_to: Muss gr&ouml;&szlig;er oder gleich %{count} sein
132
+ inclusion: Ist nicht auf der Liste der zul&auml;ssigen Werte
133
+ invalid: Ist ung&uuml;ltig
134
+ less_than: Muss kleiner sein als %{count}
135
+ less_than_or_equal_to: Muss kleiner oder gleich %{count} sein
136
+ not_a_number: Ist keine Zahl
137
+ not_an_integer: Ist keine ganze Zahl
138
+ odd: Muss ungerade sein
139
+ record_invalid: ! 'Eintrag ung&uuml;ltig: %{errors}'
140
+ taken: bereits in Verwendung
141
+ too_long: Ist zu lang (Darf nicht l&auml;nger als %{count} Zeichen sein)
142
+ too_short: Ist zu kurz (Darf nicht k&uuml;rzer als %{count} Zeichen sein)
143
+ wrong_length: Falsche l&auml;nge (Sollte %{count} Zeichen lang sein)
144
+ template:
145
+ body: ! 'Błędy dotyczą następujących pól:'
146
+ header:
147
+ one: ! '%{model} nie został zachowany z powodu jednego błędu'
148
+ few: ! '%{model} nie został zachowany z powodu %{count} błędów'
149
+ other: ! '%{model} nie został zachowany z powodu %{count} błędów'
150
+ helpers:
151
+ select:
152
+ prompt: Bitte w&auml;hlen sie
153
+ submit:
154
+ create: Erstellen %{model}
155
+ submit: Speichern %{model}
156
+ update: Aktualisieren %{model}
157
+ number:
158
+ currency:
159
+ format:
160
+ delimiter: ! ' '
161
+ format: ! '%u %n'
162
+ precision: 2
163
+ separator: ! ','
164
+ significant: false
165
+ strip_insignificant_zeros: true
166
+ unit: EUR
167
+ format:
168
+ delimiter: ! ' '
169
+ precision: 3
170
+ separator: ! ','
171
+ significant: false
172
+ strip_insignificant_zeros: false
173
+ human:
174
+ decimal_units:
175
+ format: ! '%n %u'
176
+ units:
177
+ billion: Billion
178
+ million: Million
179
+ quadrillion: Billard
180
+ thousand: Tausend
181
+ trillion: Billionen
182
+ unit: ''
183
+ format:
184
+ delimiter: ''
185
+ precision: 3
186
+ significant: true
187
+ strip_insignificant_zeros: true
188
+ storage_units:
189
+ format: ! '%n %u'
190
+ units:
191
+ byte:
192
+ one: Byte
193
+ few: Bytes
194
+ many: Bytes
195
+ other: Bytes
196
+ gb: GB
197
+ kb: KB
198
+ mb: MB
199
+ tb: TB
200
+ percentage:
201
+ format:
202
+ delimiter: ''
203
+ precision:
204
+ format:
205
+ delimiter: ''
206
+ support:
207
+ array:
208
+ last_word_connector: ! ' und '
209
+ two_words_connector: ! ' - '
210
+ words_connector: ! ', '
211
+ time:
212
+ am: vormittags
213
+ formats:
214
+ default: ! '%a, %d. %b %Y %H:%M:%S %z'
215
+ long: ! '%d. %B %Y %H:%M'
216
+ short: ! '%d. %b %H:%M'
217
+ pm: nachmittags
218
+ # remove these aliases after 'activemodel' and 'activerecord' namespaces are removed from Rails repository
219
+ activemodel:
220
+ errors:
221
+ <<: *errors
222
+ activerecord:
223
+ errors:
224
+ <<: *errors
@@ -25,5 +25,5 @@ Gem::Specification.new do |gem|
25
25
  gem.add_dependency('haml')
26
26
  gem.add_dependency('lazy_high_charts')
27
27
  gem.add_dependency('i18n')
28
- gem.add_dependency('highline')
28
+ gem.add_dependency('thor')
29
29
  end
@@ -1,27 +1,18 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require "git_stats"
3
- require "highline/import"
3
+ require "thor"
4
4
 
5
- class GitStats::CLI
5
+ class GitStats::CLI < Thor
6
+ option :path, :aliases => :p, :default => '.', :desc => 'Path to repository from which statistics should be generated.'
7
+ option :output, :aliases => :o, :default => './git_stats', :desc => 'Output path where statistics should be written.'
8
+ option :language, :aliases => :l, :default => 'en', :desc => 'Language of written statistics.'
9
+ option :from, :aliases => :f, :desc => 'Commit from where statistics should start.'
10
+ option :to, :aliases => :t, :default => 'HEAD', :desc => 'Commit where statistics should stop.'
6
11
 
7
- def start
8
-
9
- repo_path = ask("Repo path? ") { |q|
10
- q.default = "."
11
- q.validate = lambda { |p| GitStats::Validator.new.valid_repo_path?(p) }
12
- q.responses[:not_valid] = "Given path is not a git repository, try again"
13
- }
14
-
15
- out_path = ask("Output dir? ") { |q| q.default = "./git_stats" }
16
- I18n.locale = ask("Language? ") { |q| q.default = "en"; q.answer_type = Symbol }
17
- specify_range = agree("Want to specify commits range? ") { |q| q.default = "no" }
18
-
19
- if specify_range
20
- first_commit_sha = ask("Starting commit sha? ") { |q| q.default = nil }
21
- last_commit_sha = ask("Ending commit sha? ") { |q| q.default = "HEAD" }
22
- end
23
-
24
- GitStats::Generator.new(repo_path, out_path, first_commit_sha, last_commit_sha) { |g|
12
+ desc 'generate', 'Generates the statistics of a repository'
13
+ def generate
14
+ I18n.locale = options[:language]
15
+ GitStats::Generator.new(options[:path], options[:output], options[:from], options[:to]) { |g|
25
16
  g.add_command_observer { |command, result| puts "#{command}" }
26
17
  }.render_all
27
18
  end
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module GitStats
3
- VERSION = "1.0.7"
3
+ VERSION = "1.0.8"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git_stats
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7
4
+ version: 1.0.8
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-08-09 00:00:00.000000000 Z
12
+ date: 2013-08-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -108,7 +108,7 @@ dependencies:
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
110
  - !ruby/object:Gem::Dependency
111
- name: highline
111
+ name: thor
112
112
  requirement: !ruby/object:Gem::Requirement
113
113
  none: false
114
114
  requirements:
@@ -139,6 +139,8 @@ files:
139
139
  - README.md
140
140
  - Rakefile
141
141
  - bin/git_stats
142
+ - config/locales/de.yml
143
+ - config/locales/de_default.yml
142
144
  - config/locales/en.yml
143
145
  - config/locales/pl.yml
144
146
  - config/locales/pl_default.yml