nova_git_stats 2.2.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +135 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +113 -0
  5. data/bin/git_stats +1 -0
  6. data/lib/git_stats/base.rb +2 -0
  7. data/lib/git_stats/cli.rb +4 -2
  8. data/lib/git_stats/command_parser.rb +2 -0
  9. data/lib/git_stats/command_runner.rb +3 -1
  10. data/lib/git_stats/core_extensions/enumerable.rb +2 -0
  11. data/lib/git_stats/core_extensions/hash.rb +2 -0
  12. data/lib/git_stats/core_extensions/symbol.rb +2 -0
  13. data/lib/git_stats/generator.rb +2 -0
  14. data/lib/git_stats/git_data/activity.rb +2 -0
  15. data/lib/git_stats/git_data/author.rb +2 -0
  16. data/lib/git_stats/git_data/blob.rb +2 -0
  17. data/lib/git_stats/git_data/comment_stat.rb +2 -0
  18. data/lib/git_stats/git_data/commit.rb +2 -0
  19. data/lib/git_stats/git_data/repo.rb +3 -2
  20. data/lib/git_stats/git_data/short_stat.rb +2 -0
  21. data/lib/git_stats/git_data/tree.rb +2 -0
  22. data/lib/git_stats/hash_initializable.rb +2 -0
  23. data/lib/git_stats/i18n.rb +2 -0
  24. data/lib/git_stats/inspector.rb +2 -0
  25. data/lib/git_stats/stats_view/charts/activity_charts.rb +2 -0
  26. data/lib/git_stats/stats_view/charts/authors_charts.rb +2 -0
  27. data/lib/git_stats/stats_view/charts/chart.rb +2 -0
  28. data/lib/git_stats/stats_view/charts/charts.rb +2 -0
  29. data/lib/git_stats/stats_view/charts/repo_charts.rb +2 -0
  30. data/lib/git_stats/stats_view/template.rb +2 -0
  31. data/lib/git_stats/stats_view/view.rb +4 -2
  32. data/lib/git_stats/stats_view/view_data.rb +2 -0
  33. data/lib/git_stats/version.rb +3 -1
  34. data/lib/git_stats.rb +2 -0
  35. data/templates/activity/_activity.haml +14 -14
  36. data/templates/assets/menu.css +11 -2
  37. data/templates/author_details/_author_details.haml +8 -8
  38. data/templates/authors/_authors.haml +16 -12
  39. data/templates/comments/_comments.haml +2 -2
  40. data/templates/files/_files.haml +4 -4
  41. data/templates/general.haml +1 -1
  42. data/templates/layout.haml +17 -13
  43. data/templates/lines/_lines.haml +4 -4
  44. metadata +10 -29
  45. data/templates/assets/bootstrap/css/bootstrap-3.3.7.min.css +0 -6
  46. data/templates/assets/bootstrap/css/bootstrap-theme-3.3.7.min.css +0 -6
  47. data/templates/assets/bootstrap/css/bootstrap-theme.min.css.map +0 -1
  48. data/templates/assets/bootstrap/css/bootstrap.min.css.map +0 -1
  49. data/templates/assets/bootstrap/js/bootstrap-3.3.7.min.js +0 -7
  50. data/templates/assets/bootstrap-4.6.0-dist/css/bootstrap-grid.css +0 -3872
  51. data/templates/assets/bootstrap-4.6.0-dist/css/bootstrap-grid.css.map +0 -1
  52. data/templates/assets/bootstrap-4.6.0-dist/css/bootstrap-grid.min.css +0 -7
  53. data/templates/assets/bootstrap-4.6.0-dist/css/bootstrap-grid.min.css.map +0 -1
  54. data/templates/assets/bootstrap-4.6.0-dist/css/bootstrap-reboot.css +0 -325
  55. data/templates/assets/bootstrap-4.6.0-dist/css/bootstrap-reboot.css.map +0 -1
  56. data/templates/assets/bootstrap-4.6.0-dist/css/bootstrap-reboot.min.css +0 -8
  57. data/templates/assets/bootstrap-4.6.0-dist/css/bootstrap-reboot.min.css.map +0 -1
  58. data/templates/assets/bootstrap-4.6.0-dist/css/bootstrap.css +0 -10298
  59. data/templates/assets/bootstrap-4.6.0-dist/css/bootstrap.css.map +0 -1
  60. data/templates/assets/bootstrap-4.6.0-dist/css/bootstrap.min.css +0 -7
  61. data/templates/assets/bootstrap-4.6.0-dist/css/bootstrap.min.css.map +0 -1
  62. data/templates/assets/bootstrap-4.6.0-dist/js/bootstrap.bundle.js +0 -7045
  63. data/templates/assets/bootstrap-4.6.0-dist/js/bootstrap.bundle.js.map +0 -1
  64. data/templates/assets/bootstrap-4.6.0-dist/js/bootstrap.bundle.min.js +0 -7
  65. data/templates/assets/bootstrap-4.6.0-dist/js/bootstrap.bundle.min.js.map +0 -1
  66. data/templates/assets/bootstrap-4.6.0-dist/js/bootstrap.js +0 -4432
  67. data/templates/assets/bootstrap-4.6.0-dist/js/bootstrap.js.map +0 -1
  68. data/templates/assets/bootstrap-4.6.0-dist/js/bootstrap.min.js +0 -7
  69. data/templates/assets/bootstrap-4.6.0-dist/js/bootstrap.min.js.map +0 -1
  70. data/templates/assets/jquery-3.6.0.min.js +0 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b6c4a94033fd555ab2caa45a9aba91f3e8b60109008ba3a8fba8f639c24a81a1
