dorian-top 0.2.3 → 1.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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/top +30 -11
  3. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4ef9385fea753248a45832426e9271a0c8eb2ca266d541136e347fbf03bf8b2f
4
- data.tar.gz: eb0b0d76340d7e696d0c12bb573ad5430ab2f8c7d16bd379a7ccf131ef2a33ec
3
+ metadata.gz: 2dfe51725b10e92e5ff2fffb29517e4cfa18efa147f852ef8dff3c93f892d4c0
4
+ data.tar.gz: 2011b9062d18f0649031bc75d418f467f37857656c879887a69c3555a2e884a7
5
5
  SHA512:
6
- metadata.gz: 6b7aa2677721b6dcc3a32fa6082accdc19cb690ea83048ddf5b06a6364f300e81594599535ce85e3ce42dc189325f251d0e988a91d408bc3b4a3f50ff5790c38
7
- data.tar.gz: ce8750383ed9f3b6645c701d9de32506c7319bc0f2ac3822acead20cad8c4185030c1aebe40a9ecc90facd7ff445e67a691990e8fe60ceb66f5d8abfad6e91b7
6
+ metadata.gz: c2c86fa1bc5518a31d49d36f8c0bdd4b50f157d3221206216a90531e547571f3ccca4c9e433c46abc9e61eafb48338e9861e3e10e5d763f9b97f589d0750adb6
7
+ data.tar.gz: 3a44a06ea9d35e601b8092c1db7d5f796036a792dbce70925fa76962c4153177db153e12ad44a039864fd6de7725640467135474c82f0a7ab1de4c6fdeb30d06
data/bin/top CHANGED
@@ -1,16 +1,36 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- if ARGV.size > 2 || ARGV.first == "-h" || ARGV.first == "--help"
5
- puts "USAGE: top [N] [SHELL]"
6
- exit
7
- end
4
+ require "dorian/arguments"
5
+
6
+ parsed =
7
+ Dorian::Arguments.parse(
8
+ limit: {
9
+ type: :integer,
10
+ aliases: %i[l n],
11
+ default: 10
12
+ },
13
+ shell: {
14
+ type: :string,
15
+ alias: :s,
16
+ default: File.basename(ENV["SHELL"] || "bash")
17
+ },
18
+ version: {
19
+ alias: :v
20
+ },
21
+ help: {
22
+ alias: :h
23
+ }
24
+ )
8
25
 
9
- N = (ARGV.first || 10).to_i
10
- SHELL = File.basename(ARGV.last || ENV["SHELL"] || "bash")
26
+ abort parsed.help if parsed.options.help
27
+
28
+ if parsed.options.version
29
+ abort File.read(File.expand_path("../VERSION", __dir__))
30
+ end
11
31
 
12
32
  HISTORY =
13
- case SHELL
33
+ case parsed.options.shell.to_s.downcase
14
34
  when "fish"
15
35
  File
16
36
  .read("#{Dir.home}/.local/share/fish/fish_history")
@@ -22,13 +42,12 @@ HISTORY =
22
42
  when "zsh"
23
43
  File.read("#{Dir.home}/.zsh_history").lines.map(&:strip)
24
44
  else
25
- raise NotImplementedError, SHELL
45
+ raise NotImplementedError, parsed.options.shell.to_s.downcase
26
46
  end
27
47
 
28
48
  puts(
29
49
  HISTORY
30
- .map(&:split)
31
- .map(&:first)
50
+ .map { |line| line.split.first }
32
51
  .tally
33
52
  .to_a
34
53
  .sort_by(&:last)
@@ -40,5 +59,5 @@ puts(
40
59
  "#{(command_count * 100 / HISTORY.size.to_f).round(3)}%\t" \
41
60
  "#{command}"
42
61
  end
43
- .first(N)
62
+ .first(parsed.options.limit)
44
63
  )
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dorian-top
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dorian Marié
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-22 00:00:00.000000000 Z
11
+ date: 2024-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dorian-arguments
@@ -43,9 +43,9 @@ require_paths:
43
43
  - lib
44
44
  required_ruby_version: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ">="
46
+ - - '='
47
47
  - !ruby/object:Gem::Version
48
- version: '0'
48
+ version: 3.3.4
49
49
  required_rubygems_version: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - ">="