faraday-cli 0.7.3 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +11 -8
- data/VERSION +1 -1
- data/exec/faraday-cli +6 -0
- data/faraday-cli.gemspec +3 -4
- data/lib/faraday/cli/client.rb +77 -1
- data/lib/faraday/cli/core_ext/object.rb +9 -0
- data/lib/faraday/cli/core_ext.rb +3 -0
- data/lib/faraday/cli/middleware_fetcher.rb +18 -12
- data/lib/faraday/cli/option/parser.rb +1 -1
- data/lib/faraday/cli/option/validator.rb +13 -6
- data/lib/faraday/cli.rb +5 -0
- metadata +7 -5
- data/bin/faraday-cli +0 -72
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33f57152ba258d34004fe9f2a687aa170b7c8494
|
4
|
+
data.tar.gz: f634659c2b2e36e9a9a7de928c67870d57eccec9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1efe3302cf27e69356689154f60bcf0b9b9276feb71f53d237f1ad8fa146c55214a036b65c73a343ef13e109697555de9da7bd4a9e0ea953597b09c20b506aa8
|
7
|
+
data.tar.gz: 7bc37644f7c14caac610d4988a32a804a7c4e7167973a840d2fb6769fb2f51fbfb5829805d7c9f46a3b9566ba3beca4f7bf8df57eb418c1b1a230f7e12a8cf84
|
data/README.md
CHANGED
@@ -55,16 +55,19 @@ you can use any faraday middlewares as how you pleased.
|
|
55
55
|
|
56
56
|
```ruby
|
57
57
|
|
58
|
-
class MyAwesomeMiddleware
|
58
|
+
class MyAwesomeMiddleware < Faraday::Middleware
|
59
59
|
|
60
|
-
def
|
61
|
-
@app = app
|
62
|
-
end
|
60
|
+
def call(request_env)
|
63
61
|
|
64
|
-
|
65
|
-
|
66
|
-
@app.call(
|
67
|
-
|
62
|
+
# before main request
|
63
|
+
|
64
|
+
@app.call(request_env).on_complete do |response_env|
|
65
|
+
|
66
|
+
# after main request
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
68
71
|
|
69
72
|
end
|
70
73
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.8.3
|
data/exec/faraday-cli
ADDED
data/faraday-cli.gemspec
CHANGED
@@ -12,12 +12,11 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.homepage = 'https://github.com/adamluzsi/faraday-cli.rb'
|
13
13
|
|
14
14
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
15
|
-
spec.bindir = 'bin'
|
16
|
-
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
|
-
.select{|cli_command| cli_command =~ /^faraday\-cli/ }
|
18
|
-
|
19
15
|
spec.require_paths = ['lib']
|
20
16
|
|
17
|
+
spec.bindir = 'exec'
|
18
|
+
spec.executables = spec.files.grep(%r{^exec/}) { |f| File.basename(f) }
|
19
|
+
|
21
20
|
spec.add_development_dependency 'bundler', '>= 1.10'
|
22
21
|
spec.add_development_dependency 'rake'
|
23
22
|
spec.add_development_dependency 'rspec'
|
data/lib/faraday/cli/client.rb
CHANGED
@@ -1,3 +1,79 @@
|
|
1
1
|
class Faraday::CLI::Client
|
2
2
|
|
3
|
-
|
3
|
+
def self.start(argv)
|
4
|
+
new(argv).start
|
5
|
+
end
|
6
|
+
|
7
|
+
def start
|
8
|
+
|
9
|
+
cli_options = Faraday::CLI::Option::Parser.new.parse!
|
10
|
+
|
11
|
+
connection = Faraday.new do |builder|
|
12
|
+
builder.use Faraday::Response::RaiseError
|
13
|
+
|
14
|
+
unless cli_options[:flags].include?(:without_middlewares)
|
15
|
+
Faraday::CLI::MiddlewareFetcher.extend!(builder, *cli_options[:config_file_paths])
|
16
|
+
end
|
17
|
+
|
18
|
+
builder.request(:multipart) if cli_options[:flags].include?(:multipart)
|
19
|
+
|
20
|
+
if cli_options[:flags].include?(:verbose)
|
21
|
+
builder.response :logger
|
22
|
+
end
|
23
|
+
|
24
|
+
if cli_options[:flags].include?(:super_verbose)
|
25
|
+
builder.use Faraday::CLI::Middleware::VerboseRequest
|
26
|
+
builder.use Faraday::CLI::Middleware::VerboseResponse
|
27
|
+
end
|
28
|
+
|
29
|
+
builder.adapter(Faraday.default_adapter)
|
30
|
+
end
|
31
|
+
|
32
|
+
if cli_options[:flags].include?(:show_middlewares)
|
33
|
+
$stdout.puts(connection.builder.handlers.map(&:inspect))
|
34
|
+
exit
|
35
|
+
end
|
36
|
+
|
37
|
+
Faraday::CLI::Option::Validator.validate(@argv,cli_options)
|
38
|
+
Faraday::CLI.active_connection = connection.dup
|
39
|
+
|
40
|
+
begin
|
41
|
+
|
42
|
+
response = connection.public_send(cli_options[:http_method].downcase) do |request|
|
43
|
+
|
44
|
+
request.url(@argv[0])
|
45
|
+
|
46
|
+
cli_options[:http_headers].each do |key, value|
|
47
|
+
request.headers[key]=value
|
48
|
+
end
|
49
|
+
|
50
|
+
cli_options[:params].each do |key, value|
|
51
|
+
request.params[key]=value
|
52
|
+
end
|
53
|
+
|
54
|
+
request.body = cli_options[:body] unless cli_options[:body].nil?
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
$stdout.puts(response.body)
|
59
|
+
|
60
|
+
rescue Faraday::ClientError => ex
|
61
|
+
$stdout.puts(ex.message)
|
62
|
+
$stdout.puts(ex.response[:body]) unless ex.response.nil?
|
63
|
+
exit(1)
|
64
|
+
|
65
|
+
rescue URI::InvalidURIError => ex
|
66
|
+
$stdout.puts(ex.message)
|
67
|
+
exit(1)
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
protected
|
74
|
+
|
75
|
+
def initialize(argv)
|
76
|
+
@argv = argv
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
@@ -2,6 +2,8 @@ require 'pwd'
|
|
2
2
|
module Faraday::CLI::MiddlewareFetcher
|
3
3
|
extend self
|
4
4
|
|
5
|
+
NAME_PATH_MATCHER = '{.faraday,.faraday.rb,.faraday-cli}'
|
6
|
+
|
5
7
|
require 'faraday/cli/middleware_fetcher/container'
|
6
8
|
|
7
9
|
def extend!(faraday_connection_builder, *config_file_paths)
|
@@ -12,9 +14,6 @@ module Faraday::CLI::MiddlewareFetcher
|
|
12
14
|
protected
|
13
15
|
|
14
16
|
def get_file_paths(config_file_paths)
|
15
|
-
file_name = '{.faraday.rb,.faraday}'
|
16
|
-
folder_name = '{.faraday.rb,.faraday,.faraday-cli}'
|
17
|
-
|
18
17
|
case
|
19
18
|
|
20
19
|
when !config_file_paths.empty?
|
@@ -26,22 +25,22 @@ module Faraday::CLI::MiddlewareFetcher
|
|
26
25
|
file_paths.push(*Dir.glob(given_path)); file_paths
|
27
26
|
end
|
28
27
|
|
29
|
-
when !(file_paths =
|
28
|
+
when !(file_paths = fetch_file_paths(Dir.pwd)).empty?
|
30
29
|
file_paths
|
31
30
|
|
32
|
-
when !(file_paths =
|
31
|
+
when !(file_paths = fetch_file_paths_from_folder(Dir.pwd)).empty?
|
33
32
|
file_paths
|
34
33
|
|
35
|
-
when !(file_paths =
|
34
|
+
when !(file_paths = fetch_file_paths(PWD.pwd)).empty?
|
36
35
|
file_paths
|
37
36
|
|
38
|
-
when !(file_paths =
|
37
|
+
when !(file_paths = fetch_file_paths_from_folder(PWD.pwd)).empty?
|
39
38
|
file_paths
|
40
39
|
|
41
|
-
when !(file_paths =
|
40
|
+
when !(file_paths = fetch_file_paths(ENV['HOME'])).empty?
|
42
41
|
file_paths
|
43
42
|
|
44
|
-
when !(file_paths =
|
43
|
+
when !(file_paths = fetch_file_paths_from_folder(ENV['HOME'])).empty?
|
45
44
|
file_paths
|
46
45
|
|
47
46
|
else
|
@@ -50,11 +49,18 @@ module Faraday::CLI::MiddlewareFetcher
|
|
50
49
|
end
|
51
50
|
end
|
52
51
|
|
52
|
+
private
|
53
53
|
|
54
|
-
|
54
|
+
def fetch_file_paths_from_folder(*from_folder)
|
55
|
+
select_file_paths(Dir.glob(File.join(*from_folder,NAME_PATH_MATCHER, '*.{rb,ru}')))
|
56
|
+
end
|
57
|
+
|
58
|
+
def fetch_file_paths(*from_folder)
|
59
|
+
select_file_paths(Dir.glob(File.join(*from_folder, NAME_PATH_MATCHER)))
|
60
|
+
end
|
55
61
|
|
56
|
-
def
|
57
|
-
|
62
|
+
def select_file_paths(file_paths)
|
63
|
+
file_paths.select { |path| File.exists?(path) and not File.directory?(path) }
|
58
64
|
end
|
59
65
|
|
60
66
|
end
|
@@ -15,7 +15,7 @@ class Faraday::CLI::Option::Parser
|
|
15
15
|
end
|
16
16
|
|
17
17
|
o.on('-H', '--header HEADER:VALUE', 'Pass custom header LINE to server (H)') do |header|
|
18
|
-
options[:http_headers].push(header.split(
|
18
|
+
options[:http_headers].push(header.split(/:\s*/))
|
19
19
|
end
|
20
20
|
|
21
21
|
o.on('-q', '--query key=value', 'Pass Query key values to use in the request') do |raw_query_pair|
|
@@ -6,23 +6,30 @@ module Faraday::CLI::Option::Validator
|
|
6
6
|
def validate(argv,options_hash)
|
7
7
|
validate_url(argv[0])
|
8
8
|
validate_http_method(options_hash)
|
9
|
+
validate_http_headers(options_hash)
|
9
10
|
end
|
10
11
|
|
12
|
+
def validate_http_headers(options_hash)
|
13
|
+
alert('header is in malformed format!') if options_hash[:http_headers].any?{|pairs| pairs.length != 2 }
|
14
|
+
end
|
11
15
|
|
12
16
|
protected
|
13
17
|
|
14
18
|
def validate_url(url_str)
|
15
|
-
if url_str.nil? || url_str == ''
|
16
|
-
$stderr.puts('Missing URL to make request!')
|
17
|
-
exit(1)
|
18
|
-
end
|
19
|
+
alert('Missing URL to make request!') if url_str.nil? || url_str == ''
|
19
20
|
end
|
20
21
|
|
21
22
|
def validate_http_method(options_hash)
|
22
23
|
unless ALLOWED_HTTP_METHODS.include?(options_hash[:http_method])
|
23
|
-
|
24
|
-
exit(1)
|
24
|
+
alert("invalid http method given: #{options_hash[:http_method].inspect}")
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
private
|
29
|
+
|
30
|
+
def alert(message)
|
31
|
+
$stderr.puts(message)
|
32
|
+
exit(1)
|
33
|
+
end
|
34
|
+
|
28
35
|
end
|
data/lib/faraday/cli.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faraday-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Luzsi
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: exec
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -113,11 +113,13 @@ files:
|
|
113
113
|
- TODO
|
114
114
|
- VERSION
|
115
115
|
- bin/console
|
116
|
-
- bin/faraday-cli
|
117
116
|
- bin/setup
|
117
|
+
- exec/faraday-cli
|
118
118
|
- faraday-cli.gemspec
|
119
119
|
- lib/faraday/cli.rb
|
120
120
|
- lib/faraday/cli/client.rb
|
121
|
+
- lib/faraday/cli/core_ext.rb
|
122
|
+
- lib/faraday/cli/core_ext/object.rb
|
121
123
|
- lib/faraday/cli/middleware.rb
|
122
124
|
- lib/faraday/cli/middleware/verbose_request.rb
|
123
125
|
- lib/faraday/cli/middleware/verbose_response.rb
|
@@ -149,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
149
151
|
version: '0'
|
150
152
|
requirements: []
|
151
153
|
rubyforge_project:
|
152
|
-
rubygems_version: 2.
|
154
|
+
rubygems_version: 2.4.8
|
153
155
|
signing_key:
|
154
156
|
specification_version: 4
|
155
157
|
summary: Console line interface for faraday gem.
|
data/bin/faraday-cli
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
if ENV['FARADAY_CLI_DEVELOPER_ENV'] == 'true'
|
3
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
4
|
-
end
|
5
|
-
|
6
|
-
require 'faraday/cli'
|
7
|
-
|
8
|
-
CLI_OPTIONS = Faraday::CLI::Option::Parser.new.parse!
|
9
|
-
Faraday::CLI::Option::Validator.validate(ARGV,CLI_OPTIONS)
|
10
|
-
|
11
|
-
connection = Faraday.new do |builder|
|
12
|
-
builder.use Faraday::Response::RaiseError
|
13
|
-
|
14
|
-
unless CLI_OPTIONS[:flags].include?(:without_middlewares)
|
15
|
-
Faraday::CLI::MiddlewareFetcher.extend!(builder, *CLI_OPTIONS[:config_file_paths])
|
16
|
-
end
|
17
|
-
|
18
|
-
builder.request(:multipart) if CLI_OPTIONS[:flags].include?(:multipart)
|
19
|
-
|
20
|
-
if CLI_OPTIONS[:flags].include?(:verbose)
|
21
|
-
builder.response :logger
|
22
|
-
end
|
23
|
-
|
24
|
-
if CLI_OPTIONS[:flags].include?(:super_verbose)
|
25
|
-
builder.use Faraday::CLI::Middleware::VerboseRequest
|
26
|
-
builder.use Faraday::CLI::Middleware::VerboseResponse
|
27
|
-
end
|
28
|
-
|
29
|
-
builder.adapter(Faraday.default_adapter)
|
30
|
-
end
|
31
|
-
|
32
|
-
if CLI_OPTIONS[:flags].include?(:show_middlewares)
|
33
|
-
$stdout.puts(connection.builder.handlers.map(&:inspect))
|
34
|
-
exit
|
35
|
-
end
|
36
|
-
|
37
|
-
FARADAY_ACTIVE_CONNECTION= connection
|
38
|
-
|
39
|
-
def active_connection
|
40
|
-
FARADAY_ACTIVE_CONNECTION
|
41
|
-
end
|
42
|
-
|
43
|
-
begin
|
44
|
-
|
45
|
-
response = connection.public_send(CLI_OPTIONS[:http_method].downcase) do |request|
|
46
|
-
|
47
|
-
request.url(ARGV[0])
|
48
|
-
|
49
|
-
CLI_OPTIONS[:http_headers].each do |key, value|
|
50
|
-
request.headers[key]=value
|
51
|
-
end
|
52
|
-
|
53
|
-
CLI_OPTIONS[:params].each do |key, value|
|
54
|
-
request.params[key]=value
|
55
|
-
end
|
56
|
-
|
57
|
-
request.body = CLI_OPTIONS[:body] unless CLI_OPTIONS[:body].nil?
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
$stdout.puts(response.body)
|
62
|
-
|
63
|
-
rescue Faraday::ClientError => ex
|
64
|
-
$stdout.puts(ex.message)
|
65
|
-
$stdout.puts(ex.response[:body]) unless ex.response.nil?
|
66
|
-
exit(1)
|
67
|
-
|
68
|
-
rescue URI::InvalidURIError => ex
|
69
|
-
$stdout.puts(ex.message)
|
70
|
-
exit(1)
|
71
|
-
|
72
|
-
end
|