Class: Judges::Print
Overview
Update.
- Author
-
Yegor Bugayenko (yegor256@gmail.com)
- Copyright
-
Copyright © 2024 Yegor Bugayenko
- License
-
MIT
Instance Method Summary collapse
-
#initialize(loog) ⇒ Print
constructor
A new instance of Print.
- #run(opts, args) ⇒ Object
Constructor Details
#initialize(loog) ⇒ Print
Returns a new instance of Print.
34 35 36 |
# File 'lib/judges/commands/print.rb', line 34 def initialize(loog) @loog = loog end |
Instance Method Details
#run(opts, args) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/judges/commands/print.rb', line 38 def run(opts, args) raise 'At lease one argument required' if args.empty? f = args[0] raise "The file is absent: #{f.to_rel}" unless File.exist?(f) o = args[1] if o.nil? raise 'Either provide output file name or use --auto' unless opts[:auto] o = File.join(File.dirname(f), File.basename(f).gsub(/\.[^.]*$/, '')) o = "#{o}.#{opts[:format]}" end fb = Factbase.new fb.import(File.binread(f)) @loog.info("Factbase imported from #{f.to_rel} (#{File.size(f)} bytes)") FileUtils.mkdir_p(File.dirname(o)) output = case opts[:format].downcase when 'yaml' fb.to_yaml when 'json' fb.to_json when 'xml' fb.to_xml end File.binwrite(o, output) @loog.info("Factbase printed to #{o.to_rel} (#{File.size(o)} bytes)") end |