NeverBounce/NeverBounceCli-Ruby

View on GitHub
lib/never_bounce/cli/script/feature/requires_job_id.rb

Summary

Maintainability
A
0 mins
Test Coverage

module NeverBounce; module CLI; module Script; module Feature
  # Common traits for scripts which require job ID.
  # @see InstanceMethods
  module RequiresJobId
    # @param owner [Class]
    # @return [nil]
    def self.load(owner)
      return if owner < InstanceMethods
      owner.send(:include, InstanceMethods)

      owner.class_eval do
        attr_writer :job_id

        envar "ID", "Job ID", ["276816"]
      end
    end

    module InstanceMethods
      # Job ID. Default is <tt>env["ID"]</tt>.
      # @!attribute job_id
      # @return [String]
      def job_id
        @job_id ||= env[k = "ID"] or raise UsageError, "Job ID not given, use `#{k}=`"
      end
    end
  end
end; end; end; end