cbor-diag 0.8.4 → 0.8.6

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: 4a3163ba242d988fe3de24ae969175fb395140fcd471c62d87ad6a63375295b3
4
- data.tar.gz: 490fe38bed173ca0f43d8beb58b82175b3d8bd9afecafe43990ce1863e2dffad
3
+ metadata.gz: 80b9e87624d0c6106d5a65be87ee3189f401f65064e938e0400456245bcb15e9
4
+ data.tar.gz: 987e5878c4106c5d3165e493313291588feaa7c9ed45a6496eca29f4a77ad768
5
5
  SHA512:
6
- metadata.gz: 808cdfe201f5233f1f4992d479e7b3d582532a0730ef8aeac946cd3cb1be087035af7354c296b97718fae9682eba37ae2b61c3a18183a2715de489141d338c65
7
- data.tar.gz: 8c45f267a209a892bc2f69bdd4a4ad24f15838ca164297734e4d82b51930c70b6d3a5d99384a22b9e530ded365ee6e9441a050efc854bd81ee9169f3c230a366
6
+ metadata.gz: 8ddabdc1262691e8d13bbe1e08a391592454bb5d05d6b475053a7a4f5f8b9a8e0351552f1fe08c3911d4deab7322b4dee80e44d21d163924872eca439b20f6ef
7
+ data.tar.gz: 92ec952d61e7ade12ddb663040fabab0826e4d47f51ecf1a20f72521e33d2929cc1fb7d8c4827849ef578a5a76d4bba11da8353c8e115acbe9780ae8119e328d
data/cbor-diag.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cbor-diag"
3
- s.version = "0.8.4"
3
+ s.version = "0.8.6"
4
4
  s.summary = "CBOR (Concise Binary Object Representation) diagnostic notation"
5
5
  s.description = %q{cbor-diag implements diagnostic notation for CBOR, RFC 8949 and RFC 8742}
6
6
  s.author = "Carsten Bormann"
@@ -1732,11 +1732,10 @@ module CBOR_DIAG
1732
1732
  end
1733
1733
 
1734
1734
  module BstringPart2
1735
- #"
1736
- def partval
1737
- v = s.text_value
1738
- {"b" => "\b", "f" => "\f", "n" => "\n", "r" => "\r", "t" => "\t"}[v] || v
1739
- end
1735
+ def partval
1736
+ v = s.text_value
1737
+ {"b" => "\b", "f" => "\f", "n" => "\n", "r" => "\r", "t" => "\t"}[v] || v
1738
+ end
1740
1739
  end
1741
1740
 
1742
1741
  module BstringPart3
@@ -1825,11 +1824,11 @@ module CBOR_DIAG
1825
1824
  end
1826
1825
  s3 << r4
1827
1826
  if r4
1828
- if has_terminal?(@regexps[gr = '\A["\\\\/bfnrt]'] ||= Regexp.new(gr), :regexp, index)
1827
+ if has_terminal?(@regexps[gr = '\A[\'\\\\/bfnrt]'] ||= Regexp.new(gr), :regexp, index)
1829
1828
  r5 = true
1830
1829
  @index += 1
1831
1830
  else
1832
- terminal_parse_failure('["\\\\/bfnrt]')
1831
+ terminal_parse_failure('[\'\\\\/bfnrt]')
1833
1832
  r5 = nil
1834
1833
  end
1835
1834
  s3 << r5
@@ -2147,23 +2146,21 @@ module CBOR_DIAG
2147
2146
  end
2148
2147
 
2149
2148
  module Embedded0
2150
- def text
2151
- elements[0]
2152
- end
2153
-
2154
- end
2155
-
2156
- module Embedded1
2157
2149
  def s
2158
2150
  elements[1]
2159
2151
  end
2160
2152
 
2161
2153
  end
2162
2154
 
2163
- module Embedded2
2155
+ module Embedded1
2164
2156
  def to_rb
2165
- if se = s.elements
2166
- [se[0], *se[1].elements].map{|x| CBOR.encode(x.to_rb)}.join.b
2157
+ if se = s
2158
+ sn = se.to_rb
2159
+ if CBOR::Sequence === sn
2160
+ sn.to_cborseq
2161
+ else
2162
+ CBOR.encode(sn)
2163
+ end
2167
2164
  else
2168
2165
  "".b
2169
2166
  end
@@ -2191,29 +2188,7 @@ module CBOR_DIAG
2191
2188
  end
2192
2189
  s0 << r1
2193
2190
  if r1
