dcm 0.1.0 → 0.1.2
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 +4 -4
- data/lib/cli.rb +16 -9
- data/lib/label_selector.rb +10 -8
- data/lib/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6db7c49cb1da0de6bcd54718303b1e7336f07cc5745e08756e1e94b55046036b
|
4
|
+
data.tar.gz: 2278bcb9d4245fdfa89b999702e7c11b96bc3b8ef6028fbd2a7a275dabcc290d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d29a0eca7b6249f94e5cee2ac7c1806eb9278f80efcc40881801a9ccd55f2235b6070aa8ccb68b6fa451e998a87062094036717dc44eda2b99f78395945fd644
|
7
|
+
data.tar.gz: f45c51b8ad651ba05103c1870d660c4520e505a620e59f62941d68afaa4a58c91860cfbae344e8a128480e89a45d08e534c0ca93598115ae0a8b1e7dc4c050aa
|
data/lib/cli.rb
CHANGED
@@ -15,13 +15,15 @@ require_relative "variant_filter"
|
|
15
15
|
require_relative "core_ext"
|
16
16
|
require_relative "version"
|
17
17
|
|
18
|
-
RubyVM::YJIT.enable
|
18
|
+
if defined?(RubyVM::YJIT) && RubyVM::YJIT.respond_to?(:enable)
|
19
|
+
RubyVM::YJIT.enable
|
20
|
+
end
|
19
21
|
|
20
22
|
module Dcm
|
21
23
|
|
22
24
|
class CLI < Thor
|
23
25
|
|
24
|
-
def help
|
26
|
+
def help(cmd)
|
25
27
|
super
|
26
28
|
puts <<~EOS
|
27
29
|
Options:
|
@@ -36,6 +38,11 @@ module Dcm
|
|
36
38
|
display_list(list: parse_file(file), detail: options[:oneline] ? :onelinefull : true)
|
37
39
|
end
|
38
40
|
|
41
|
+
desc "json FILE", "Convert all labels in FILE to JSON"
|
42
|
+
def json(file=nil)
|
43
|
+
display_list(list: parse_file(file), format: :json)
|
44
|
+
end
|
45
|
+
|
39
46
|
desc "new [SPEC]", "Create a new dcm from scratch"
|
40
47
|
option :indented, aliases: ["-i"], type: :boolean, default: false
|
41
48
|
def new(*spec)
|
@@ -49,7 +56,8 @@ module Dcm
|
|
49
56
|
desc "liveview FILE", "Live search and view labels in FILE"
|
50
57
|
def liveview(file=nil)
|
51
58
|
list = parse_file(file)
|
52
|
-
|
59
|
+
selector = LabelSelector.new(list)
|
60
|
+
loop { selector.choose }
|
53
61
|
end
|
54
62
|
|
55
63
|
desc "creta2begu FILTER CODING FILE", "Convert a hierarchical DCM to a flat DCM"
|
@@ -86,7 +94,6 @@ module Dcm
|
|
86
94
|
option :lab, type: :boolean, aliases: ["-l"]
|
87
95
|
def list(file=nil)
|
88
96
|
display_list(list: parse_file(file),
|
89
|
-
detail: false,
|
90
97
|
format: (options[:lab] ? :lab : :tty))
|
91
98
|
end
|
92
99
|
|
@@ -278,14 +285,14 @@ module Dcm
|
|
278
285
|
Ecu::LabelList.new([label])
|
279
286
|
end
|
280
287
|
|
281
|
-
def display_list(list:, detail
|
288
|
+
def display_list(list:, detail: false, format: :tty)
|
282
289
|
case format
|
283
|
-
|
290
|
+
in :tty
|
284
291
|
puts list.map { ListColorizer.call(_1.to_s(detail: detail)) }.join("\n")
|
285
|
-
|
292
|
+
in :lab
|
286
293
|
puts list.to_lab
|
287
|
-
|
288
|
-
|
294
|
+
in :json
|
295
|
+
puts list.to_json
|
289
296
|
end
|
290
297
|
end
|
291
298
|
|
data/lib/label_selector.rb
CHANGED
@@ -3,8 +3,13 @@ require_relative "selecta"
|
|
3
3
|
require_relative "list_colorizer"
|
4
4
|
|
5
5
|
class LabelSelector
|
6
|
-
def
|
7
|
-
|
6
|
+
def initialize(list)
|
7
|
+
@keys = list.map(&:name)
|
8
|
+
@values = list.map { |e| ListColorizer.call(e.to_s(detail: true)) }
|
9
|
+
end
|
10
|
+
|
11
|
+
def choose
|
12
|
+
view = selecta(@keys, @values)
|
8
13
|
print view
|
9
14
|
STDIN.gets
|
10
15
|
rescue Interrupt => e
|
@@ -12,15 +17,12 @@ class LabelSelector
|
|
12
17
|
exit 0
|
13
18
|
end
|
14
19
|
|
15
|
-
def
|
16
|
-
clear_screen
|
17
|
-
Selecta.new.main_api(keys: list.map(&:name),
|
18
|
-
values: list.map { |e| ListColorizer.call(e.to_s(detail: true)) },
|
19
|
-
options: { height: "full" })
|
20
|
+
def selecta(keys, values)
|
20
21
|
clear_screen
|
22
|
+
Selecta.new.main_api(keys: keys, values: values, options: { height: "full" }).tap { clear_screen }
|
21
23
|
end
|
22
24
|
|
23
|
-
def
|
25
|
+
def clear_screen
|
24
26
|
print "\e[2J\e[H"
|
25
27
|
end
|
26
28
|
end
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dcm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonas Mueller
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-04-
|
11
|
+
date: 2025-04-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: automotive-ecu
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.2.
|
19
|
+
version: 0.2.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.2.
|
26
|
+
version: 0.2.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: thor
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|