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.
@@ -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
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PrettyGit
4
+ VERSION = '0.1.0'
5
+ end
data/lib/pretty_git.rb ADDED
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'pretty_git/version'
4
+
5
+ module PrettyGit
6
+ class Error < StandardError; end
7
+ end
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: []