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



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

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



48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/genericode/cli/commands.rb', line 48

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



64
65
66
67
68
69
70
71
72
73
# File 'lib/genericode/cli/commands.rb', line 64

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



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

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