7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
# File 'lib/faraday/cli/client.rb', line 7
def start
cli_options = Faraday::CLI::Option::Parser.new.parse!
connection = Faraday.new do |builder|
builder.use Faraday::Response::RaiseError
unless cli_options[:flags].include?(:without_middlewares)
Faraday::CLI::MiddlewareFetcher.extend!(builder, *cli_options[:config_file_paths])
end
builder.request(:multipart) if cli_options[:flags].include?(:multipart)
if cli_options[:flags].include?(:verbose)
builder.response :logger
end
if cli_options[:flags].include?(:super_verbose)
builder.use Faraday::CLI::Middleware::VerboseRequest
builder.use Faraday::CLI::Middleware::VerboseResponse
end
builder.adapter(Faraday.default_adapter)
end
if cli_options[:flags].include?(:show_middlewares)
$stdout.puts(connection.builder.handlers.map(&:inspect))
exit
end
Faraday::CLI::Option::Validator.validate(@argv,cli_options)
Faraday::CLI.active_connection = connection.dup
begin
response = connection.public_send(cli_options[:http_method].downcase) do |request|
request.url(@argv[0])
request.proxy(cli_options[:proxy_url]) unless cli_options[:proxy_url].nil?
cli_options[:http_headers].each do |key, value|
request.[key]=value
end
cli_options[:params].each do |key, value|
request.params[key]=value
end
request.body = cli_options[:body] unless cli_options[:body].nil?
end
$stdout.puts(response.body)
rescue Faraday::ClientError => ex
$stdout.puts(ex.message)
$stdout.puts(ex.response[:body]) unless ex.response.nil?
exit(1)
rescue URI::InvalidURIError => ex
$stdout.puts(ex.message)
exit(1)
end
end
|