module NeverBounce::API::Response::Feature::JobStatusFields

Common traits for message/container of the job status. @see InstanceMethods

Public Class Methods

load(owner) click to toggle source

@param owner [Class] @return [nil]

# File lib/never_bounce/api/response/feature/job_status_fields.rb, line 12
def self.load(owner)
  # Validate owner, or calls to `oattr` will fail.
  raise ArgumentError, "Class #{owner} is not an ancestor of Response::Container" if not owner < Response::Container

  return if owner < InstanceMethods
  owner.send(:include, InstanceMethods)

  owner.class_eval do
    oattr :id, :scalar, type: :integer

    oattr :job_status, :scalar

    oattr :bounce_estimate, :scalar, type: :float
    oattr :filename, :scalar
    oattr :percent_complete, :scalar, type: :float

    oattr :total, :writer

    oattr :created_at, :scalar
    oattr :finished_at, :scalar
    oattr :started_at, :scalar
    oattr :failure_reason, :scalar
  end
end