git-age 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
- checksums.yaml.gz.sig +0 -0
- data/.gitignore +8 -0
- data/.travis.yml +6 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +21 -0
- data/README.md +45 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/git-age +48 -0
- data/bin/setup +8 -0
- data/gem-public_cert.pem +27 -0
- data/git-age.gemspec +33 -0
- data/lib/git/age/graph_cli.rb +22 -0
- data/lib/git/age/main.rb +101 -0
- data/lib/git/age/options.rb +20 -0
- data/lib/git/age/version.rb +5 -0
- data/lib/git/age.rb +3 -0
- data.tar.gz.sig +2 -0
- metadata +90 -0
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9ee1f171ee1fc257032663614b5b13ccadf62e2181450af785d45b98a5c91e17
|
4
|
+
data.tar.gz: 5607965e9be16da07a2d3a757cd8372fdf160e5263c897f51868179b6a310ebc
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 652a2263c2d1cac464b48fc98caeaaf0eb1af076fa06d14982fb2051f31e402a83e5fe73cb911de1111d868f190905d0dd8999ca02af3eda12345079fc2aea39
|
7
|
+
data.tar.gz: 9ba360f91613ca3928e02237ac232d9076d9ac92782f638ba85d3a95da7500b81dbc2c849abd62350d097c77f807665a1cae301fb2130d0e17230bc21c34a8ef
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
git-age (0.1.0)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: https://rubygems.org/
|
8
|
+
specs:
|
9
|
+
minitest (5.14.4)
|
10
|
+
rake (12.3.3)
|
11
|
+
|
12
|
+
PLATFORMS
|
13
|
+
ruby
|
14
|
+
|
15
|
+
DEPENDENCIES
|
16
|
+
git-age!
|
17
|
+
minitest (~> 5.0)
|
18
|
+
rake (~> 12.0)
|
19
|
+
|
20
|
+
BUNDLED WITH
|
21
|
+
2.1.4
|
data/README.md
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
# Git::Age
|
2
|
+
|
3
|
+
Would you like to know how many lines from the past still persists on your
|
4
|
+
repository? This gem can help with that.
|
5
|
+
|
6
|
+
It will create a CSV file with year, month and the line count from the specified
|
7
|
+
period.
|
8
|
+
|
9
|
+
Also, with some CLI graphic processor installed, it can create an image with a
|
10
|
+
graph showing the CSV data as a bar graph.
|
11
|
+
|
12
|
+
## Installation
|
13
|
+
|
14
|
+
```
|
15
|
+
$ gem install git-age
|
16
|
+
```
|
17
|
+
|
18
|
+
## Usage
|
19
|
+
|
20
|
+
Go to your repository and run:
|
21
|
+
|
22
|
+
```
|
23
|
+
Usage: git-age [options]
|
24
|
+
-o, --output=FILE Output file
|
25
|
+
-i, --image=FILE Image file
|
26
|
+
-g, --graph=PROCESSOR Graphic processor
|
27
|
+
-t, --title=TITLE Graphic title
|
28
|
+
-x, --xtitle=TITLE X axis title
|
29
|
+
-y, --ytitle=TITLE Y axis title
|
30
|
+
```
|
31
|
+
|
32
|
+
Example:
|
33
|
+
|
34
|
+
```
|
35
|
+
```
|
36
|
+
|
37
|
+
## Development
|
38
|
+
|
39
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
40
|
+
|
41
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
42
|
+
|
43
|
+
## Contributing
|
44
|
+
|
45
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/taq/git-age.
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "git/age"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|
data/bin/git-age
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require_relative "../lib/git/age"
|
4
|
+
require 'optparse'
|
5
|
+
|
6
|
+
options = Git::Age::Options.instance
|
7
|
+
|
8
|
+
opts = OptionParser.new
|
9
|
+
opts.banner = 'Usage: git-age [options]'
|
10
|
+
|
11
|
+
opts.on('-b', '--branch=BRANCH', 'Git branch') do |branch|
|
12
|
+
STDOUT.puts "Git branch: #{branch}"
|
13
|
+
options.branch = branch
|
14
|
+
end
|
15
|
+
|
16
|
+
opts.on('-o', '--output=FILE', 'Output file') do |file|
|
17
|
+
STDOUT.puts "Output to #{file}"
|
18
|
+
options.output = file
|
19
|
+
end
|
20
|
+
|
21
|
+
opts.on('-i', '--image=FILE', 'Image file') do |file|
|
22
|
+
STDOUT.puts "Image output to #{file}"
|
23
|
+
options.image = file
|
24
|
+
end
|
25
|
+
|
26
|
+
opts.on('-g', '--graph=PROCESSOR', 'Graphic processor') do |processor|
|
27
|
+
STDOUT.puts "Using graphic processor #{processor}"
|
28
|
+
options.processor = processor
|
29
|
+
end
|
30
|
+
|
31
|
+
opts.on('-t', '--title=TITLE', 'Graphic title') do |title|
|
32
|
+
STDOUT.puts "Using title #{title}"
|
33
|
+
options.title = title
|
34
|
+
end
|
35
|
+
|
36
|
+
opts.on('-x', '--xtitle=TITLE', 'X axis title') do |title|
|
37
|
+
STDOUT.puts "Using X axis title #{title}"
|
38
|
+
options.xtitle = title
|
39
|
+
end
|
40
|
+
|
41
|
+
opts.on('-y', '--ytitle=TITLE', 'Y axis title') do |title|
|
42
|
+
STDOUT.puts "Using Y axis title #{title}"
|
43
|
+
options.ytitle = title
|
44
|
+
end
|
45
|
+
|
46
|
+
opts.parse!
|
47
|
+
|
48
|
+
Git::Age::Main.new.run
|
data/bin/setup
ADDED
data/gem-public_cert.pem
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIEjjCCAvagAwIBAgIBATANBgkqhkiG9w0BAQsFADBGMRgwFgYDVQQDDA9ldXN0
|
3
|
+
YXF1aW9yYW5nZWwxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixk
|
4
|
+
ARkWA2NvbTAeFw0yMjA4MjUxMjM1NDlaFw0yMzA4MjUxMjM1NDlaMEYxGDAWBgNV
|
5
|
+
BAMMD2V1c3RhcXVpb3JhbmdlbDEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYK
|
6
|
+
CZImiZPyLGQBGRYDY29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA
|
7
|
+
3YBFbveSL2/69Igp0dpsop8U9ZxMAHMK00ZpwX+sUDIQOEQ/y9D/sS0YM5vXKWSC
|
8
|
+
+b9XVyhRZ62nF49HfcFK9EzZ3prs5N8NL1hel50l4B3U1z4fuiZ/DWZI1UcEc/Kn
|
9
|
+
Mp18z484LDu8Ahh4SBzZ+VYJAh1LPt5NfUaOPvPiROJqJgOV1qcXO+6ZVA3y1h5U
|
10
|
+
EeWBgkzyi0WkaUUyXqkDV4RBPpPvT590U3cd6ok4EwTJA4XNwlvQU10WoXjnLESn
|
11
|
+
w1WvoA4zQCigAS7S1eVdR3UEbdef+bc7DXBRw7WVrainzjqiX+rKchQpCWSu/TMg
|
12
|
+
tO8r3s0V+bG04/4yQXc1zAeFquyBTJy/PInHLbTwEmTiV/5XauSwjtOTAlZbn90x
|
13
|
+
fe0srVN/hlzQIe5hOpGpV2CqCM8LTbM/shrK1jSZODvW9yDsxR2xOwbrxbxEVa3f
|
14
|
+
+/VK8+F3xVhJEPz3A0IdtFcSHxBYbDy3x3BBBPNxxx16pFrqC9AF3fyce9lp8l/1
|
15
|
+
AgMBAAGjgYYwgYMwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFIY3
|
16
|
+
pLeLD3pErXWmpnX6YmuFkJpYMCQGA1UdEQQdMBuBGWV1c3RhcXVpb3JhbmdlbEBn
|
17
|
+
bWFpbC5jb20wJAYDVR0SBB0wG4EZZXVzdGFxdWlvcmFuZ2VsQGdtYWlsLmNvbTAN
|
18
|
+
BgkqhkiG9w0BAQsFAAOCAYEAUoZqEnK4qtASN9iSnAhbj/1h0Bd98YFYmmHwlc7q
|
19
|
+
zOQ9FuxPHwK1Lfe540JY87mfGsCLNp+ePGHgkZUBIgtIVA427SYc0t5Tz76nJzOA
|
20
|
+
eH8Aev8mKYkz319CuZexxFQBTGagpUAZN6/34jMPnA6/JPeuikMTeagm76WX4SMO
|
21
|
+
1dHKnul+R5pDABWL9x7+Ed4d9Cko83Y5CF8z4lyUleuxlxh22qYHw39diIA3lUqF
|
22
|
+
AW6goHQVToZSxT4EFSNraft4HOuuGV8Kzw0+r8vWLIaCDhT7GZcOoTW7mdcgTAfb
|
23
|
+
CYYXOb19ueiFFDMzwMIMS+hMNV8CUDhzlp4FdEOZmQcMwomwpc5EASQI/eLLo1sB
|
24
|
+
wEEm2u37AJRyw/zKbLBX+mN/EySVht7IPVNeG4kOCv3o84AGZPiVZhQlypocjm9I
|
25
|
+
7NRJmY9c84Zb3sCf0DV6UH+d2id9Dndp9ewchgDOSwGznt+oJmjDFZ9gYd8IP2Ol
|
26
|
+
1eLrW8x4LHV+EVEIaiVTvmKt
|
27
|
+
-----END CERTIFICATE-----
|
data/git-age.gemspec
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative 'lib/git/age/version'
|
2
|
+
|
3
|
+
Gem::Specification.new do |spec|
|
4
|
+
spec.name = "git-age"
|
5
|
+
spec.version = Git::Age::VERSION
|
6
|
+
spec.authors = ["Eustaquio Rangel"]
|
7
|
+
spec.email = ["taq@eustaquiorangel.com"]
|
8
|
+
|
9
|
+
spec.summary = %q{Create a CSV file with line year and month from your Git repository}
|
10
|
+
spec.description = %q{Check all the repository files lines dates and group it by year and month, allowing check how old code is still in use}
|
11
|
+
spec.homepage = "https://github.com/taq/git-age"
|
12
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
13
|
+
|
14
|
+
#spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
|
15
|
+
|
16
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
17
|
+
spec.metadata["source_code_uri"] = "https://github.com/taq/git-age"
|
18
|
+
#spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
|
19
|
+
|
20
|
+
# Specify which files should be added to the gem when it is released.
|
21
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
22
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
23
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
24
|
+
end
|
25
|
+
|
26
|
+
spec.bindir = "bin"
|
27
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
|
+
spec.executables << "git-age"
|
29
|
+
spec.require_paths = ["lib"]
|
30
|
+
|
31
|
+
spec.signing_key = '/home/taq/.gemcert/gem-private_key.pem'
|
32
|
+
spec.cert_chain = ['gem-public_cert.pem']
|
33
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Git
|
2
|
+
module Age
|
3
|
+
class GraphCli
|
4
|
+
def self.present?
|
5
|
+
IO.popen('which graph') do |io|
|
6
|
+
io.read
|
7
|
+
end.strip.size != 0
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.create(input)
|
11
|
+
options = Git::Age::Options.instance
|
12
|
+
STDOUT.puts "Creating image #{options.image} ..."
|
13
|
+
|
14
|
+
cmd = "graph #{input} --bar -o #{options.image} --title '#{options.title}' --xlabel='#{options.xtitle}' --ylabel='#{options.ytitle}' --xtick-fontsize 5 --time-format-output '%Y-%m-%d' --legend=''"
|
15
|
+
rst = IO.popen(cmd) do |io|
|
16
|
+
io.read
|
17
|
+
end
|
18
|
+
STDOUT.puts rst
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/git/age/main.rb
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
module Git
|
2
|
+
module Age
|
3
|
+
class Main
|
4
|
+
JUSTIFICATION = 150
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
STDOUT.puts "Waiting, analysing your repository ..."
|
8
|
+
|
9
|
+
@dates = Hash.new(0)
|
10
|
+
@files = files
|
11
|
+
end
|
12
|
+
|
13
|
+
def run
|
14
|
+
read_files
|
15
|
+
sort_dates
|
16
|
+
create_csv
|
17
|
+
create_image
|
18
|
+
rescue => e
|
19
|
+
STDERR.puts "Error: #{e}"
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def read_files
|
25
|
+
cnt = 0
|
26
|
+
total = @files.size
|
27
|
+
|
28
|
+
@files.each do |file|
|
29
|
+
cnt += 1
|
30
|
+
next unless text?(file)
|
31
|
+
|
32
|
+
print "Checking [#{cnt}/#{total}] #{file.ljust(JUSTIFICATION)} ...\r"
|
33
|
+
|
34
|
+
IO.popen("git blame #{file} | iconv -t utf8") do |io|
|
35
|
+
io.read.split("\n")
|
36
|
+
end.each do |line|
|
37
|
+
matches = line.match(/\(.*(?<date>\d{4}-\d{2})-\d{2}.*\)/)
|
38
|
+
next unless matches
|
39
|
+
|
40
|
+
@dates[matches[:date]] += 1
|
41
|
+
end
|
42
|
+
end
|
43
|
+
rescue => e
|
44
|
+
STDERR.puts "Error reading files: #{e}"
|
45
|
+
end
|
46
|
+
|
47
|
+
def sort_dates
|
48
|
+
@dates = @dates.sort_by { |k, v| k }
|
49
|
+
end
|
50
|
+
|
51
|
+
def create_csv
|
52
|
+
output = Git::Age::Options.instance.output
|
53
|
+
STDOUT.puts "Creating CSV file #{output} ...".ljust(JUSTIFICATION)
|
54
|
+
|
55
|
+
File.open(output, 'w') do |file|
|
56
|
+
@dates.each do |key, value|
|
57
|
+
file << "#{key},#{value}\n"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
rescue => e
|
61
|
+
STDERR.puts "Error creating CSV file: #{e}"
|
62
|
+
end
|
63
|
+
|
64
|
+
def create_image
|
65
|
+
options = Options.instance
|
66
|
+
processor = {
|
67
|
+
'graph-cli' => Git::Age::GraphCli
|
68
|
+
}[options.processor]
|
69
|
+
|
70
|
+
unless processor
|
71
|
+
STDERR.puts "Image processor not supported: #{options.processor}"
|
72
|
+
return
|
73
|
+
end
|
74
|
+
|
75
|
+
unless processor.present?
|
76
|
+
STDERR.puts "Image processor #{options.processor} is not installed"
|
77
|
+
return
|
78
|
+
end
|
79
|
+
|
80
|
+
processor.create(options.output)
|
81
|
+
end
|
82
|
+
|
83
|
+
def files
|
84
|
+
branch = Git::Age::Options.instance.branch
|
85
|
+
STDOUT.puts "Reading files info from #{branch} branch ..."
|
86
|
+
|
87
|
+
IO.popen("git ls-tree -r #{branch} --name-only") do |io|
|
88
|
+
io.read.split("\n")
|
89
|
+
end
|
90
|
+
rescue => e
|
91
|
+
STDERR.puts "Error while searching for Git controlled files: #{e}"
|
92
|
+
end
|
93
|
+
|
94
|
+
def text?(file)
|
95
|
+
IO.popen("file -i -b #{file}") do |io|
|
96
|
+
io.read
|
97
|
+
end.match?(/\Atext/)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'singleton'
|
2
|
+
|
3
|
+
module Git
|
4
|
+
module Age
|
5
|
+
class Options
|
6
|
+
include Singleton
|
7
|
+
attr_accessor :branch, :output, :title, :processor, :image, :xtitle, :ytitle
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@branch = 'master'
|
11
|
+
@output = 'git-age.csv'
|
12
|
+
@title = 'Git age statistics'
|
13
|
+
@processor = 'graph-cli'
|
14
|
+
@image = 'git-age.png'
|
15
|
+
@xtitle = 'Dates'
|
16
|
+
@ytitle = 'Lines'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/git/age.rb
ADDED
data.tar.gz.sig
ADDED
metadata
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: git-age
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Eustaquio Rangel
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIEjjCCAvagAwIBAgIBATANBgkqhkiG9w0BAQsFADBGMRgwFgYDVQQDDA9ldXN0
|
14
|
+
YXF1aW9yYW5nZWwxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixk
|
15
|
+
ARkWA2NvbTAeFw0yMjA4MjUxMjM1NDlaFw0yMzA4MjUxMjM1NDlaMEYxGDAWBgNV
|
16
|
+
BAMMD2V1c3RhcXVpb3JhbmdlbDEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYK
|
17
|
+
CZImiZPyLGQBGRYDY29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA
|
18
|
+
3YBFbveSL2/69Igp0dpsop8U9ZxMAHMK00ZpwX+sUDIQOEQ/y9D/sS0YM5vXKWSC
|
19
|
+
+b9XVyhRZ62nF49HfcFK9EzZ3prs5N8NL1hel50l4B3U1z4fuiZ/DWZI1UcEc/Kn
|
20
|
+
Mp18z484LDu8Ahh4SBzZ+VYJAh1LPt5NfUaOPvPiROJqJgOV1qcXO+6ZVA3y1h5U
|
21
|
+
EeWBgkzyi0WkaUUyXqkDV4RBPpPvT590U3cd6ok4EwTJA4XNwlvQU10WoXjnLESn
|
22
|
+
w1WvoA4zQCigAS7S1eVdR3UEbdef+bc7DXBRw7WVrainzjqiX+rKchQpCWSu/TMg
|
23
|
+
tO8r3s0V+bG04/4yQXc1zAeFquyBTJy/PInHLbTwEmTiV/5XauSwjtOTAlZbn90x
|
24
|
+
fe0srVN/hlzQIe5hOpGpV2CqCM8LTbM/shrK1jSZODvW9yDsxR2xOwbrxbxEVa3f
|
25
|
+
+/VK8+F3xVhJEPz3A0IdtFcSHxBYbDy3x3BBBPNxxx16pFrqC9AF3fyce9lp8l/1
|
26
|
+
AgMBAAGjgYYwgYMwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFIY3
|
27
|
+
pLeLD3pErXWmpnX6YmuFkJpYMCQGA1UdEQQdMBuBGWV1c3RhcXVpb3JhbmdlbEBn
|
28
|
+
bWFpbC5jb20wJAYDVR0SBB0wG4EZZXVzdGFxdWlvcmFuZ2VsQGdtYWlsLmNvbTAN
|
29
|
+
BgkqhkiG9w0BAQsFAAOCAYEAUoZqEnK4qtASN9iSnAhbj/1h0Bd98YFYmmHwlc7q
|
30
|
+
zOQ9FuxPHwK1Lfe540JY87mfGsCLNp+ePGHgkZUBIgtIVA427SYc0t5Tz76nJzOA
|
31
|
+
eH8Aev8mKYkz319CuZexxFQBTGagpUAZN6/34jMPnA6/JPeuikMTeagm76WX4SMO
|
32
|
+
1dHKnul+R5pDABWL9x7+Ed4d9Cko83Y5CF8z4lyUleuxlxh22qYHw39diIA3lUqF
|
33
|
+
AW6goHQVToZSxT4EFSNraft4HOuuGV8Kzw0+r8vWLIaCDhT7GZcOoTW7mdcgTAfb
|
34
|
+
CYYXOb19ueiFFDMzwMIMS+hMNV8CUDhzlp4FdEOZmQcMwomwpc5EASQI/eLLo1sB
|
35
|
+
wEEm2u37AJRyw/zKbLBX+mN/EySVht7IPVNeG4kOCv3o84AGZPiVZhQlypocjm9I
|
36
|
+
7NRJmY9c84Zb3sCf0DV6UH+d2id9Dndp9ewchgDOSwGznt+oJmjDFZ9gYd8IP2Ol
|
37
|
+
1eLrW8x4LHV+EVEIaiVTvmKt
|
38
|
+
-----END CERTIFICATE-----
|
39
|
+
date: 2022-08-25 00:00:00.000000000 Z
|
40
|
+
dependencies: []
|
41
|
+
description: Check all the repository files lines dates and group it by year and month,
|
42
|
+
allowing check how old code is still in use
|
43
|
+
email:
|
44
|
+
- taq@eustaquiorangel.com
|
45
|
+
executables:
|
46
|
+
- git-age
|
47
|
+
extensions: []
|
48
|
+
extra_rdoc_files: []
|
49
|
+
files:
|
50
|
+
- ".gitignore"
|
51
|
+
- ".travis.yml"
|
52
|
+
- Gemfile
|
53
|
+
- Gemfile.lock
|
54
|
+
- README.md
|
55
|
+
- Rakefile
|
56
|
+
- bin/console
|
57
|
+
- bin/git-age
|
58
|
+
- bin/setup
|
59
|
+
- gem-public_cert.pem
|
60
|
+
- git-age.gemspec
|
61
|
+
- lib/git/age.rb
|
62
|
+
- lib/git/age/graph_cli.rb
|
63
|
+
- lib/git/age/main.rb
|
64
|
+
- lib/git/age/options.rb
|
65
|
+
- lib/git/age/version.rb
|
66
|
+
homepage: https://github.com/taq/git-age
|
67
|
+
licenses: []
|
68
|
+
metadata:
|
69
|
+
homepage_uri: https://github.com/taq/git-age
|
70
|
+
source_code_uri: https://github.com/taq/git-age
|
71
|
+
post_install_message:
|
72
|
+
rdoc_options: []
|
73
|
+
require_paths:
|
74
|
+
- lib
|
75
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 2.3.0
|
80
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
requirements: []
|
86
|
+
rubygems_version: 3.3.7
|
87
|
+
signing_key:
|
88
|
+
specification_version: 4
|
89
|
+
summary: Create a CSV file with line year and month from your Git repository
|
90
|
+
test_files: []
|
metadata.gz.sig
ADDED
Binary file
|