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 CHANGED
@@ -1,3 +1,7 @@
1
+ == 0.2.5 2009-01-05
2
+ * 1 major enhancement
3
+ * Add command line interface to HTTParty (Alex Vollmer)
4
+
1
5
  == 0.2.4 2008-12-23
2
6
  * 1 bug fix
3
7
  * Fixed that mimetype detection was failing if no mimetype was returned from service (skippy)
data/Manifest CHANGED
@@ -1,3 +1,4 @@
1
+ bin/httparty
1
2
  examples/aaws.rb
2
3
  examples/basic.rb
3
4
  examples/delicious.rb
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
@@ -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
@@ -2,15 +2,17 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{httparty}
5
- s.version = "0.2.4"
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{2008-12-23}
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.extra_rdoc_files = ["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"]
13
- s.files = ["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"]
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!}
@@ -1,3 +1,3 @@
1
1
  module HTTParty
2
- Version = '0.2.4'
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
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: 2008-12-23 00:00:00 -05:00
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