2194
- i3, s3 = index, []
2195
- r4 = _nt_text
2196
- s3 << r4
2197
- if r4
2198
- s5, i5 = [], index
2199
- loop do
2200
- r6 = _nt_emb1
2201
- if r6
2202
- s5 << r6
2203
- else
2204
- break
2205
- end
2206
- end
2207
- r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
2208
- s3 << r5
2209
- end
2210
- if s3.last
2211
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
2212
- r3.extend(Embedded0)
2213
- else
2214
- @index = i3
2215
- r3 = nil
2216
- end
2191
+ r3 = _nt_text
2217
2192
  if r3
2218
2193
  r2 = r3
2219
2194
  else
@@ -2222,19 +2197,19 @@ module CBOR_DIAG
2222
2197
  s0 << r2
2223
2198
  if r2
2224
2199
  if (match_len = has_terminal?(">>", false, index))
2225
- r7 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2200
+ r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2226
2201
  @index += match_len
2227
2202
  else
2228
2203
  terminal_parse_failure('">>"')
2229
- r7 = nil
2204
+ r4 = nil
2230
2205
  end
2231
- s0 << r7
2206
+ s0 << r4
2232
2207
  end
2233
2208
  end
2234
2209
  if s0.last
2235
2210
  r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2211
+ r0.extend(Embedded0)
2236
2212
  r0.extend(Embedded1)
2237
- r0.extend(Embedded2)
2238
2213
  else
2239
2214
  @index = i0
2240
2215
  r0 = nil
@@ -2245,56 +2220,6 @@ module CBOR_DIAG
2245
2220
  r0
2246
2221
  end
2247
2222
 
