git_stats 1.0.7 → 1.0.8

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/.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