twurl 0.6.2 → 0.6.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.
data/CHANGELOG ADDED
@@ -0,0 +1,4 @@
1
+ Version: 0.6.3
2
+ --------------
3
+
4
+ * Add the -A/--header command line option to support adding a header to the request. (Jake Donham)
data/lib/twurl/cli.rb CHANGED
@@ -39,6 +39,7 @@ module Twurl
39
39
  Twurl.options = Options.new
40
40
  Twurl.options.trace = false
41
41
  Twurl.options.data = {}
42
+ Twurl.options.headers = {}
42
43
 
43
44
  option_parser = OptionParser.new do |o|
44
45
  o.extend AvailableOptions
@@ -64,11 +65,13 @@ module Twurl
64
65
  o.section "Common options:" do
65
66
  trace
66
67
  data
68
+ headers
67
69
  host
68
70
  quiet
69
71
  disable_ssl
70
72
  request_method
71
73
  help
74
+ version
72
75
  end
73
76
  end
74
77
 
@@ -190,6 +193,13 @@ module Twurl
190
193
  end
191
194
  end
192
195
 
196
+ def headers
197
+ on('-A', '--header [header]', 'Adds the specified header to the request to the HTTP server.') do |header|
198
+ key, value = header.split(': ')
199
+ options.headers[key] = value
200
+ end
201
+ end
202
+
193
203
  def host
194
204
  on('-H', '--host [host]', 'Specify host to make requests to (default: api.twitter.com)') do |host|
195
205
  options.host = host
@@ -220,6 +230,13 @@ module Twurl
220
230
  exit
221
231
  end
222
232
  end
233
+
234
+ def version
235
+ on_tail("-v", "--version", "Show version") do
236
+ CLI.puts Version
237
+ exit
238
+ end
239
+ end
223
240
  end
224
241
  end
225
242
 
@@ -64,15 +64,19 @@ module Twurl
64
64
 
65
65
  [:get, :post, :put, :delete, :options, :head, :copy].each do |request_method|
66
66
  class_eval(<<-EVAL, __FILE__, __LINE__)
67
- def #{request_method}(url, options = {})
67
+ def #{request_method}(url, *options)
68
68
  # configure_http!
69
- access_token.#{request_method}(url, options)
69
+ access_token.#{request_method}(url, *options)
70
70
  end
71
71
  EVAL
72
72
  end
73
73
 
74
74
  def perform_request_from_options(options)
75
- send(options.request_method, options.path, options.data)
75
+ if [:post, :put].include?(options.request_method.to_sym)
76
+ send(options.request_method, options.path, options.data, options.headers)
77
+ else
78
+ send(options.request_method, options.path, options.headers)
79
+ end
76
80
  end
77
81
 
78
82
  def exchange_credentials_for_access_token
@@ -167,4 +171,4 @@ module Twurl
167
171
  @access_token ||= OAuth::AccessToken.new(consumer, token, secret)
168
172
  end
169
173
  end
170
- end
174
+ end
data/lib/twurl/version.rb CHANGED
@@ -2,7 +2,7 @@ module Twurl
2
2
  module VERSION
3
3
  MAJOR = '0' unless defined? MAJOR
4
4
  MINOR = '6' unless defined? MINOR
5
- TINY = '2' unless defined? TINY
5
+ TINY = '3' unless defined? TINY
6
6
  BETA = nil unless defined? BETA # Time.now.to_i.to_s
7
7
  end
8
8
 
data/test/cli_test.rb CHANGED
@@ -94,6 +94,22 @@ class Twurl::CLI::OptionParsingTest < Test::Unit::TestCase
94
94
  end
95
95
  include DataParsingTests
96
96
 
97
+ module HeaderParsingTests
98
+ def test_extracting_a_single_header
99
+ options = Twurl::CLI.parse_options(['-A', 'Key: Value'])
100
+ assert_equal({'Key' => 'Value'}, options.headers)
101
+
102
+ options = Twurl::CLI.parse_options(['--header', 'Key: Value'])
103
+ assert_equal({'Key' => 'Value'}, options.headers)
104
+ end
105
+
106
+ def test_multiple_headers_when_option_is_specified_multiple_times_on_command_line_collects_all
107
+ options = Twurl::CLI.parse_options(['-A', 'Key: Value', '-A', 'Another: Pair'])
108
+ assert_equal({'Key' => 'Value', 'Another' => 'Pair'}, options.headers)
109
+ end
110
+ end
111
+ include HeaderParsingTests
112
+
97
113
  module SSLDisablingTests
98
114
  def test_ssl_is_on_by_default
99
115
  options = Twurl::CLI.parse_options([])
@@ -126,4 +142,4 @@ class Twurl::CLI::OptionParsingTest < Test::Unit::TestCase
126
142
  end
127
143
  end
128
144
  include HostOptionTests
129
- end
145
+ end
@@ -11,6 +11,7 @@ class Twurl::OAuthClient::AbstractOAuthClientTest < Test::Unit::TestCase
11
11
  options.request_method = 'get'
12
12
  options.path = '/path/does/not/matter.xml'
13
13
  options.data = {}
14
+ options.headers = {}
14
15
 
15
16
  Twurl.options = options
16
17
  end
@@ -159,4 +160,4 @@ class Twurl::OAuthClient::CredentialsForAccessTokenExchangeTest < Twurl::OAuthCl
159
160
  client.exchange_credentials_for_access_token
160
161
  assert !client.needs_to_authorize?
161
162
  end
162
- end
163
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twurl
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 2
10
- version: 0.6.2
9
+ - 3
10
+ version: 0.6.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Marcel Molina
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-09-29 00:00:00 -07:00
19
+ date: 2011-01-04 00:00:00 -08:00
20
20
  default_executable: twurl
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -93,6 +93,7 @@ extra_rdoc_files:
93
93
  - INSTALL
94
94
  files:
95
95
  - .gitignore
96
+ - CHANGELOG
96
97
  - COPYING
97
98
  - Gemfile
98
99
  - Gemfile.lock