Sha256: d166a19dbb2ace5b83b40760b48e9639091ad03759bd9fcdce84804550e2bdd8
Contents?: true
Size: 1.26 KB
Versions: 1
Compression:
Stored size: 1.26 KB
Contents
require 'cli/kit' module CLI module Kit class BaseCommand def self.defined? true end def self.statsd_increment(_metric, **_kwargs) nil end def self.statsd_time(_metric, **_kwargs) yield end def self.call(args, command_name) cmd = new stats_tags = cmd.stats_tags(args, command_name) begin statsd_increment('cli.command.invoked', tags: stats_tags) statsd_time('cli.command.time', tags: stats_tags) do cmd.call(args, command_name) end statsd_increment('cli.command.success', tags: stats_tags) rescue Exception => e # rubocop:disable Lint/RescueException statsd_increment('cli.command.exception', tags: stats_tags + ["exception:#{e.class}"]) raise e end end def stats_tags(args, command_name) tags = ["task:#{self.class}"] tags << "command:#{command_name}" if command_name tags << "subcommand:#{args.first}" if args&.first && has_subcommands? tags end def call(_args, _command_name) raise NotImplementedError, "#{self.class.name} must implement #{__method__}" end def has_subcommands? false end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cli-kit-4.0.0 | lib/cli/kit/base_command.rb |