Class: NeverBounce::CLI::Script::JobsCreate
- Inherits:
-
RequestMaker
show all
- Defined in:
- lib/never_bounce/cli/script/jobs_create.rb,
lib/never_bounce/cli/script/jobs_create/supplied_input_parser.rb
Defined Under Namespace
Classes: SuppliedInputParser
Constant Summary
Constants inherited
from RequestMaker
RequestMaker::SHARED_ENVARS
Instance Attribute Summary collapse
Attributes inherited from RequestMaker
#api_key, #api_url, #request_curl, #response, #server_raw, #session, #user_config
Attributes inherited from Meaningful
#banner_text, #envar_text, #help_text, #options_text
Attributes inherited from Base
#argv, #env, #stderr, #stdout
Instance Method Summary
collapse
#get_table_value, #inil, #print_curl_request, #print_error_response, #print_server_raw, #slim_main1
Methods inherited from Meaningful
#call_slim_main, error_klasses, format_envar_examples, #handle_help_and_options, #help?, #main, #option_parser, #options
Methods inherited from Base
#env_falsey?, #env_truthy?, env_value_truthy?, #main, #system, #verbose?
Instance Attribute Details
#auto_parse ⇒ true, ...
22
23
24
25
26
27
28
|
# 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 ⇒ true, ...
33
34
35
36
37
38
39
|
# 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 ⇒ Object
41
42
43
|
# 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
|
47
48
49
50
|
# File 'lib/never_bounce/cli/script/jobs_create.rb', line 47
def input
input_location remote_input || supplied_input_array
end
|
Returns "remote_url"
or "supplied"
.
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/never_bounce/cli/script/jobs_create.rb', line 53
def input_location
@input_location ||= begin
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
|
126
127
128
129
130
131
132
|
# 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 ⇒ Object
68
69
70
|
# File 'lib/never_bounce/cli/script/jobs_create.rb', line 68
def now
@now ||= Time.now
end
|
72
73
74
|
# File 'lib/never_bounce/cli/script/jobs_create.rb', line 72
def remote_input
igetset(:remote_input) { env["REMOTE_INPUT"] }
end
|
#request ⇒ Object
An API::Request::JobsCreate
.
110
111
112
113
114
115
116
117
118
119
120
|
# 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 ⇒ true, ...
83
84
85
86
87
88
89
|
# 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
|
91
92
93
|
# File 'lib/never_bounce/cli/script/jobs_create.rb', line 91
def supplied_input
igetset(:supplied_input) { env["SUPPLIED_INPUT"] }
end
|
99
100
101
|
# 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
|
103
104
105
|
# File 'lib/never_bounce/cli/script/jobs_create.rb', line 103
def supplied_input_parser
@supplied_input_parser ||= SuppliedInputParser.new
end
|
Instance Method Details
76
77
78
|
# File 'lib/never_bounce/cli/script/jobs_create.rb', line 76
def remote_input?
!!remote_input
end
|
#slim_main ⇒ Integer
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
# 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
|
95
96
97
|
# File 'lib/never_bounce/cli/script/jobs_create.rb', line 95
def supplied_input?
!!supplied_input
end
|