Top Level Namespace

Defined Under Namespace

Modules: CBOR, CBOR_DIAG, Half Classes: Array, Float, Hash, NilClass, Object, String, Symbol

Constant Summary collapse

UPPERCASE_HEX =
ENV["UPPERCASE_HEX"]
HEX_FORMAT =
UPPERCASE_HEX ? "%02X" : "%02x"
CBOR_DIAGParser =
CBOR_DIAG::Parser

Instance Method Summary collapse

Instance Method Details

#cbor_diagnostic_item_processing(o, options) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/cbor-diagnostic-helper.rb', line 26

def cbor_diagnostic_item_processing(o, options)
  o = o.to_packed_cbor if /p/ === options
  o = o.to_unpacked_cbor if /q/ === options
  o = o.cbor_pre_canonicalize if /c/ === options
  o = o.cbor_prepare_deterministic if /d/ === options
  o
end

#cbor_diagnostic_output(o, options) ⇒ Object



34
35
36
37
38
39
40
41
42
43
# File 'lib/cbor-diagnostic-helper.rb', line 34

def cbor_diagnostic_output(o, options)
  o = cbor_diagnostic_item_processing(o, options)
  o.cbor_diagnostic(try_decode_embedded: /e/ === options,
                    bytes_as_text: /t/ === options,
                    utf8: /u/ === options,
                    nan: /n/ === options,
                    no_nan: /N/ === options,
                    terminator: /T/ === options,
                    wrap: if /w([0-9]+)/ === options; $1.to_i; end)
end

#cbor_diagnostic_process_args(chars) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/cbor-diagnostic-helper.rb', line 5

def cbor_diagnostic_process_args(chars)
  options = ''
  while /\A-(?:([#{chars}]+)|([#{chars}]*)([aw])(.*))\z/ === ARGV[0]
    ARGV.shift
    options << $1 if $1
    options << $2 if $2
    if (o = $3) && (s = $4)
      s = ARGV.shift if s == ""
      case o
      when "a"
        s.split(",").each do |a|
          require "cbor-diagnostic-app/#{a}"
        end
      when "w"
        options << "w#{s.to_i}"
      end
    end
  end
  options
end