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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 992a5a65042924b7f6b7c1ad99966c61b2a04eee47cbac20f5aff7be400e84e9
4
- data.tar.gz: ae5fb3ecb286ba424bb3debf7329bc23ea913ff946a5ee86b04f1e56e27d78b6
3
+ metadata.gz: 6db7c49cb1da0de6bcd54718303b1e7336f07cc5745e08756e1e94b55046036b
4
+ data.tar.gz: 2278bcb9d4245fdfa89b999702e7c11b96bc3b8ef6028fbd2a7a275dabcc290d
5
5
  SHA512:
6
- metadata.gz: 1624c99ac25d6f2a40e5a35cc4d1ad44bab305c8b77b36014cb83f283f4d187658d73785faaccb2908459453da230931e5c13666e6dad73f7fc95a2eb132dd49
7
- data.tar.gz: c9651055fcb58198ee6498b38c10d5c06dfa155826ddf30f29c304939218b721a44178ccd614d51d878180552740685765825be9da1b01145458a8e7b1e6a7f8
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
- loop { LabelSelector.choose_from(list) }
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:, format: :tty)
288
+ def display_list(list:, detail: false, format: :tty)
282
289
  case format
283
- when :tty
290
+ in :tty
284
291
  puts list.map { ListColorizer.call(_1.to_s(detail: detail)) }.join("\n")
285
- when :lab
292
+ in :lab
286
293
  puts list.to_lab
287
- else
288
- error "Unkown format #{format}"
294
+ in :json
295
+ puts list.to_json
289
296
  end
290
297
  end
291
298
 
@@ -3,8 +3,13 @@ require_relative "selecta"
3
3
  require_relative "list_colorizer"
4
4
 
5
5
  class LabelSelector
6
- def self.choose_from(list)
7
- view = selecta(list)
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 self.selecta(list)
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 self.clear_screen
25
+ def clear_screen
24
26
  print "\e[2J\e[H"
25
27
  end
26
28
  end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Dcm
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.2"
3
3
  end
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.0
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-05 00:00:00.000000000 Z
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.0
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.0
26
+ version: 0.2.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: thor
29
29
  requirement: !ruby/object:Gem::Requirement