dorian-git-tree 0.2.2 → 0.3.1

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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/git-tree +2 -1
  3. data/lib/dorian/git/tree.rb +18 -4
  4. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42b9ccf28933c01ec92f8d3b25d01a3f7e5ba10ae20ad481e1b4715351165979
4
- data.tar.gz: 3b4cbf601a6f870dd5c807358c2d8d34210de77591c2795be9b626d647fd9152
3
+ metadata.gz: b75c81a2bb8b9c645a6f11b968acddbc5fb6ccae3c5652b626c6731ecb610ea5
4
+ data.tar.gz: 8a931bfd14ac781ed36a458c405b876dcae7700d3366c57358ad04da0d953acd
5
5
  SHA512:
6
- metadata.gz: b44ccdfea86469a67ca44d697a732609671f165cb959dcc50a669a88fc239b6d6244ab477eb6ce01863c8d02a86ee1764099ef224310909fa8fcaea20a907be5
7
- data.tar.gz: e0379bb8aaa800c98549cb62e6f3acff6ae6feae7d9433ca7078da7ffbdab670286c9fa9dd23b1c0c9cb68f4b5ccba58634fecf42ff132e29e7885ec4d19ff00
6
+ metadata.gz: 2c7242040f46199cd329fa59cc2cb0253bf4be8b025c8901d883c0035c2fd97510695548a305afc1fe2cf511441d02071e2db2d212f1c9e75ef06d74cb6e1fe5
7
+ data.tar.gz: a18875fefc4682cc1ea3170e6e466331852f29e51949d0a4d76ccfce39898a420795acae3e46397f6a8ddbded3d26e93926f7806fa576850ea9be71dc38ec60a
data/bin/git-tree CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require 'dorian/git/tree'
4
+ require "dorian/git/tree"
4
5
  Dorian::Git::Tree.run
@@ -1,3 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "English"
4
+
1
5
  require "shellwords"
2
6
 
3
7
  module Dorian
@@ -15,22 +19,32 @@ module Dorian
15
19
  end
16
20
 
17
21
  key = ARGV.first || "."
18
- files = git_ls_files(key)
22
+
23
+ files =
24
+ git_ls_files(key).map do |file|
25
+ ARGV.first ? file.sub(ARGV.first, "") : file
26
+ end
27
+
19
28
  values = group(files)
29
+
20
30
  key = "#{key}/" if values.any? && key != "." && key[-1] != "/"
31
+
21
32
  puts key
33
+
22
34
  values.each.with_index do |(value_key, value_values), value_index|
23
35
  print(
24
36
  key: value_key,
25
37
  values: value_values,
26
38
  index: value_index,
27
- size: values.size,
39
+ size: values.size
28
40
  )
29
41
  end
30
42
  end
31
43
 
32
44
  def self.git_ls_files(path)
33
- `#{["git", "ls-files", path].compact.shelljoin}`.split("\n")
45
+ result = `#{["git", "ls-files", path].compact.shelljoin}`.split("\n")
46
+ exit $CHILD_STATUS.exitstatus if $CHILD_STATUS.exitstatus.positive?
47
+ result
34
48
  end
35
49
 
36
50
  def self.group(files)
@@ -39,7 +53,7 @@ module Dorian
39
53
  .transform_values do |values|
40
54
  group(
41
55
  values
42
- .map { |value| value.split("/")[1..-1].join("/") }
56
+ .map { |value| value.split("/")[1..].join("/") }
43
57
  .reject(&:empty?)
44
58
  )
45
59
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dorian-git-tree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dorian Marié
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-20 00:00:00.000000000 Z
11
+ date: 2024-02-08 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |-
14
14
  Lists your files and directories in your git repository as a tree
@@ -22,7 +22,7 @@ extra_rdoc_files: []
22
22
  files:
23
23
  - bin/git-tree
24
24
  - lib/dorian/git/tree.rb
25
- homepage: https://github.com/dorianmariefr/git-tree
25
+ homepage: https://github.com/dorianmariecom/git-tree
26
26
  licenses:
27
27
  - MIT
28
28
  metadata:
@@ -42,7 +42,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
42
42
  - !ruby/object:Gem::Version
43
43
  version: '0'
44
44
  requirements: []
45
- rubygems_version: 3.2.22
45
+ rubygems_version: 3.5.3
46
46
  signing_key:
47
47
  specification_version: 4
48
48
  summary: Lists your files and directories in your git repository as a tree