class NeverBounce::CLI::Script::JobsCreate

Attributes

auto_parse[W]
auto_start[W]
filename[W]
input[W]
input_location[W]
now[W]
remote_input[W]
run_sample[W]
supplied_input[W]
supplied_input_array[W]
supplied_input_parser[W]

Public Instance Methods

auto_parse() click to toggle source

@return [true] @return [false] @return [nil]

# File lib/never_bounce/cli/script/jobs_create.rb, line 22
def auto_parse
  igetset(:auto_parse) do
    if env.has_key?(k = "AUTO_PARSE")
      env_truthy?(k)
    end
  end
end
auto_start() click to toggle source

@return [true] @return [false] @return [nil]

# File lib/never_bounce/cli/script/jobs_create.rb, line 33
def auto_start
  igetset(:auto_start) do
    if env.has_key?(k = "AUTO_START")
      env_truthy?(k)
    end
  end
end
filename() click to toggle source
# File lib/never_bounce/cli/script/jobs_create.rb, line 41
def filename
  igetset(:filename) { env["FILENAME"] || now.strftime("%Y%m%d-%H%M%S.csv") }
end
input() click to toggle source

@return [String] An URL if remote input. @return [Array] An array of e-mails if supplied input.

# File lib/never_bounce/cli/script/jobs_create.rb, line 47
def input
  input_location    # Touch for sanity/completeness checks etc.
  remote_input || supplied_input_array
end
input_location() click to toggle source

@return [String] "remote_url" or "supplied"

# File lib/never_bounce/cli/script/jobs_create.rb, line 53
def input_location
  @input_location ||= begin
    # Sanity check.
    raise UsageError, "`REMOTE_INPUT` and `SUPPLIED_INPUT` can't both be given" if remote_input? && supplied_input?

    if remote_input?
      "remote_url"
    elsif supplied_input?
      "supplied"
    else
      raise UsageError, "Input not given, use `REMOTE_INPUT=` or `SUPPLIED_INPUT=`"
    end
  end
end
manifest() click to toggle source

@!attribute manifest @return [Manifest]

# File lib/never_bounce/cli/script/jobs_create.rb, line 126
def manifest
  @manifest ||= Manifest.new(
    name: "nb-jobs-create",
    function: "Create a job",
    cmdline: "[options] [VAR1=value] [VAR2=value] ...",
  )
end
now() click to toggle source
# File lib/never_bounce/cli/script/jobs_create.rb, line 68
def now
  @now ||= Time.now
end
remote_input() click to toggle source
# File lib/never_bounce/cli/script/jobs_create.rb, line 72
def remote_input
  igetset(:remote_input) { env["REMOTE_INPUT"] }
end
remote_input?() click to toggle source
# File lib/never_bounce/cli/script/jobs_create.rb, line 76
def remote_input?
  !!remote_input
end
request() click to toggle source

An API::Request::JobsCreate. @!attribute request @return [Object]

# File lib/never_bounce/cli/script/jobs_create.rb, line 110
def request
  @request ||= API::Request::JobsCreate.new({
    api_key: api_key,
    auto_parse: auto_parse,
    auto_start: auto_start,
    filename: filename,
    input: input,
    input_location: input_location,
    run_sample: run_sample,
  })
end
run_sample() click to toggle source

@return [true] @return [false] @return [nil]

# File lib/never_bounce/cli/script/jobs_create.rb, line 83
def run_sample
  igetset(:run_sample) do
    if env.has_key?(k = "RUN_SAMPLE")
      env_truthy?(k)
    end
  end
end
slim_main() click to toggle source

@return [Integer]

# File lib/never_bounce/cli/script/jobs_create.rb, line 137
def slim_main
  "Response".tap do |label|
    headings = [
      ["JobId", :job_id],

      ["ExecTime", :execution_time, :right],
    ]

    table = Table.new(
      headings: headings.map { |ar| ar[0] },
      rows: [headings.map { |ar| get_table_value(response, ar) }],
    ).align!(headings)

    stdout.puts "\n#{label}:"
    stdout.puts table
  end

  0
end
supplied_input() click to toggle source
# File lib/never_bounce/cli/script/jobs_create.rb, line 91
def supplied_input
  igetset(:supplied_input) { env["SUPPLIED_INPUT"] }
end
supplied_input?() click to toggle source
# File lib/never_bounce/cli/script/jobs_create.rb, line 95
def supplied_input?
  !!supplied_input
end
supplied_input_array() click to toggle source
# File lib/never_bounce/cli/script/jobs_create.rb, line 99
def supplied_input_array
  @supplied_input_array ||= require_attr(:supplied_input_parser)[require_attr(:supplied_input)]
end
supplied_input_parser() click to toggle source
# File lib/never_bounce/cli/script/jobs_create.rb, line 103
def supplied_input_parser
  @supplied_input_parser ||= SuppliedInputParser.new
end