cbor-diag 0.5.5 → 0.5.10

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: b5412d8c84a3817a547ef58b0533cc2d6669a4bf348ca89e47b9df48b7bb3dfe
4
- data.tar.gz: 335516f432fc310852e56ace91cbdb2ed0c141883d877b2c62aef1557cf856e4
3
+ metadata.gz: 6860bf8b982a54e759b642bce8fcfc410c944ffb194ebd76942a9d791108d2f2
4
+ data.tar.gz: d26df44cd7ff9616bf8ad80cc2785d633bdeb86e338084c3ce7b71fc4467ab5c
5
5
  SHA512:
6
- metadata.gz: a8f5c21b327d527fd3682d97a52684a3cf1526c00997e6978c6252ca53c495ae01722a437f15ff2377e619e429f5a89ed01732ab953edfdbe7ac7c345a77be30
7
- data.tar.gz: 3d0e26906c4d3e46f415db082ffc95c0589fd9c430abcd2cf1199f4d789ace055978d9678f88d55dfa0fba1a583b1b6c23aa784baae3828a4c504aa32ab39bde
6
+ metadata.gz: 1562d3a70922fd80e4a4721e377ae4de759bf018727f9918c4181e320427f39e03610ad1c9df0ca7189a8ad4cb6457b35ccc464fdefe883375f82ed6a91fb77f
7
+ data.tar.gz: 54a47f48c5fdea45e52c9e408118978ba924586835c7fe1efe03c1ece3a5c70ae72f09a140aecde8a6a06882ac822a35ad20de4451b388e3bcc7b1cd29ffb1f3
@@ -1,7 +1,13 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'cbor-diagnostic'
3
3
 
4
+ options = ''
5
+ while /\A-([et]+)\z/ === ARGV[0]
6
+ options << $1
7
+ ARGV.shift
8
+ end
9
+
4
10
  ARGF.binmode
5
11
  i = ARGF.read
6
12
  o = CBOR.decode(i)
7
- puts o.cbor_diagnostic
13
+ puts o.cbor_diagnostic(try_decode_embedded: /e/ === options, bytes_as_text: /t/ === options)
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env ruby
2
+ require 'cbor-diagnostic'
3
+
4
+ options = ''
5
+ while /\A-([et]+)\z/ === ARGV[0]
6
+ options << $1
7
+ ARGV.shift
8
+ end
9
+
10
+ ARGF.binmode
11
+ i = ARGF.read
12
+ while !i.empty?
13
+ o, i = CBOR.decode_with_rest(i)
14
+ out = o.cbor_diagnostic(try_decode_embedded: /e/ === options, bytes_as_text: /t/ === options)
15
+ if i.empty?
16
+ puts out
17
+ else
18
+ print out << ', '
19
+ end
20
+ end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cbor-diag"
3
- s.version = "0.5.5"
3
+ s.version = "0.5.10"
4
4
  s.summary = "CBOR (Concise Binary Object Representation) diagnostic notation"
5
5
  s.description = %q{cbor-diag implements diagnostic notation for CBOR, RFC 7049}
6
6
  s.author = "Carsten Bormann"
@@ -2265,7 +2265,7 @@ module CBOR_DIAG
2265
2265
  module B64string2
2266
2266
  #"
2267
2267
  def to_rb;
2268
- t = s.text_value.chars.each_slice(4).map(&:join)
2268
+ t = s.text_value.gsub(/\s/, '').chars.each_slice(4).map(&:join)
2269
2269
  if last = t[-1]
2270
2270
  last << "=" * (4 - last.size)
2271
2271
  end
@@ -2297,11 +2297,11 @@ module CBOR_DIAG
2297
2297
  i2, s2 = index, []
2298
2298
  s3, i3 = [], index
2299
2299
  loop do
