pretty-git 0.1.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.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +413 -0
- data/bin/pretty-git +7 -0
- data/lib/pretty_git/analytics/activity.rb +82 -0
- data/lib/pretty_git/analytics/authors.rb +64 -0
- data/lib/pretty_git/analytics/files.rb +73 -0
- data/lib/pretty_git/analytics/heatmap.rb +51 -0
- data/lib/pretty_git/analytics/languages.rb +155 -0
- data/lib/pretty_git/analytics/summary.rb +94 -0
- data/lib/pretty_git/app.rb +83 -0
- data/lib/pretty_git/cli.rb +63 -0
- data/lib/pretty_git/cli_helpers.rb +130 -0
- data/lib/pretty_git/filters.rb +43 -0
- data/lib/pretty_git/git/provider.rb +134 -0
- data/lib/pretty_git/render/console_renderer.rb +280 -0
- data/lib/pretty_git/render/csv_renderer.rb +44 -0
- data/lib/pretty_git/render/json_renderer.rb +18 -0
- data/lib/pretty_git/render/languages_section.rb +47 -0
- data/lib/pretty_git/render/markdown_renderer.rb +68 -0
- data/lib/pretty_git/render/terminal_width.rb +38 -0
- data/lib/pretty_git/render/xml_renderer.rb +43 -0
- data/lib/pretty_git/render/yaml_renderer.rb +34 -0
- data/lib/pretty_git/types.rb +14 -0
- data/lib/pretty_git/version.rb +5 -0
- data/lib/pretty_git.rb +7 -0
- metadata +99 -0
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
module PrettyGit
|
6
|
+
module Render
|
7
|
+
# Renders full result structure as YAML
|
8
|
+
class YamlRenderer
|
9
|
+
def initialize(io: $stdout)
|
10
|
+
@io = io
|
11
|
+
end
|
12
|
+
|
13
|
+
def call(_report, result, _filters)
|
14
|
+
# Dump the entire result structure to YAML with string keys for safe parsing
|
15
|
+
@io.write(stringify_keys(result).to_yaml)
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def stringify_keys(obj)
|
21
|
+
case obj
|
22
|
+
when Hash
|
23
|
+
obj.each_with_object({}) do |(k, v), acc|
|
24
|
+
acc[k.to_s] = stringify_keys(v)
|
25
|
+
end
|
26
|
+
when Array
|
27
|
+
obj.map { |e| stringify_keys(e) }
|
28
|
+
else
|
29
|
+
obj
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PrettyGit
|
4
|
+
module Types
|
5
|
+
Commit = Struct.new(
|
6
|
+
:sha, :author_name, :author_email, :authored_at, :message,
|
7
|
+
:additions, :deletions, :files, keyword_init: true
|
8
|
+
)
|
9
|
+
|
10
|
+
FileStat = Struct.new(:path, :additions, :deletions, keyword_init: true)
|
11
|
+
|
12
|
+
TimeBucket = Struct.new(:key, :commits, :additions, :deletions, keyword_init: true)
|
13
|
+
end
|
14
|
+
end
|
data/lib/pretty_git.rb
ADDED
metadata
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: pretty-git
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Pretty Git Authors
|
8
|
+
bindir: bin
|
9
|
+
cert_chain: []
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
|
+
dependencies:
|
12
|
+
- !ruby/object:Gem::Dependency
|
13
|
+
name: csv
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - ">="
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: '0'
|
19
|
+
type: :runtime
|
20
|
+
prerelease: false
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
requirements:
|
23
|
+
- - ">="
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: '0'
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: rexml
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
description: Generates structured analytics from local Git repositories with multiple
|
41
|
+
export formats.
|
42
|
+
email:
|
43
|
+
- ''
|
44
|
+
executables:
|
45
|
+
- pretty-git
|
46
|
+
extensions: []
|
47
|
+
extra_rdoc_files: []
|
48
|
+
files:
|
49
|
+
- LICENSE
|
50
|
+
- README.md
|
51
|
+
- bin/pretty-git
|
52
|
+
- lib/pretty_git.rb
|
53
|
+
- lib/pretty_git/analytics/activity.rb
|
54
|
+
- lib/pretty_git/analytics/authors.rb
|
55
|
+
- lib/pretty_git/analytics/files.rb
|
56
|
+
- lib/pretty_git/analytics/heatmap.rb
|
57
|
+
- lib/pretty_git/analytics/languages.rb
|
58
|
+
- lib/pretty_git/analytics/summary.rb
|
59
|
+
- lib/pretty_git/app.rb
|
60
|
+
- lib/pretty_git/cli.rb
|
61
|
+
- lib/pretty_git/cli_helpers.rb
|
62
|
+
- lib/pretty_git/filters.rb
|
63
|
+
- lib/pretty_git/git/provider.rb
|
64
|
+
- lib/pretty_git/render/console_renderer.rb
|
65
|
+
- lib/pretty_git/render/csv_renderer.rb
|
66
|
+
- lib/pretty_git/render/json_renderer.rb
|
67
|
+
- lib/pretty_git/render/languages_section.rb
|
68
|
+
- lib/pretty_git/render/markdown_renderer.rb
|
69
|
+
- lib/pretty_git/render/terminal_width.rb
|
70
|
+
- lib/pretty_git/render/xml_renderer.rb
|
71
|
+
- lib/pretty_git/render/yaml_renderer.rb
|
72
|
+
- lib/pretty_git/types.rb
|
73
|
+
- lib/pretty_git/version.rb
|
74
|
+
homepage: https://github.com/MikoMikocchi/pretty-git
|
75
|
+
licenses:
|
76
|
+
- MIT
|
77
|
+
metadata:
|
78
|
+
source_code_uri: https://github.com/MikoMikocchi/pretty-git
|
79
|
+
changelog_uri: https://github.com/MikoMikocchi/pretty-git/blob/main/CHANGELOG.md
|
80
|
+
bug_tracker_uri: https://github.com/MikoMikocchi/pretty-git/issues
|
81
|
+
rubygems_mfa_required: 'true'
|
82
|
+
rdoc_options: []
|
83
|
+
require_paths:
|
84
|
+
- lib
|
85
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.4'
|
90
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
requirements: []
|
96
|
+
rubygems_version: 3.6.9
|
97
|
+
specification_version: 4
|
98
|
+
summary: Git repository analytics and reporting CLI
|
99
|
+
test_files: []
|