Class: Genericode::Cli::Commands

Inherits:
Thor
  • Object
show all
Defined in:
lib/genericode/cli/commands.rb

Instance Method Summary collapse

Instance Method Details

#convert(input, output) ⇒ Object



15
16
17
18
19
# File 'lib/genericode/cli/commands.rb', line 15

def convert(input, output)
  puts 'Conversion successful.' if Converter.convert(input, output)
rescue Error => e
  puts "Conversion failed: #{e.message}"
end

#list_codes(file) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/genericode/cli/commands.rb', line 51

def list_codes(file)
  format = (options[:format] || 'tsv').to_sym
  result = CodeLister.list_codes(file, format: format)

  if options[:output]
    File.write(options[:output], result)
    puts "Codes listed in #{options[:output]}"
  else
    puts result
  end
rescue Error => e
  puts "Listing codes failed: #{e.message}"
end

#lookup(file, path) ⇒ Object



67
68
69
70
71
72
73
74
75
76
# File 'lib/genericode/cli/commands.rb', line 67

def lookup(file, path)
  result = CodeLookup.lookup(file, path)
  if result.is_a?(Hash)
    result.each { |k, v| puts "#{k}: #{v}" }
  else
    puts result
  end
rescue Error => e
  puts "Lookup failed: #{e.message}"
end

#validate(file) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/genericode/cli/commands.rb', line 24

def validate(file)
  code_list = CodeList.from_file(file)
  if options[:verbose]
    results = code_list.validate_verbose
    if results.empty?
      puts 'File is valid.'
    else
      puts 'File is invalid. Issues found:'
      results.each do |error|
        puts "  [#{error[:code]}] #{error[:message]}"
      end
    end
  elsif code_list.valid?
    puts 'File is valid.'
  else
    puts 'File is invalid.'
  end
rescue Error => e
  puts "Validation failed: #{e.message}"
end