Class: Judges::Trim

Inherits:
Object show all
Defined in:
lib/judges/commands/trim.rb

Overview

Trim.

Author

Yegor Bugayenko (yegor256@gmail.com)

Copyright

Copyright © 2024 Yegor Bugayenko

License

MIT

Instance Method Summary collapse

Constructor Details

#initialize(loog) ⇒ Trim

Returns a new instance of Trim.



32
33
34
# File 'lib/judges/commands/trim.rb', line 32

def initialize(loog)
  @loog = loog
end

Instance Method Details

#run(opts, args) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/judges/commands/trim.rb', line 36

def run(opts, args)
  raise 'Exactly one argument required' unless args.size == 1
  impex = Judges::Impex.new(@loog, args[0])
  fb = impex.import
  query = opts['query']
  if query.nil?
    days = opts['days']
    day = Time.now - (days * 60 * 60 * 24)
    query = "(lt time #{day.utc.iso8601})"
    @loog.info("Deleting facts that are older than #{days} days")
  else
    raise 'Specify either --days or --query' unless opts['days'].nil?
  end
  start = Time.now
  deleted = fb.query(query).delete!
  lapse = "in #{format('%.02f', Time.now - start)}s"
  if deleted.zero?
    @loog.info("No facts deleted #{lapse}")
  else
    @loog.info("🗑 #{deleted} fact(s) deleted #{lapse}")
    impex.export(fb)
  end
end