httparty 0.2.4 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of httparty might be problematic. Click here for more details.
- data/History +4 -0
- data/Manifest +1 -0
- data/README +11 -0
- data/bin/httparty +103 -0
- data/httparty.gemspec +6 -4
- data/lib/httparty/version.rb +2 -2
- metadata +6 -4
data/History
CHANGED
data/Manifest
CHANGED
data/README
CHANGED
@@ -15,6 +15,17 @@ Makes http fun again!
|
|
15
15
|
|
16
16
|
See http://github.com/jnunemaker/httparty/tree/master/examples
|
17
17
|
|
18
|
+
== COMMAND LINE INTERFACE
|
19
|
+
|
20
|
+
httparty also includes the executable <tt>httparty</tt> which can be
|
21
|
+
used to query web services and examine the resulting output. By default
|
22
|
+
it will output the response as a pretty-printed Ruby object (useful for
|
23
|
+
grokking the structure of output). This can also be overridden to output
|
24
|
+
formatted XML or JSON. Execute <tt>httparty --help</tt> for all the
|
25
|
+
options. Below is an example of how easy it is.
|
26
|
+
|
27
|
+
httparty "http://twitter.com/statuses/public_timeline.json" -f json
|
28
|
+
|
18
29
|
== REQUIREMENTS:
|
19
30
|
|
20
31
|
* JSON ~> 1.1
|
data/bin/httparty
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "optparse"
|
4
|
+
require "pp"
|
5
|
+
require "rexml/document"
|
6
|
+
|
7
|
+
$:.unshift(File.join(File.dirname(__FILE__), "/../lib"))
|
8
|
+
require "httparty"
|
9
|
+
|
10
|
+
opts = {
|
11
|
+
:action => :get,
|
12
|
+
:headers => {},
|
13
|
+
:keep_body => true,
|
14
|
+
:verbose => false,
|
15
|
+
:pretty_print => false
|
16
|
+
}
|
17
|
+
|
18
|
+
OptionParser.new do |o|
|
19
|
+
o.banner = "USAGE: #{$0} [options] [url]"
|
20
|
+
o.on("-f",
|
21
|
+
"--format [FORMAT]",
|
22
|
+
"Body format: plain, json or xml") do |f|
|
23
|
+
opts[:format] = f.downcase.to_sym
|
24
|
+
end
|
25
|
+
o.on("-r", "--ruby", "Dump output in Ruby pretty-print format") do |r|
|
26
|
+
opts[:pretty_print] = true
|
27
|
+
end
|
28
|
+
o.on("-a",
|
29
|
+
"--action [ACTION]",
|
30
|
+
"HTTP action: get (default), post, put or delete") do |a|
|
31
|
+
opts[:action] = a.downcase.to_sym
|
32
|
+
end
|
33
|
+
o.on("-d",
|
34
|
+
"--data [BODY]",
|
35
|
+
"Data to put in request body (prefix with '@' for file)") do |d|
|
36
|
+
if d =~ /^@/
|
37
|
+
opts[:data] = open(d).read
|
38
|
+
else
|
39
|
+
opts[:data] = d
|
40
|
+
end
|
41
|
+
end
|
42
|
+
o.on("-H", "--header [NAME=VALUE]", "Additional HTTP headers in NAME=VALUE form") do |h|
|
43
|
+
name, value = h.split('=')
|
44
|
+
opts[:headers][name] = value
|
45
|
+
end
|
46
|
+
o.on("-v", "--verbose", "If set, print verbose output") do |v|
|
47
|
+
opts[:verbose] = true
|
48
|
+
end
|
49
|
+
o.on("-h", "--help", "Show help documentation") do |h|
|
50
|
+
puts o
|
51
|
+
exit
|
52
|
+
end
|
53
|
+
end.parse!
|
54
|
+
|
55
|
+
puts "Querying #{ARGV.first} with options: #{opts.inspect}" if opts[:verbose]
|
56
|
+
|
57
|
+
if ARGV.empty?
|
58
|
+
STDERR.puts "You need to provide a URL"
|
59
|
+
STDERR.puts "USAGE: #{$0} [options] [url]"
|
60
|
+
end
|
61
|
+
|
62
|
+
# 1.8.6 has mistyping of transitive in if statement
|
63
|
+
module REXML
|
64
|
+
class Document < Element
|
65
|
+
def write( output=$stdout, indent=-1, transitive=false, ie_hack=false )
|
66
|
+
if xml_decl.encoding != "UTF-8" && !output.kind_of?(Output)
|
67
|
+
output = Output.new( output, xml_decl.encoding )
|
68
|
+
end
|
69
|
+
formatter = if indent > -1
|
70
|
+
if transitive
|
71
|
+
REXML::Formatters::Transitive.new( indent, ie_hack )
|
72
|
+
else
|
73
|
+
REXML::Formatters::Pretty.new( indent, ie_hack )
|
74
|
+
end
|
75
|
+
else
|
76
|
+
REXML::Formatters::Default.new( ie_hack )
|
77
|
+
end
|
78
|
+
formatter.write( self, output )
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
if opts[:pretty_print] || opts[:format].nil?
|
84
|
+
pp HTTParty.send(opts[:action], ARGV.first, opts)
|
85
|
+
else
|
86
|
+
print_format = opts[:format]
|
87
|
+
opts.merge!(:format => :plain) if opts[:format]
|
88
|
+
response = HTTParty.send(opts[:action], ARGV.first, opts)
|
89
|
+
|
90
|
+
if print_format.nil?
|
91
|
+
pp response
|
92
|
+
else
|
93
|
+
case print_format
|
94
|
+
when :json
|
95
|
+
puts JSON.pretty_generate(JSON.parse(response))
|
96
|
+
when :xml
|
97
|
+
REXML::Document.new(response).write(STDOUT, 2)
|
98
|
+
puts
|
99
|
+
else
|
100
|
+
puts response
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
data/httparty.gemspec
CHANGED
@@ -2,15 +2,17 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{httparty}
|
5
|
-
s.version = "0.2.
|
5
|
+
s.version = "0.2.5"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["John Nunemaker"]
|
9
|
-
s.date = %q{
|
9
|
+
s.date = %q{2009-01-05}
|
10
|
+
s.default_executable = %q{httparty}
|
10
11
|
s.description = %q{Makes http fun! Also, makes consuming restful web services dead easy.}
|
11
12
|
s.email = %q{nunemaker@gmail.com}
|
12
|
-
s.
|
13
|
-
s.
|
13
|
+
s.executables = ["httparty"]
|
14
|
+
s.extra_rdoc_files = ["bin/httparty", "lib/core_extensions.rb", "lib/httparty/exceptions.rb", "lib/httparty/request.rb", "lib/httparty/version.rb", "lib/httparty.rb", "lib/module_level_inheritable_attributes.rb", "README"]
|
15
|
+
s.files = ["bin/httparty", "examples/aaws.rb", "examples/basic.rb", "examples/delicious.rb", "examples/google.rb", "examples/rubyurl.rb", "examples/twitter.rb", "examples/whoismyrep.rb", "History", "httparty.gemspec", "lib/core_extensions.rb", "lib/httparty/exceptions.rb", "lib/httparty/request.rb", "lib/httparty/version.rb", "lib/httparty.rb", "lib/module_level_inheritable_attributes.rb", "Manifest", "MIT-LICENSE", "Rakefile", "README", "setup.rb", "spec/as_buggery_spec.rb", "spec/fixtures/delicious.xml", "spec/fixtures/google.html", "spec/fixtures/twitter.json", "spec/fixtures/twitter.xml", "spec/httparty/request_spec.rb", "spec/httparty_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "website/css/common.css", "website/index.html"]
|
14
16
|
s.has_rdoc = true
|
15
17
|
s.homepage = %q{http://httparty.rubyforge.org}
|
16
18
|
s.post_install_message = %q{When you HTTParty, you must party hard!}
|
data/lib/httparty/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module HTTParty
|
2
|
-
Version = '0.2.
|
3
|
-
end
|
2
|
+
Version = '0.2.5'
|
3
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: httparty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Nunemaker
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-01-05 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -34,11 +34,12 @@ dependencies:
|
|
34
34
|
version:
|
35
35
|
description: Makes http fun! Also, makes consuming restful web services dead easy.
|
36
36
|
email: nunemaker@gmail.com
|
37
|
-
executables:
|
38
|
-
|
37
|
+
executables:
|
38
|
+
- httparty
|
39
39
|
extensions: []
|
40
40
|
|
41
41
|
extra_rdoc_files:
|
42
|
+
- bin/httparty
|
42
43
|
- lib/core_extensions.rb
|
43
44
|
- lib/httparty/exceptions.rb
|
44
45
|
- lib/httparty/request.rb
|
@@ -47,6 +48,7 @@ extra_rdoc_files:
|
|
47
48
|
- lib/module_level_inheritable_attributes.rb
|
48
49
|
- README
|
49
50
|
files:
|
51
|
+
- bin/httparty
|
50
52
|
- examples/aaws.rb
|
51
53
|
- examples/basic.rb
|
52
54
|
- examples/delicious.rb
|