roauth 0.0.3 → 0.0.7

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/README.markdown CHANGED
@@ -6,7 +6,10 @@ A *simple* OAuth library that supports OAuth header signing, and header verifyin
6
6
 
7
7
  Example Client:
8
8
 
9
- uri = "https://twitter.com/direct_messages.json"
9
+ require "roauth"
10
+ require "nestful"
11
+
12
+ url = "https://twitter.com/direct_messages.json"
10
13
 
11
14
  oauth = {
12
15
  :consumer_key => "consumer_key",
@@ -19,11 +22,9 @@ Example Client:
19
22
  :count => "11",
20
23
  :since_id => "5000"
21
24
  }
22
- oauth_header = ROAuth.header(oauth, uri, params)
23
-
24
- http_uri = URI.parse(uri)
25
- request = Net::HTTP.new(http_uri.host, http_uri.port)
26
- request.get(uri.request_uri, {'Authorization', oauth_header})
25
+ oauth_header = ROAuth.header(oauth, url, params)
26
+
27
+ Nestful.get(url, :params => params, :headers => {'Authorization' => oauth_header})
27
28
 
28
29
  Example Server:
29
30
 
data/Rakefile CHANGED
@@ -1,3 +1,6 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
1
4
  begin
2
5
  require 'jeweler'
3
6
  Jeweler::Tasks.new do |gemspec|
@@ -9,5 +12,16 @@ begin
9
12
  gemspec.authors = ["Alex MacCaw"]
10
13
  end
11
14
  rescue LoadError
12
- puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
13
- end
15
+ puts "Jeweler not available. Install it with: sudo gem install jeweler"
16
+ end
17
+
18
+
19
+ require 'rake/testtask'
20
+ Rake::TestTask.new(:test) do |test|
21
+ test.libs << 'lib' << 'test'
22
+ test.pattern = 'test/**/test_*.rb'
23
+ test.verbose = true
24
+ end
25
+
26
+ task :test => :check_dependencies
27
+ task :default => :test
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.7
data/lib/roauth.rb CHANGED
@@ -77,7 +77,7 @@ module ROAuth
77
77
  uri.query = nil
78
78
  uri = uri.to_s
79
79
 
80
- sig_base = http_method.to_s.upcase + "&" + escape(uri) + "&" + normalize(params)
80
+ sig_base = http_method.to_s.upcase + "&" + escape(uri) + "&" + escape(normalize(params))
81
81
  digest = SIGNATURE_METHODS[oauth[:signature_method]]
82
82
  secret = "#{escape(oauth[:consumer_secret])}&#{escape(oauth[:token_secret])}"
83
83
 
@@ -97,17 +97,17 @@ module ROAuth
97
97
  def normalize(params)
98
98
  # Stringify keys - so we can compare them
99
99
  params.keys.each {|key| params[key.to_s] = params.delete(key) }
100
- params.sort.map do |key, values|
100
+ params.sort_by {|key, values| key.to_s }.map do |key, values|
101
101
  if values.is_a?(Array)
102
102
  # Multiple values were provided for a single key
103
103
  # in a hash
104
- values.sort.collect do |v|
105
- [escape(key), escape(v)] * "%3D"
104
+ values.sort_by(&:to_s).collect do |v|
105
+ [escape(key), escape(v)] * "="
106
106
  end
107
107
  else
108
- [escape(key), escape(values)] * "%3D"
108
+ [escape(key), escape(values)] * "="
109
109
  end
110
- end * "%26"
110
+ end * "&"
111
111
  end
112
112
  extend self
113
- end
113
+ end
data/roauth.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{roauth}
8
- s.version = "0.0.3"
8
+ s.version = "0.0.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Alex MacCaw"]
12
- s.date = %q{2010-08-16}
12
+ s.date = %q{2010-10-13}
13
13
  s.description = %q{Simple Ruby OAuth library}
14
14
  s.email = %q{info@eribium.org}
15
15
  s.extra_rdoc_files = [
@@ -23,13 +23,19 @@ Gem::Specification.new do |s|
23
23
  "Rakefile",
24
24
  "VERSION",
25
25
  "lib/roauth.rb",
26
- "roauth.gemspec"
26
+ "roauth.gemspec",
27
+ "test/helper.rb",
28
+ "test/test_roauth.rb"
27
29
  ]
