Module: EchSpec::CLI::EchConfigPrinter
Instance Method Summary collapse
- #evaluate_widths(all_pairs) ⇒ Object
-
#field_pairs(c) ⇒ Object
rubocop: disable Metrics/AbcSize.
- #print_ech_configs(ech_configs) ⇒ Object
- #print_field(label, value, label_width) ⇒ Object
Instance Method Details
#evaluate_widths(all_pairs) ⇒ Object
14 15 16 17 18 |
# File 'lib/echspec/cli/ech_config_printer.rb', line 14 def evaluate_widths(all_pairs) label_width = all_pairs.flat_map { |pairs| pairs.map { |label, _| label.length } }.max + 1 value_width = all_pairs.flat_map { |pairs| pairs.map { |_, value| value.to_s.length } }.max + 1 [label_width, value_width] end |
#field_pairs(c) ⇒ Object
rubocop: disable Metrics/AbcSize
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/echspec/cli/ech_config_printer.rb', line 25 def field_pairs(c) ec = c.echconfig_contents kc = ec.key_config ext = ec.extensions.octet.unpack1('H*').scan(/.{2}/).join(' ') cipher_suite_pairs = kc.cipher_suites.flat_map do |cs| [ [' kdf_id(uint16):', cs.kdf_id.encode.unpack1('H4').scan(/.{2}/).join(' ')], [' aead_id(uint16):', cs.aead_id.encode.unpack1('H4').scan(/.{2}/).join(' ')] ] end [ ['ECHConfig:', ''], [' version(uint16):', c.version.unpack1('H4').scan(/.{2}/).join(' ')], [' length(uint16):', ec.encode.length], [' contents(ECHConfigContents):', ''], [' key_config(HpkeKeyConfig):', ''], [' config_id(uint8):', kc.config_id], [' kem_id(uint16):', kc.kem_id.encode.unpack1('H4').scan(/.{2}/).join(' ')], [' public_key(opaque):', kc.public_key.opaque.unpack1('H*').scan(/.{2}/).join(' ')], [' cipher_suites(HpkeSymmetricCipherSuite):', ''], *cipher_suite_pairs, [' maximum_name_length(uint8):', ec.maximum_name_length], [' public_name(opaque):', ec.public_name], [' extensions(opaque):', ext] ] end |
#print_ech_configs(ech_configs) ⇒ Object
4 5 6 7 8 9 10 11 12 |
# File 'lib/echspec/cli/ech_config_printer.rb', line 4 def print_ech_configs(ech_configs) all_pairs = ech_configs.map { |c| field_pairs(c) } label_width, value_width = evaluate_widths(all_pairs) all_pairs.each_with_index do |pairs, i| puts "#{'─' * label_width}┼#{'─' * value_width}" if i.positive? pairs.each { |label, value| print_field(label, value, label_width) } end end |
#print_field(label, value, label_width) ⇒ Object
20 21 22 |
# File 'lib/echspec/cli/ech_config_printer.rb', line 20 def print_field(label, value, label_width) puts "#{label.ljust(label_width)}│ #{value}" end |