binp 1.0.1 → 2.0.0

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