Class: SidekiqUniqueJobs::Cli

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

Overview

Command line interface for unique jobs

Author:

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

:nodoc: rubocop:disable Style/OptionalBooleanParameter



14
15
16
# File 'lib/sidekiq_unique_jobs/cli.rb', line 14

def self.banner(command, _namespace = nil, _subcommand = false) # rubocop:disable Style/OptionalBooleanParameter
  "jobs #{@package_name} #{command.usage}" # rubocop:disable ThreadSafety/InstanceVariableInClassMethod
end

Instance Method Details

#consoleObject

:nodoc:



45
46
47
48
49
50
51
52
# File 'lib/sidekiq_unique_jobs/cli.rb', line 45

def console
  say "Use `list '*', 1000 to display the first 1000 unique digests matching '*'"
  say "Use `del '*', 1000, true (default) to see how many digests would be deleted for the pattern '*'"
  say "Use `del '*', 1000, false to delete the first 1000 digests matching '*'"

  # Object.include SidekiqUniqueJobs::Api
  console_class.start
end

#del(pattern) ⇒ Object

:nodoc:



32
33
34
35
36
37
38
39
40
41
# File 'lib/sidekiq_unique_jobs/cli.rb', line 32

def del(pattern)
  max_count = options[:count]
  if options[:dry_run]
    result = digests.entries(pattern: pattern, count: max_count)
    say "Would delete #{result.size} digests matching '#{pattern}'"
  else
    deleted_count = digests.delete_by_pattern(pattern, count: max_count)
    say "Deleted #{deleted_count} digests matching '#{pattern}'"
  end
end

#list(pattern = "*") ⇒ Object

:nodoc:



22
23
24
25
26
# File 'lib/sidekiq_unique_jobs/cli.rb', line 22

def list(pattern = "*")
  entries = digests.entries(pattern: pattern, count: options[:count])
  say "Found #{entries.size} digests matching '#{pattern}':"
  print_in_columns(entries.sort) if entries.any?
end