dorian-top 0.2.3 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
  - - ">="