httsoiree 0.13.1 → 0.13.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +13 -9
- data/bin/httsoiree +117 -0
- data/{httparty.gemspec → httsoiree.gemspec} +3 -3
- data/lib/httparty/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b96e1f9c5ddf1d48bf3c1e775c74b3e8ee7ae37b
|
4
|
+
data.tar.gz: c12b50e32aa15f2d29266305d9bb55d0d36a2895
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f5142045a09dedf5b7e62e898173aaf7d12ff5a0818d3d451d50bd645a7a2317f8f38d932062e5397288ef93216c8706a013109198d94f324457abca99c73cf9
|
7
|
+
data.tar.gz: 95bb1a46d509354a2b7b0233bb19d4f0bcf299de8bca27fedae2033df2b934f5da7349051bbe657547ca6a908902f2a3bb6b6b4b1790d30f8bbf20d6c7a2503e
|
data/README.md
CHANGED
@@ -1,30 +1,34 @@
|
|
1
|
-
#
|
1
|
+
# httsoiree
|
2
2
|
|
3
|
-
|
3
|
+
Like HTTParty, just a little less in your face.
|
4
4
|
|
5
5
|
## Install
|
6
6
|
|
7
7
|
```
|
8
|
-
gem install
|
8
|
+
gem install httsoiree
|
9
9
|
```
|
10
10
|
|
11
11
|
## Requirements
|
12
12
|
|
13
13
|
* Ruby 1.9.3 or higher
|
14
14
|
* multi_xml
|
15
|
-
* You like to
|
15
|
+
* You like to converse with friends, perhaps over drinks.
|
16
|
+
|
17
|
+
## Usage
|
18
|
+
|
19
|
+
A drop-in replacement to HTTParty - you can even keep typing HTTParty. Or, if you prefer, you can HTTSoiree.
|
16
20
|
|
17
21
|
## Examples
|
18
22
|
|
19
23
|
```ruby
|
20
24
|
# Use the class methods to get down to business quickly
|
21
|
-
response =
|
25
|
+
response = HTTSoiree.get('https://api.stackexchange.com/2.2/questions?site=stackoverflow')
|
22
26
|
|
23
27
|
puts response.body, response.code, response.message, response.headers.inspect
|
24
28
|
|
25
29
|
# Or wrap things up in your own class
|
26
30
|
class StackExchange
|
27
|
-
include
|
31
|
+
include HTTSoiree
|
28
32
|
base_uri 'api.stackexchange.com'
|
29
33
|
|
30
34
|
def initialize(service, page)
|
@@ -49,15 +53,15 @@ See the [examples directory](http://github.com/jnunemaker/httparty/tree/master/e
|
|
49
53
|
|
50
54
|
## Command Line Interface
|
51
55
|
|
52
|
-
|
56
|
+
httsoiree also includes the executable `httsoiree` which can be
|
53
57
|
used to query web services and examine the resulting output. By default
|
54
58
|
it will output the response as a pretty-printed Ruby object (useful for
|
55
59
|
grokking the structure of output). This can also be overridden to output
|
56
|
-
formatted XML or JSON. Execute `
|
60
|
+
formatted XML or JSON. Execute `httsoiree --help` for all the
|
57
61
|
options. Below is an example of how easy it is.
|
58
62
|
|
59
63
|
```
|
60
|
-
|
64
|
+
httsoiree "https://api.stackexchange.com/2.2/questions?site=stackoverflow"
|
61
65
|
```
|
62
66
|
|
63
67
|
## Help and Docs
|
data/bin/httsoiree
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "optparse"
|
4
|
+
require "pp"
|
5
|
+
|
6
|
+
$:.unshift(File.join(File.dirname(__FILE__), "/../lib"))
|
7
|
+
require "httparty"
|
8
|
+
|
9
|
+
opts = {
|
10
|
+
action: :get,
|
11
|
+
headers: {},
|
12
|
+
verbose: false
|
13
|
+
}
|
14
|
+
|
15
|
+
OptionParser.new do |o|
|
16
|
+
o.banner = "USAGE: #{$0} [options] [url]"
|
17
|
+
|
18
|
+
o.on("-f",
|
19
|
+
"--format [FORMAT]",
|
20
|
+
"Output format to use instead of pretty-print ruby: " +
|
21
|
+
"plain, csv, json or xml") do |f|
|
22
|
+
opts[:output_format] = f.downcase.to_sym
|
23
|
+
end
|
24
|
+
|
25
|
+
o.on("-a",
|
26
|
+
"--action [ACTION]",
|
27
|
+
"HTTP action: get (default), post, put, delete, head, or options") do |a|
|
28
|
+
opts[:action] = a.downcase.to_sym
|
29
|
+
end
|
30
|
+
|
31
|
+
o.on("-d",
|
32
|
+
"--data [BODY]",
|
33
|
+
"Data to put in request body (prefix with '@' for file)") do |d|
|
34
|
+
if d =~ /^@/
|
35
|
+
opts[:body] = open(d[1..-1]).read
|
36
|
+
else
|
37
|
+
opts[:body] = d
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
o.on("-H", "--header [NAME:VALUE]", "Additional HTTP headers in NAME:VALUE form") do |h|
|
42
|
+
abort "Invalid header specification, should be Name:Value" unless h =~ /.+:.+/
|
43
|
+
name, value = h.split(':')
|
44
|
+
opts[:headers][name.strip] = value.strip
|
45
|
+
end
|
46
|
+
|
47
|
+
o.on("-v", "--verbose", "If set, print verbose output") do |v|
|
48
|
+
opts[:verbose] = true
|
49
|
+
end
|
50
|
+
|
51
|
+
o.on("-u", "--user [CREDS]", "Use basic authentication. Value should be user:password") do |u|
|
52
|
+
abort "Invalid credentials format. Must be user:password" unless u =~ /.*:.+/
|
53
|
+
user, password = u.split(':')
|
54
|
+
opts[:basic_auth] = { username: user, password: password }
|
55
|
+
end
|
56
|
+
|
57
|
+
o.on("-r", "--response-code", "Command fails if response code >= 400") do
|
58
|
+
opts[:response_code] = true
|
59
|
+
end
|
60
|
+
|
61
|
+
o.on("-h", "--help", "Show help documentation") do |h|
|
62
|
+
puts o
|
63
|
+
exit
|
64
|
+
end
|
65
|
+
end.parse!
|
66
|
+
|
67
|
+
|
68
|
+
if ARGV.empty?
|
69
|
+
STDERR.puts "You need to provide a URL"
|
70
|
+
STDERR.puts "USAGE: #{$0} [options] [url]"
|
71
|
+
end
|
72
|
+
|
73
|
+
def dump_headers(response)
|
74
|
+
resp_type = Net::HTTPResponse::CODE_TO_OBJ[response.code.to_s]
|
75
|
+
puts "#{response.code} #{resp_type.to_s.sub(/^Net::HTTP/, '')}"
|
76
|
+
response.headers.each do |n,v|
|
77
|
+
puts "#{n}: #{v}"
|
78
|
+
end
|
79
|
+
puts
|
80
|
+
end
|
81
|
+
|
82
|
+
if opts[:verbose]
|
83
|
+
puts "#{opts[:action].to_s.upcase} #{ARGV.first}"
|
84
|
+
opts[:headers].each do |n,v|
|
85
|
+
puts "#{n}: #{v}"
|
86
|
+
end
|
87
|
+
puts
|
88
|
+
end
|
89
|
+
|
90
|
+
response = HTTParty.send(opts[:action], ARGV.first, opts)
|
91
|
+
if opts[:output_format].nil?
|
92
|
+
dump_headers(response) if opts[:verbose]
|
93
|
+
pp response
|
94
|
+
else
|
95
|
+
print_format = opts[:output_format]
|
96
|
+
dump_headers(response) if opts[:verbose]
|
97
|
+
|
98
|
+
case opts[:output_format]
|
99
|
+
when :json
|
100
|
+
begin
|
101
|
+
require 'json'
|
102
|
+
puts JSON.pretty_generate(response.delegate)
|
103
|
+
rescue LoadError
|
104
|
+
puts YAML.dump(response.delegate)
|
105
|
+
end
|
106
|
+
when :xml
|
107
|
+
require 'rexml/document'
|
108
|
+
REXML::Document.new(response.body).write(STDOUT, 2)
|
109
|
+
puts
|
110
|
+
when :csv
|
111
|
+
require 'csv'
|
112
|
+
puts CSV.parse(response.body).map{|row| row.to_s }
|
113
|
+
else
|
114
|
+
puts response
|
115
|
+
end
|
116
|
+
end
|
117
|
+
exit false if opts[:response_code] && response.code >= 400
|
@@ -3,13 +3,13 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
require "httparty/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
|
-
s.name = "
|
6
|
+
s.name = "httsoiree"
|
7
7
|
s.version = HTTParty::VERSION
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
9
|
s.licenses = ['MIT']
|
10
|
-
s.authors = ["John Nunemaker", "Sandro Turriate"]
|
10
|
+
s.authors = ["John Nunemaker", "Sandro Turriate", "Kristján Pétursson"]
|
11
11
|
s.email = ["nunemaker@gmail.com"]
|
12
|
-
s.homepage = "
|
12
|
+
s.homepage = "https://github.com/kristjan/httsoiree"
|
13
13
|
s.summary = %q{Makes http fun! Also, makes consuming restful web services dead easy.}
|
14
14
|
s.description = %q{Makes http fun! Also, makes consuming restful web services dead easy.}
|
15
15
|
|
data/lib/httparty/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: httsoiree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.1
|
4
|
+
version: 0.13.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Nunemaker
|
@@ -45,6 +45,7 @@ email:
|
|
45
45
|
- nunemaker@gmail.com
|
46
46
|
executables:
|
47
47
|
- httparty
|
48
|
+
- httsoiree
|
48
49
|
extensions: []
|
49
50
|
extra_rdoc_files: []
|
50
51
|
files:
|
@@ -57,6 +58,7 @@ files:
|
|
57
58
|
- README.md
|
58
59
|
- Rakefile
|
59
60
|
- bin/httparty
|
61
|
+
- bin/httsoiree
|
60
62
|
- cucumber.yml
|
61
63
|
- examples/aaws.rb
|
62
64
|
- examples/basic.rb
|
@@ -86,7 +88,7 @@ files:
|
|
86
88
|
- features/supports_read_timeout_option.feature
|
87
89
|
- features/supports_redirection.feature
|
88
90
|
- features/supports_timeout_option.feature
|
89
|
-
-
|
91
|
+
- httsoiree.gemspec
|
90
92
|
- lib/httparty.rb
|
91
93
|
- lib/httparty/connection_adapter.rb
|
92
94
|
- lib/httparty/cookie_hash.rb
|
@@ -140,7 +142,7 @@ files:
|
|
140
142
|
- spec/support/stub_response.rb
|
141
143
|
- website/css/common.css
|
142
144
|
- website/index.html
|
143
|
-
homepage:
|
145
|
+
homepage: https://github.com/kristjan/httsoiree
|
144
146
|
licenses:
|
145
147
|
- MIT
|
146
148
|
metadata: {}
|