binp 1.0.1 → 2.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a4de217cf49fbe9ad1552cc60a1ae2540bae88b80d0928c68e1cd75420cddd5
4
- data.tar.gz: 727df670211100ce6c543a1cef18d79de8c6cd0823a9d5437fecc6a68ee915af
3
+ metadata.gz: 2d49a717a9a7b1fcd593c87782a690933f3c9a3042bf334dd11599bdec38f2c9
4
+ data.tar.gz: 9947217a434b646fee53adbe3b5aa36f0be3139fccdd2942ca80ea7efb1a7de8
5
5
  SHA512:
6
- metadata.gz: 1d04b3140f4ca1141227a9c36cc9a55b3a57b5d1720c9c93a7422d69f3a4949cdd8b4e73364b8f5601e63c019cf7e877f9098a5337f9cba4b456c02db9a7efee
7
- data.tar.gz: aa95893807847f192e40f580be9757e30a2fb63c005f0781b0929d5e4e5e6cf61e0762aa9a3b6e43d7c3bf9bc91918a5fac044f82b039d24dd5a05f1f8434947
6
+ metadata.gz: a9da24affaff3ac7a84476674ebafc5eb13dabba3ada9c2e18ba7e3b1c0a382d008f1bef9405a1c4b8907a4558a9e2ff32461a516d7b5dbeb30c37bea39a3b16
7
+ data.tar.gz: b2ceebf7ce2c19abe698e45617407acd379818052fdd6b6f3a95ac58a38b63653f4ed34399f68a3bb5c03d47772383ea5a209c96f5c5fc860d85f3e92a0b0207
@@ -1,12 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- binp (1.0.1)
4
+ binp (2.0.0)
5
+ formatador
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
8
9
  specs:
9
10
  docile (1.3.2)
11
+ formatador (0.2.5)
10
12
  power_assert (1.2.0)
11
13
  rake (12.3.3)
12
14
  simplecov (0.18.5)
data/README.md CHANGED
@@ -80,7 +80,7 @@ $ ruby binary_parser.rb -c setting.yaml example.bin | jq '.'
80
80
 
81
81
  # TODO:
82
82
 
83
- - [ ] : テーブル形式で表示
83
+ - [x] : テーブル形式で表示
84
84
  - [ ] : 文字列型サポート
85
85
  - [ ] : UTF8
86
86
  - [ ] : ビットフラグサポート
@@ -25,6 +25,8 @@ Gem::Specification.new do |spec|
25
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
26
  spec.require_paths = ["lib"]
27
27
 
28
+ spec.add_dependency 'formatador'
29
+
28
30
  spec.add_development_dependency 'test-unit'
29
31
  spec.add_development_dependency 'simplecov'
30
32
  end
@@ -40,33 +40,33 @@ class BinParserElement
40
40
  # see: https://docs.ruby-lang.org/ja/latest/doc/pack_template.html
41
41
  def self.calculate_unpack_template_string(type, endianness)
42
42
 
43
- # ����ȏ���
43
+ # 特殊な条件
44
44
  case type
45
45
  when BinParserElement::Type::UINT16
46
46
  if endianness == BinParserElement::Endianness::BIG_ENDIAN
47
- # �r�b�O�G���f�B�A���A�����Ȃ� 16 bit ����
47
+ # ビッグエンディアン、符号なし 16 bit 整数
48
48
  return 'n'
49
49
  else
50
- # ���g���G���f�B�A���A�����Ȃ� 16 bit ����
50
+ # リトルエンディアン、符号なし 16 bit 整数
51
51
  return 'v'
52
52
  end
53
53
  when BinParserElement::Type::UINT32
54
54
  if endianness == BinParserElement::Endianness::BIG_ENDIAN
55
- # �r�b�O�G���f�B�A���A�������� 32 bit ����
55
+ # ビッグエンディアン、符号あり 32 bit 整数
56
56
  return 'N'
57
57
  else
58
- # ���g���G���f�B�A���A�������� 32 bit ����
58
+ # リトルエンディアン、符号あり 32 bit 整数
59
59
  return 'V'
60
60
  end
61
61
  when BinParserElement::Type::UINT8
62
- # �����Ȃ� 8 bit ����
62
+ # 符号なし 8 bit 整数
63
63
  return 'C'
64
64
  when BinParserElement::Type::INT8
65
- # �������� 8 bit ����
65
+ # 符号あり 8 bit 整数
66
66
  return 'c'
67
67
  end
68
68
 
69
- # ���̑�
69
+ # その他
70
70
  type[:value] + endianness[:value]
71
71
  end
72
72
 
@@ -1,4 +1,5 @@
1
1
  # encoding: UTF-8
2
+ require 'formatador'
2
3
  require 'json'
3
4
  require 'optparse'
4
5
  require 'yaml'
@@ -18,18 +19,25 @@ class Main
18
19
  raw_result = BinParser.parse(uint8_array, config)
19
20
 
20
21
  # 出力用に加工して出力
21
- puts raw_result.map { |e|
22
+ result = raw_result.map { |e|
22
23
  e['type'] = e['type'][:name]
23
24
  e['endianness'] = e['endianness'][:name]
24
25
  e
25
- }.to_json.to_s
26
+ }
27
+ if !opts[:all]
28
+ result.map! { |e| { 'name' => e['name'], 'value' => e['value']} }
29
+ end
30
+ Formatador.display_compact_table(result)
26
31
  end
27
32
 
28
33
  def self.parse_option(argv)
29
- options = {}
34
+ options = {
35
+ all: false
36
+ }
30
37
  op = OptionParser.new
31
38
 
32
39
  op.on('-c VALUE', '--config VALUE', '設定ファイルパス') { |v| options[:config] = v }
40
+ op.on('-a', '--all', 'name, value 以外のすべての項目(endianness, offset, size, type)を表示する') { |v| options[:all] = true }
33
41
  op.parse!(argv)
34
42
 
35
43
  [options, argv]
@@ -1,3 +1,3 @@
1
1
  module Binp
2
- VERSION = "1.0.1"
2
+ VERSION = "2.0.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: binp
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - mikoto2000
@@ -10,6 +10,20 @@ bindir: exe
10
10
  cert_chain: []
11
11
  date: 2020-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: formatador
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: test-unit
15
29
  requirement: !ruby/object:Gem::Requirement