nova_git_stats 2.2.0 → 2.3.0

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