2248
- module Emb10
2249
- def s
2250
- elements[1]
2251
- end
2252
- end
2253
-
2254
- module Emb11
2255
- def to_rb
2256
- s.to_rb
2257
- end
2258
- end
2259
-
2260
- def _nt_emb1
2261
- start_index = index
2262
- if node_cache[:emb1].has_key?(index)
2263
- cached = node_cache[:emb1][index]
2264
- if cached
2265
- node_cache[:emb1][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2266
- @index = cached.interval.end
2267
- end
2268
- return cached
2269
- end
2270
-
2271
- i0, s0 = index, []
2272
- if (match_len = has_terminal?(",", false, index))
2273
- r1 = true
2274
- @index += match_len
2275
- else
2276
- terminal_parse_failure('","')
2277
- r1 = nil
2278
- end
2279
- s0 << r1
2280
- if r1
2281
- r2 = _nt_text
2282
- s0 << r2
2283
- end
2284
- if s0.last
2285
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2286
- r0.extend(Emb10)
2287
- r0.extend(Emb11)
2288
- else
2289
- @index = i0
2290
- r0 = nil
2291
- end
2292
-
2293
- node_cache[:emb1][start_index] = r0
2294
-
2295
- r0
2296
- end
2297
-
2298
2223
  module Hexdigit0
2299
2224
  def dig
2300
2225
  elements[0]
@@ -2480,6 +2405,38 @@ module CBOR_DIAG
2480
2405
  r0
2481
2406
  end
2482
2407
 
2408
+ def _nt_hbstring
2409
+ start_index = index
2410
+ if node_cache[:hbstring].has_key?(index)
2411
+ cached = node_cache[:hbstring][index]
2412
+ if cached
2413
+ node_cache[:hbstring][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2414
+ @index = cached.interval.end
2415
+ end
2416
+ return cached
2417
+ end
2418
+
2419
+ i0 = index
2420
+ r1 = _nt_hstring
2421
+ if r1
2422
+ r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2423
+ r0 = r1
2424
+ else
2425
+ r2 = _nt_bstring
2426
+ if r2
2427
+ r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
2428
+ r0 = r2
2429
+ else
2430
+ @index = i0
2431
+ r0 = nil
2432
+ end
2433
+ end
2434
+
2435
+ node_cache[:hbstring][start_index] = r0
2436
+
2437
+ r0
2438
+ end
2439
+
2483
2440
  module B64string0
2484
2441
  end
2485
2442
 
@@ -3142,13 +3099,17 @@ module CBOR_DIAG
3142
3099
  end
3143
3100
 
3144
3101
  module Streamstring0
3145
- def ows
3102
+ def ows1
3146
3103
  elements[1]
3147
3104
  end
3148
3105
 
3149
3106
  def string
3150
3107
  elements[2]
3151
3108
  end
3109
+
3110
+ def ows2
3111
+ elements[3]
3112
+ end
3152
3113
  end
3153
3114
 
3154
3115
  module Streamstring1
@@ -3156,17 +3117,13 @@ module CBOR_DIAG
3156
3117
  elements[0]
3157
3118
  end
3158
3119
 
3159
- def ows1
3120
+ def ows
3160
3121
  elements[1]
3161
3122
  end
3162
3123
 
3163
3124
  def an
3164
3125
  elements[2]
3165
3126
  end
3166
-
3167
- def ows2
3168
- elements[3]
3169
- end
3170
3127
  end
3171
3128
 
3172
3129
  module Streamstring2
@@ -3196,31 +3153,31 @@ module CBOR_DIAG
3196
3153
  end
3197
3154
 
3198
3155
  module Streamstring4
3199
- def ows
3156
+ def ows1
3200
3157
  elements[1]
3201
3158
  end
3202
3159
 
3203
- def hstring
3160
+ def hbstring
3204
3161
  elements[2]
3205
3162
  end
3163
+
3164
+ def ows2
3165
+ elements[3]
3166
+ end
3206
3167
  end
3207
3168
 
3208
3169
  module Streamstring5
3209
- def hstring
3170
+ def hbstring
3210
3171
  elements[0]
3211
3172
  end
3212
3173
 
3213
- def ows1
3174
+ def ows
3214
3175
  elements[1]
3215
3176
  end
3216
3177
 
3217
3178
  def an
3218
3179
  elements[2]
3219
3180
  end
3220
-
3221
- def ows2
3222
- elements[3]
3223
- end
3224
3181
  end
3225
3182
 
3226
3183
  module Streamstring6
@@ -3241,7 +3198,7 @@ module CBOR_DIAG
3241
3198
  module Streamstring7
3242
3199
  def to_rb
3243
3200
  r = if e = a1.elements
3244
- [e[0].to_rb] + e[2].elements.map {|x| x.hstring.to_rb }
3201
+ [e[0].to_rb] + e[2].elements.map {|x| x.hbstring.to_rb }
3245
3202
  else
3246
3203
  []
3247
3204
  end
@@ -3310,6 +3267,10 @@ module CBOR_DIAG
3310
3267
  if r12
3311
3268
  r13 = _nt_string
3312
3269
  s10 << r13
3270
+ if r13
3271
+ r14 = _nt_ows
3272
+ s10 << r14
3273
+ end
3313
3274
  end
3314
3275
  end
3315
3276
  if s10.last
@@ -3327,10 +3288,6 @@ module CBOR_DIAG
3327
3288
  end
3328
3289
  r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
3329
3290
  s6 << r9
3330
- if r9
3331
- r14 = _nt_ows
3332
- s6 << r14
3333
- end
3334
3291
  end
3335
3292
  end
3336
3293
  if s6.last
@@ -3393,7 +3350,7 @@ module CBOR_DIAG
3393
3350
  s16 << r20
3394
3351
  if r20
3395
3352
  i21, s21 = index, []
3396
- r22 = _nt_hstring
3353
+ r22 = _nt_hbstring
3397
3354
  s21 << r22
3398
3355
  if r22
3399
3356
  r23 = _nt_ows
@@ -3414,8 +3371,12 @@ module CBOR_DIAG
3414
3371
  r27 = _nt_ows
3415
3372
  s25 << r27
3416
3373
  if r27
3417
- r28 = _nt_hstring
3374
+ r28 = _nt_hbstring
3418
3375
  s25 << r28
3376
+ if r28
3377
+ r29 = _nt_ows
3378
+ s25 << r29
3379
+ end
3419
3380
  end
3420
3381
  end
3421
3382
  if s25.last
@@ -3433,10 +3394,6 @@ module CBOR_DIAG
3433
3394
  end
3434
3395
  r24 = instantiate_node(SyntaxNode,input, i24...index, s24)
3435
3396
  s21 << r24
3436
- if r24
3437
- r29 = _nt_ows
3438
- s21 << r29
3439
- end
3440
3397
  end
3441
3398
  end
3442
3399
  if s21.last
data/lib/cbor-pure.rb CHANGED
@@ -70,7 +70,7 @@ module CBOR
70
70
  end
71
71
  alias_method :inspect, :to_s
72
72
  def to_cborseq
73
- CBOR.encode_seq(self)
73
+ CBOR.encode_seq(elements)
74
74
  end
75
75
  end
76
76
 
@@ -212,7 +212,7 @@ module CBOR
212
212
  d.each {|k, v| add(k); add(v)}
213
213
  end
214
214
  else
215
- raise("Don't know how to encode #{d.inspect}")
215
+ raise("Don't know how to encode »#{d.inspect}« (#{d.class})")
216
216
  end
217
217
  self
218
218
  end
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.8.4
4
+ version: 0.8.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-05 00:00:00.000000000 Z
11
+ date: 2023-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -190,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
190
  - !ruby/object:Gem::Version
191
191
  version: '0'
192
192
  requirements: []
193
- rubygems_version: 3.4.2
193
+ rubygems_version: 3.4.6
194
194
  signing_key:
195
195
  specification_version: 4
196
196
  summary: CBOR (Concise Binary Object Representation) diagnostic notation