Class: Judges::Download
Overview
The download command.
This class is instantiated by the bin/judge command line interface. You are not supposed to instantiate it yourself.
- Author
-
Yegor Bugayenko ([email protected])
- Copyright
-
Copyright © 2024-2025 Yegor Bugayenko
- License
-
MIT
Instance Method Summary collapse
-
#initialize(loog) ⇒ Download
constructor
Initialize.
-
#run(opts, args) ⇒ Object
Run the download command (called by the
bin/judgesscript).
Constructor Details
#initialize(loog) ⇒ Download
Initialize.
23 24 25 |
# File 'lib/judges/commands/download.rb', line 23 def initialize(loog) @loog = loog end |
Instance Method Details
#run(opts, args) ⇒ Object
Run the download command (called by the bin/judges script).
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/judges/commands/download.rb', line 31 def run(opts, args) raise 'Exactly two arguments required' unless args.size == 2 jname = args[0] path = args[1] name = File.basename(path) baza = BazaRb.new( opts['host'], opts['port'].to_i, opts['token'], ssl: opts['ssl'], timeout: (opts['timeout'] || 30).to_i, loog: @loog, retries: (opts['retries'] || 3).to_i ) elapsed(@loog, level: Logger::INFO) do id = baza.durable_find(jname, name) if id.nil? @loog.info("Durable '#{name}' not found in '#{jname}'") return end @loog.info("Durable ##{id} ('#{name}') found in '#{jname}'") baza.durable_lock(id, opts['owner'] || 'default') begin baza.durable_load(id, path) size = File.size(path) throw :"👍 Downloaded durable ##{id} to #{path} (#{size} bytes)" ensure baza.durable_unlock(id, opts['owner'] || 'default') end end end |