2300
- if has_terminal?(@regexps[gr = '\A[0-9a-zA-Z_\\-+/]'] ||= Regexp.new(gr), :regexp, index)
2300
+ if has_terminal?(@regexps[gr = '\A[0-9a-zA-Z_\\-+/\\s]'] ||= Regexp.new(gr), :regexp, index)
2301
2301
  r4 = true
2302
2302
  @index += 1
2303
2303
  else
2304
- terminal_parse_failure('[0-9a-zA-Z_\\-+/]')
2304
+ terminal_parse_failure('[0-9a-zA-Z_\\-+/\\s]')
2305
2305
  r4 = nil
2306
2306
  end
2307
2307
  if r4
@@ -2315,11 +2315,11 @@ module CBOR_DIAG
2315
2315
  if r3
2316
2316
  s5, i5 = [], index
2317
2317
  loop do
2318
- if has_terminal?(@regexps[gr = '\A[=]'] ||= Regexp.new(gr), :regexp, index)
2318
+ if has_terminal?(@regexps[gr = '\A[=\\s]'] ||= Regexp.new(gr), :regexp, index)
2319
2319
  r6 = true
2320
2320
  @index += 1
2321
2321
  else
2322
- terminal_parse_failure('[=]')
2322
+ terminal_parse_failure('[=\\s]')
2323
2323
  r6 = nil
2324
2324
  end
2325
2325
  if r6
@@ -46,6 +46,20 @@ class String
46
46
  "(_ #{lengths.map{|l| r = self[pos, l].cbor_diagnostic(options); pos += l; r}.join(", ")})"
47
47
  else
48
48
  if encoding == Encoding::BINARY
49
+ if options[:try_decode_embedded] && self != ''
50
+ begin
51
+ rest = self
52
+ result = []
53
+ while rest != ''
54
+ dv, rest = CBOR.decode_with_rest(rest)
55
+ result << dv
56
+ end
57
+ return "<< #{result.map{|x| x.cbor_diagnostic(options)}.join(", ")} >>"
58
+ rescue RuntimeError => e
59
+ # that didn't work out, so continue with other options
60
+ # puts e.backtrace
61
+ end
62
+ end
49
63
  if options[:bytes_as_text] && (u8 = dup.force_encoding(Encoding::UTF_8)).valid_encoding?
50
64
  "'#{u8.cbor_diagnostic(options)[1..-2].gsub("'", "\\\\'")}'" # \' is a backref, so needs \\'
51
65
  else
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cbor-diag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.5
4
+ version: 0.5.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-21 00:00:00.000000000 Z
11
+ date: 2021-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -74,6 +74,7 @@ executables:
74
74
  - cbor2pretty.rb
75
75
  - cbor2yaml.rb
76
76
  - cborleader2diag.rb
77
+ - cborseq2diag.rb
77
78
  - cborseq2json.rb
78
79
  - cborseq2neatjson.rb
79
80
  - cborseq2yaml.rb
@@ -92,6 +93,7 @@ files:
92
93
  - bin/cbor2pretty.rb
93
94
  - bin/cbor2yaml.rb
94
95
  - bin/cborleader2diag.rb
96
+ - bin/cborseq2diag.rb
95
97
  - bin/cborseq2json.rb
96
98
  - bin/cborseq2neatjson.rb
97
99
  - bin/cborseq2yaml.rb
@@ -112,7 +114,7 @@ homepage: http://cbor.io/
112
114
  licenses:
113
115
  - Apache-2.0
114
116
  metadata: {}
115
- post_install_message:
117
+ post_install_message:
116
118
  rdoc_options: []
117
119
  require_paths:
118
120
  - lib
@@ -127,9 +129,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
129
  - !ruby/object:Gem::Version
128
130
  version: '0'
129
131
  requirements: []
130
- rubyforge_project:
131
- rubygems_version: 2.7.6
132
- signing_key:
132
+ rubygems_version: 3.2.3
133
+ signing_key:
133
134
  specification_version: 4
134
135
  summary: CBOR (Concise Binary Object Representation) diagnostic notation
135
136
  test_files: []