4
- data.tar.gz: f7fc62f9a5c725934a40b746a3ad816e0aad5a91e98e78b42558157abc55faed
3
+ metadata.gz: d9c75ae01414c7ec2ecd2a0ba1f1e94bc042f0b40d59ff46d9fae171686ee0d6
4
+ data.tar.gz: 50c677c1d4f8434f9c0a5ae87f58fcac8bde933b88a09171b27e880b375e8657
5
5
  SHA512:
6
- metadata.gz: aa8462b76ef85e84d9b7ac825d7cbeff3876f2f81c670a074af55e3f5e3737412542babca988e7b6404a28916ac04b7556fc0b27ea912d209f202cdc51891be6
7
- data.tar.gz: e475ed118ceb345985623d2e3f3694454a5bacb5d3886c25d3bfb7bcf0a63f42ee2a3e19cee6d6af30e5e2e1ccb31b8bdc23e1c63bc0068d67f0411d8c27b52d
6
+ metadata.gz: fc05e086ff8c61ff82c9ab7fb848637da6985464e8e7ee9ca5eeb2146441d60d1bc3b5ea4b64592c9d04a4b1d2e14b17b61634823545b30a17436bf5ed073adb
7
+ data.tar.gz: 62c0fedfcd7a15b09f2b217a673e1609027b1bb5f61af4836a8307253ee0e114ed0a3ef8fdf3fa9ebc476fca0f4d54eb18e501f409cc2538706570cb71b82840
data/CHANGELOG.md ADDED
@@ -0,0 +1,135 @@
1
+ # Changelog
2
+
3
+ ## [master]
4
+
5
+ [master]: https://github.com/mishina2228/nova_git_stats/compare/v2.3.0...master
6
+
7
+ ## [2.3.0]
8
+
9
+ [2.3.0]: https://github.com/mishina2228/nova_git_stats/compare/v2.2.0...2.3.0
10
+
11
+ * Breaking Changes
12
+ * Stop bundling jQuery and Bootstrap assets
13
+ * Those libraries are delivered by CDN, so an Internet connection is required now.
14
+
15
+ * Changes
16
+ * Enable `frozen_string_literal` by adding the magic comment to all files
17
+ * Updated Bootstrap from v3.3.7 to v5.0.2
18
+
19
+ * Enhancements
20
+ * Include documents and license in the package
21
+ * Replace the project name with new one in the visible part
22
+
23
+ * Bugfixes
24
+ * Fixed highlighting of active tabs
25
+
26
+ ## [2.2.0]
27
+
28
+ [2.2.0]: https://github.com/mishina2228/nova_git_stats/compare/v2.1.2...2.2.0
29
+
30
+ * Features
31
+ * Renamed to NovaGitStats(nova_git_stats) from GitStats(git_stats)
32
+
33
+ ## [2.1.2]
34
+
35
+ [2.1.2]: https://github.com/mishina2228/nova_git_stats/compare/v2.1.1...v2.1.2
36
+
37
+ * Features
38
+ * Add `GitStats.version` method
39
+
40
+ * Changes
41
+ * Move `HashInitializable` under `GitStats` namespace
42
+ * Add support for actionview 7.0
43
+ * Add support for activesupport 7.0
44
+
45
+ * Bugfixes
46
+ * Expand `path` and `out_path` to the absolute path
47
+ * Previously, when the following command was executed, the result was saved in `./~/output/`.
48
+
49
+ ```sh
50
+ git_stats generate -o ~/output/
51
+ ```
52
+
53
+ It has been fixed so that the results are saved in `~/output` now.
54
+
55
+ * Enhancements
56
+ * Introduce `Update GitStats::Inspector` for debugging
57
+ * Define `#to_s`, `#inspect` and `#pretty_print` to reduce the amount of information displayed by those methods.
58
+ * Replace `require` with `require_relative` if possible
59
+
60
+ ## [2.1.1]
61
+
62
+ [2.1.1]: https://github.com/mishina2228/nova_git_stats/compare/v2.1.0...v2.1.1
63
+
64
+ * Changes
65
+ * Remove json_pure from dependency which is no longer needed
66
+ * Remove pry from development dependency
67
+
68
+ * Enhancements
69
+ * Introduced dependabot
70
+ * Run RuboCop on GitHub Action
71
+ * Fix style
72
+ * Update documents for CLI options
73
+ * Remove unneeded files from the gem package
74
+ * Use Gemfile instead of Gem::Specification#add_development_dependency
75
+
76
+ ## [2.1.0]
77
+
78
+ [2.1.0]: https://github.com/mishina2228/nova_git_stats/compare/v2.0.0...v2.1.0
79
+
80
+ * Breaking Changes
81
+ * Dropped support for IE8 and earlier
82
+
83
+ * Changes
84
+ * Updated jQuery from v1.8.2 to v3.6.0
85
+ * Updated Bootstrap from v2.1.1 to v3.3.7
86
+ * Changed vertical tabs to horizontal
87
+ * Changed the appearance of the hamburger icon
88
+
89
+ ## 2.0.0
90
+
91
+ * Breaking Changes
92
+ * Dropped support for Ruby 2.4 and earlier
93
+ * Added support for Ruby 2.5 +
94
+
95
+ * Features
96
+ * Added `git_stats version` command
97
+ * Added graphs of changed/added/deleted lines by date for details of each author page.
98
+ The existing line graph shows the cumulative number, while the added bar graph shows the daily number.
99
+
100
+ * Bugfixes
101
+ * Fixed the following localization:
102
+ * bg
103
+ * de
104
+ * es
105
+ * pl
106
+ * tr
107
+ * zh_cn
108
+ * zh_tw
109
+ * Returns exit 1 when a required argument is not provided
110
+
111
+ * Enhancements
112
+ * Introduced RuboCop and following extensions:
113
+ * RuboCop Performance
114
+ * RuboCop Rake
115
+ * RuboCop RSpec
116
+ * Introduced HAML-Lint
117
+ * Introduced codecov
118
+ * Replaced FactoryGirl with FactoryBot
119
+ * Removed ActionPack, Introduced ActionView
120
+ * Updated following dependency gems:
121
+ * activesupport from ~> 4.2 to ~> 6.1
122
+ * i18n from ~> 0.8 to ~> 1.8
123
+ * thor from ~> 0.20 to ~> 1.0
124
+ * lazy_high_charts from ~> 1.5 to ~> 1.6
125
+ * Updated following development dependency gems:
126
+ * pry from ~> 0.11 to ~> 0.13
127
+ * rake from ~> 12.0 to ~> 13.0
128
+ * rspec from ~> 3.4 to ~> 3.10
129
+ * simplecov from ~> 0.11 to ~> 0.21
130
+ * Updated following JavaScript libraries:
131
+ * Highstock and data export modules from v5.0.10 to v5.0.14
132
+
133
+ ## Earlier than 2.0.0
134
+
135
+ * See the original project [tomgi/git_stats](https://github.com/tomgi/git_stats)
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Tomasz Gieniusz
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,113 @@
1
+ # NovaGitStats
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/nova_git_stats.svg)](https://badge.fury.io/rb/nova_git_stats)
4
+ ![CI](https://github.com/mishina2228/nova_git_stats/workflows/CI/badge.svg)
5
+ [![Documentation](https://img.shields.io/badge/docs-rubydoc.info-blue.svg)](https://rubydoc.info/gems/nova_git_stats)
6
+ [![Maintainability](https://api.codeclimate.com/v1/badges/118cce63cc58fef4ae47/maintainability)](https://codeclimate.com/github/mishina2228/git_stats/maintainability)
7
+ [![codecov](https://codecov.io/gh/mishina2228/nova_git_stats/branch/master/graph/badge.svg?token=532RLO5L7A)](https://codecov.io/gh/mishina2228/nova_git_stats)
8
+
9
+ **This project is forked from original [tomgi/git-stats](https://github.com/tomgi/git_stats).**
10
+
11
+ NovaGitStats is a git repository statistics generator.
12
+ It browses the repository and outputs html page with statistics.
13
+
14
+ ## Examples
15
+
16
+ * [Bootstrap](https://mishina2228.github.io/git_stats/bootstrap)
17
+ * [Devise](https://mishina2228.github.io/git_stats/devise)
18
+ * [DeviseInvitable](https://mishina2228.github.io/git_stats/devise_invitable)
19
+ * [John](https://mishina2228.github.io/git_stats/john)
20
+ * [jQuery](https://mishina2228.github.io/git_stats/jquery)
21
+ * [Rails](https://mishina2228.github.io/git_stats/rails)
22
+ * [React](https://mishina2228.github.io/git_stats/react)
23
+ * [Vue](https://mishina2228.github.io/git_stats/vue)
24
+
25
+ ## Installation
26
+
27
+ ### Existing ruby/gem environment
28
+
29
+ $ gem install git_stats
30
+
31
+ ### debian stretch (9.*)
32
+
33
+ # apt-get install ruby ruby-nokogiri ruby-nokogiri-diff ruby-nokogumbo
34
+ # gem install git_stats
35
+
36
+ ### Ubuntu
37
+
38
+ $ sudo apt-get install ruby ruby-dev gcc zlib1g-dev make
39
+ $ sudo gem install git_stats
40
+
41
+ ## Prerequisites
42
+
43
+ * Git
44
+ * Ruby 2.5+
45
+
46
+ ## Usage
47
+
48
+ ### Generator
49
+
50
+ #### Print help
51
+
52
+ $ git_stats
53
+ Commands:
54
+ git_stats generate # Generates the statistics of a git repository
55
+ git_stats help [COMMAND] # Describe available commands or one specific command
56
+ git_stats version # Show GitStats version number and quit
57
+
58
+ #### Print help of the generate command
59
+
60
+ $ git_stats help generate
61
+ Usage:
62
+ git_stats generate
63
+
64
+ Options:
65
+ -p, [--path=PATH] # Path to git repository from which statistics should be generated.
66
+ # Default: .
67
+ -o, [--out-path=OUT_PATH] # Output path where statistics should be written.
68
+ # Default: ./git_stats
69
+ -l, [--language=LANGUAGE] # Language of written statistics.
70
+ # Default: en
71
+ -f, [--first-commit-sha=FIRST_COMMIT_SHA] # Commit from where statistics should start.
72
+ -t, [--last-commit-sha=LAST_COMMIT_SHA] # Commit where statistics should stop.
73
+ # Default: HEAD
74
+ -s, [--silent], [--no-silent] # Silent mode. Don't output anything.
75
+ -d, [--tree=TREE] # Tree where statistics should be generated.
76
+ # Default: .
77
+ -c, [--comment-string=COMMENT_STRING] # The string which is used for comments.
78
+ # Default: //
79
+
80
+ Generates the statistics of a git repository
81
+
82
+ #### Start generator with default settings
83
+
84
+ $ git_stats generate
85
+ git rev-list --pretty=format:'%h|%at|%ai|%aE' HEAD | grep -v commit
86
+ git shortlog -se HEAD
87
+ ...
88
+
89
+ #### Start generator with some parameters in long and short form
90
+
91
+ $ git_stats generate -o stats --langugage de
92
+ git rev-list --pretty=format:'%h|%at|%ai|%aE' HEAD | grep -v commit
93
+ git shortlog -se HEAD
94
+ ...
95
+
96
+ ### API usage example
97
+
98
+ > repo = GitStats::GitData::Repo.new(path: '.', first_commit_sha: 'abcd1234', last_commit_sha: 'HEAD')
99
+ > repo.authors
100
+ => [...]
101
+ > repo.commits
102
+ => [...]
103
+ > commit.files
104
+ => [...]
105
+
106
+ ## Contributing
107
+
108
+ 1. Fork it
109
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
110
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
111
+ 4. Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
112
+ 5. Push to the branch (`git push origin my-new-feature`)
113
+ 6. Create new Pull Request
data/bin/git_stats CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  # start up the CLI
4
5
  require_relative '../lib/git_stats/cli'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'core_extensions/hash'
2
4
  require_relative 'core_extensions/symbol'
3
5
  require_relative 'core_extensions/enumerable'
data/lib/git_stats/cli.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../git_stats'
2
4
  require 'thor'
3
5
 
@@ -26,9 +28,9 @@ module GitStats
26
28
  end.render_all
27
29
  end
28
30
 
29
- desc 'version', 'Show GitStats version number and quit'
31
+ desc 'version', 'Show NovaGitStats version number and quit'
30
32
  def version
31
- puts "GitStats #{GitStats::VERSION}"
33
+ puts "NovaGitStats #{GitStats::VERSION}"
32
34
  end
33
35
  map %w(-v --version) => :version
34
36
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitStats
2
4
  class CommandParser
3
5
  def parse(command, result)
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitStats
2
4
  class CommandRunner
3
5
  def run(path, command)
4
- execute(command, path).encode!('UTF-8', 'UTF-8', invalid: :replace)
6
+ execute(command, path).encode('UTF-8', 'UTF-8', invalid: :replace)
5
7
  end
6
8
 
7
9
  private
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Enumerable
2
4
  def first!(&block)
3
5
  matching = find(&block)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Hash
2
4
  def to_key_indexed_array(min_size: 0, default: nil)
3
5
  raise ArgumentError, 'all the keys must be numbers to convert to key indexed array' unless all? { |k, _v| k.is_a? Numeric }
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Symbol
2
4
  def t
3
5
  I18n.t self
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'inspector'
2
4
 
3
5
  module GitStats
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitStats
2
4
  module GitData
3
5
  class Activity
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../hash_initializable'
2
4
  require_relative '../inspector'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../hash_initializable'
2
4
  require_relative '../inspector'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitStats
2
4
  module GitData
3
5
  class CommentStat
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../hash_initializable'
2
4
  require_relative '../inspector'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../hash_initializable'
2
4
  require_relative '../inspector'
3
5
 
@@ -122,8 +124,7 @@ module GitStats
122
124
  end
123
125
 
124
126
  def project_name
125
- # TODO: WHAT
126
- @project_name ||= File.expand_path(File.join(path, tree_path)).sub(File.join(File.dirname(File.expand_path(path)), ''), '')
127
+ @project_name ||= File.expand_path(File.join(path, tree_path)).sub(File.dirname(File.expand_path(path)) + File::SEPARATOR, '')
127
128
  end
128
129
 
129
130
  def run(command)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitStats
2
4
  module GitData
3
5
  class ShortStat
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../hash_initializable'
2
4
 
3
5
  module GitStats
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitStats
2
4
  module HashInitializable
3
5
  def initialize(params = {})
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  I18n.load_path += Dir[GitStats.root.join('config/locales/*.yml')]
2
4
  I18n.enforce_available_locales = true
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitStats
2
4
  module Inspector
3
5
  def to_s
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitStats
2
4
  module StatsView
3
5
  module Charts
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitStats
2
4
  module StatsView
3
5
  module Charts
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitStats
2
4
  module StatsView
3
5
  module Charts
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitStats
2
4
  module StatsView
3
5
  module Charts
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitStats
2
4
  module StatsView
3
5
  module Charts
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitStats
2
4
  module StatsView
3
5
  class Template
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../inspector'
2
4
 
3
5
  module GitStats
@@ -33,7 +35,7 @@ module GitStats
33
35
  output = Template.new(template, @layout).render(@view_data,
34
36
  author: author,
35
37
  links: links,
36
- active_page: "/authors/#{author.dirname}/#{template}")
38
+ active_page: "authors/#{author.dirname}/#{template}")
37
39
  write(output, "#{@out_path}/authors/#{author.dirname}/#{template}.html")
38
40
  end
39
41
  end
@@ -70,7 +72,7 @@ module GitStats
70
72
  end
71
73
 
72
74
  def create_out_dir
73
- FileUtils.mkdir_p(@out_path) unless Dir.exist?(@out_path)
75
+ FileUtils.mkdir_p(@out_path)
74
76
  end
75
77
 
76
78
  def prepare_assets
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitStats
2
4
  module StatsView
3
5
  class ViewData
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitStats
2
- VERSION = '2.2.0'.freeze
4
+ VERSION = '2.3.0'
3
5
 
4
6
  def self.version
5
7
  VERSION
data/lib/git_stats.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitStats
2
4
  def self.root
3
5
  Pathname.new(File.dirname(File.dirname(__FILE__)))
@@ -1,19 +1,19 @@
1
1
  .tabbable.tabs-left
2
2
  %ul.nav.nav-tabs
3
- %li{class: page == :activity_by_date ? 'active' : '', role: 'presentation'}
4
- %a{href: 'by_date.html'}= :activity_by_date.t
5
- %li{class: page == :hour_of_day ? 'active' : '', role: 'presentation'}
6
- %a{href: 'hour_of_day.html'}= :hour_of_day.t
7
- %li{class: page == :day_of_week ? 'active' : '', role: 'presentation'}
8
- %a{href: 'day_of_week.html'}= :day_of_week.t
9
- %li{class: page == :hour_of_week ? 'active' : '', role: 'presentation'}
10
- %a{href: 'hour_of_week.html'}= :hour_of_week.t
11
- %li{class: page == :month_of_year ? 'active' : '', role: 'presentation'}
12
- %a{href: 'month_of_year.html'}= :month_of_year.t
13
- %li{class: page == :year ? 'active' : '', role: 'presentation'}
14
- %a{href: 'year.html'}= :year.t
15
- %li{class: page == :year_month ? 'active' : '', role: 'presentation'}
16
- %a{href: 'year_month.html'}= :year_month.t
3
+ %li.nav-item{role: 'presentation'}
4
+ %a.nav-link{class: page == :activity_by_date ? 'active' : '', href: 'by_date.html'}= :activity_by_date.t
5
+ %li.nav-item{role: 'presentation'}
6
+ %a.nav-link{class: page == :hour_of_day ? 'active' : '', href: 'hour_of_day.html'}= :hour_of_day.t
7
+ %li.nav-item{role: 'presentation'}
8
+ %a.nav-link{class: page == :day_of_week ? 'active' : '', href: 'day_of_week.html'}= :day_of_week.t
9
+ %li.nav-item{role: 'presentation'}
10
+ %a.nav-link{class: page == :hour_of_week ? 'active' : '', href: 'hour_of_week.html'}= :hour_of_week.t
11
+ %li.nav-item{role: 'presentation'}
12
+ %a.nav-link{class: page == :month_of_year ? 'active' : '', href: 'month_of_year.html'}= :month_of_year.t
13
+ %li.nav-item{role: 'presentation'}
14
+ %a.nav-link{class: page == :year ? 'active' : '', href: 'year.html'}= :year.t
15
+ %li.nav-item{role: 'presentation'}
16
+ %a.nav-link{class: page == :year_month ? 'active' : '', href: 'year_month.html'}= :year_month.t
17
17
 
18
18
  .tab-content
19
19
  .tab-pane.active
@@ -1,9 +1,17 @@
1
+ * {
2
+ font-size: 14px;
3
+ }
4
+
1
5
  .menu-icon {
2
6
  width: 42px;
3
7
  height: 35px;
4
8
  padding: 5px 8px;
5
9
  }
6
10
 
11
+ .menu-icon:hover {
12
+ background-color: #cbcbcb;
13
+ }
14
+
7
15
  .navbar-collapse > .nav > li > a {
8
16
  font-weight: bold;
9
17
  }
@@ -19,8 +27,9 @@
19
27
  }
20
28
 
21
29
  .navbar-collapse > .nav > .active > a {
22
- box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.15);
23
- -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.15);
30
+ box-shadow: inset 0 40px 16px rgba(0, 0, 0, 0.15);
31
+ -webkit-box-shadow: inset 0 40px 16px rgba(0, 0, 0, 0.15);
32
+ border-radius: 5px;
24
33
  }
25
34
 
26
35
  .tab-content {
@@ -1,13 +1,13 @@
1
1
  .tabbable.tabs-left
2
2
  %ul.nav.nav-tabs
3
- %li{class: page == :commits_by_date ? 'active' : ''}
4
- %a{href: 'commits_by_date.html'}= :commits_by_date.t
5
- %li{class: page == :changed_lines_by_date ? 'active' : ''}
6
- %a{href: 'changed_lines_by_date.html'}= :changed_lines_by_date.t
7
- %li{class: page == :insertions_by_date ? 'active' : ''}
8
- %a{href: 'insertions_by_date.html'}= :insertions_by_date.t
9
- %li{class: page == :deletions_by_date ? 'active' : ''}
10
- %a{href: 'deletions_by_date.html'}= :deletions_by_date.t
3
+ %li.nav-item
4
+ %a.nav-link{class: page == :commits_by_date ? 'active' : '', href: 'commits_by_date.html'}= :commits_by_date.t
5
+ %li.nav-item
6
+ %a.nav-link{class: page == :changed_lines_by_date ? 'active' : '', href: 'changed_lines_by_date.html'}= :changed_lines_by_date.t
7
+ %li.nav-item
8
+ %a.nav-link{class: page == :insertions_by_date ? 'active' : '', href: 'insertions_by_date.html'}= :insertions_by_date.t
9
+ %li.nav-item
10
+ %a.nav-link{class: page == :deletions_by_date ? 'active' : '', href: 'deletions_by_date.html'}= :deletions_by_date.t
11
11
 
12
12
  .tab-content
13
13
  .tab-pane.active