28
30
  s.homepage = %q{http://github.com/maccman/roauth}
29
31
  s.rdoc_options = ["--charset=UTF-8"]
30
32
  s.require_paths = ["lib"]
31
33
  s.rubygems_version = %q{1.3.7}
32
34
  s.summary = %q{Simple Ruby OAuth library}
35
+ s.test_files = [
36
+ "test/helper.rb",
37
+ "test/test_roauth.rb"
38
+ ]
33
39
 
34
40
  if s.respond_to? :specification_version then
35
41
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
data/test/helper.rb ADDED
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require 'shoulda'
4
+
5
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
7
+ require 'roauth'
8
+
9
+ class Test::Unit::TestCase
10
+ end
@@ -0,0 +1,47 @@
1
+ require 'helper'
2
+
3
+ class TestRoauth < Test::Unit::TestCase
4
+ should "correctly sign params" do
5
+ url = "https://twitter.com/direct_messages.json"
6
+
7
+ oauth = {
8
+ :consumer_key => "consumer_key",
9
+ :consumer_secret => "consumer_secret",
10
+ :access_key => "access_key",
11
+ :access_secret => "access_secret",
12
+ :nonce => "foo",
13
+ :timestamp => 1286967499
14
+ }
15
+
16
+ params = {
17
+ :count => "11",
18
+ :since_id => "5000"
19
+ }
20
+
21
+ oauth_header = ROAuth.header(oauth, url, params)
22
+ signature = ROAuth.parse(oauth_header)[:signature]
23
+
24
+ assert_equal "9/g1ge6nLYVkBsTEqgxH0Xlv2O4=", signature
25
+ end
26
+
27
+ should "verify correctly signed params" do
28
+ url = "https://twitter.com/direct_messages.json"
29
+
30
+ oauth = {
31
+ :consumer_key => "consumer_key",
32
+ :consumer_secret => "consumer_secret",
33
+ :access_key => "access_key",
34
+ :access_secret => "access_secret",
35
+ :nonce => "foo",
36
+ :timestamp => 1286967499
37
+ }
38
+
39
+ params = {
40
+ :count => "11",
41
+ :since_id => "5000"
42
+ }
43
+
44
+ header = %{OAuth oauth_consumer_key="consumer_key", oauth_nonce="foo", oauth_signature="9%2Fg1ge6nLYVkBsTEqgxH0Xlv2O4%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1286967499", oauth_token="access_key", oauth_version="1.0"}
45
+ assert ROAuth.verify(oauth, header, url, params), "verify failed"
46
+ end
47
+ end
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roauth
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 0
8
- - 3
9
- version: 0.0.3
4
+ prerelease:
5
+ version: 0.0.7
10
6
  platform: ruby
11
7
  authors:
12
8
  - Alex MacCaw
@@ -14,7 +10,7 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2010-08-16 00:00:00 +01:00
13
+ date: 2011-06-09 00:00:00 -07:00
18
14
  default_executable:
19
15
  dependencies: []
20
16
 
@@ -28,20 +24,21 @@ extra_rdoc_files:
28
24
  - LICENSE
29
25
  - README.markdown
30
26
  files:
31
- - .gitignore
32
27
  - LICENSE
33
28
  - README.markdown
34
29
  - Rakefile
35
30
  - VERSION
36
31
  - lib/roauth.rb
37
32
  - roauth.gemspec
33
+ - test/helper.rb
34
+ - test/test_roauth.rb
38
35
  has_rdoc: true
39
36
  homepage: http://github.com/maccman/roauth
40
37
  licenses: []
41
38
 
42
39
  post_install_message:
43
- rdoc_options:
44
- - --charset=UTF-8
40
+ rdoc_options: []
41
+
45
42
  require_paths:
46
43
  - lib
47
44
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -49,21 +46,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
49
46
  requirements:
50
47
  - - ">="
51
48
  - !ruby/object:Gem::Version
52
- segments:
53
- - 0
54
49
  version: "0"
55
50
  required_rubygems_version: !ruby/object:Gem::Requirement
56
51
  none: false
57
52
  requirements:
58
53
  - - ">="
59
54
  - !ruby/object:Gem::Version
60
- segments:
61
- - 0
62
55
  version: "0"
63
56
  requirements: []
64
57
 
65
58
  rubyforge_project:
66
- rubygems_version: 1.3.7
59
+ rubygems_version: 1.6.0
67
60
  signing_key:
68
61
  specification_version: 3
69
62
  summary: Simple Ruby OAuth library
data/.gitignore DELETED
@@ -1,2 +0,0 @@
1
- pkg
2
- *.gem