oauth-active-resource 0.4.4 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -4,14 +4,14 @@ require 'rake'
4
4
  begin
5
5
  require 'jeweler'
6
6
  Jeweler::Tasks.new do |gem|
7
- gem.name = "oauth-active-resource"
8
- gem.summary = "An OAuth enabled ActiveResource wrapper"
9
- gem.email = "johannes@wagener.cc"
7
+ gem.name = "oauth-active-resource"
8
+ gem.summary = "An OAuth enabled ActiveResource wrapper"
9
+ gem.email = "johannes@wagener.cc"
10
10
  gem.homepage = "http://github.com/jwagener/oauth-active-resource"
11
- gem.authors = ["Johannes Wagener"]
11
+ gem.authors = [ "Johannes Wagener", "Hannes Tyden" ]
12
12
  gem.add_dependency "oauth", ">= 0.3.6"
13
- gem.add_dependency "activeresource"
14
- gem.add_dependency "multipart"
13
+ gem.add_dependency "activeresource"
14
+ gem.add_dependency "multipart"
15
15
  end
16
16
  rescue LoadError
17
17
  puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 4
4
- :patch: 4
4
+ :patch: 5
@@ -1,19 +1,20 @@
1
1
  require 'rubygems'
2
2
 
3
3
  gem 'activeresource'
4
- require 'activeresource'
4
+ require 'active_resource'
5
+
6
+ gem 'oauth'
7
+ require 'oauth'
5
8
 
6
9
  require 'digest/md5'
7
10
 
8
11
  module OAuthActiveResource
9
-
10
12
  # TODO check if klass has ancestor OAuthActiveResource
11
13
  def self.register(add_to_module, model_module, options = {})
12
-
13
14
  oauth_connection = options[:access_token]
14
15
 
15
16
  if oauth_connection.nil?
16
- oauth_connection = FakeOAuthAccessToken.new
17
+ oauth_connection = FakeOAuthAccessToken.new
17
18
  end
18
19
 
19
20
  site = options[:site]
@@ -22,7 +23,7 @@ module OAuthActiveResource
22
23
  model_module.constants.each do |klass|
23
24
  # TODO check if klass.is_a OAuthActiveResource
24
25
  sub = Class.new(model_module.const_get(klass)) do
25
- self.site = site
26
+ self.site = site
26
27
  @oauth_connection = oauth_connection
27
28
  end
28
29
  const_set(klass, sub)
@@ -37,30 +38,28 @@ module OAuthActiveResource
37
38
  def self.destroy
38
39
  name = self.model_name.split('::').last
39
40
  self.parent.send :remove_const, name
40
- end
41
+ end
41
42
  end
42
43
 
43
44
  # Obscure (=Hash) token+secret, b/c it should stay one
44
45
  if oauth_connection.nil?
45
46
  dynamic_module_name = "AnonymousConsumer"
46
47
  else
47
- hash = Digest::MD5.hexdigest("#{oauth_connection.token}#{oauth_connection.secret}")
48
+ hash = Digest::MD5.hexdigest("#{oauth_connection.token}#{oauth_connection.secret}")
48
49
  dynamic_module_name = "OAuthConsumer#{hash}"
49
50
  end
50
51
 
51
52
  if add_to_module.const_defined? dynamic_module_name
52
- mod = add_to_module.const_get dynamic_module_name
53
+ mod = add_to_module.const_get dynamic_module_name
53
54
  else
54
- add_to_module.const_set(dynamic_module_name, mod)
55
+ add_to_module.const_set(dynamic_module_name, mod)
55
56
  end
56
57
 
57
58
  return mod
58
59
  end
59
-
60
60
  end
61
61
 
62
-
63
- require 'oauth_active_resource/connection'
64
- require 'oauth_active_resource/resource'
65
- require 'oauth_active_resource/unique_resource_array'
66
- require 'oauth_active_resource/fake_oauth_access_token'
62
+ require File.expand_path('oauth_active_resource/connection', File.dirname(__FILE__))
63
+ require File.expand_path('oauth_active_resource/resource', File.dirname(__FILE__))
64
+ require File.expand_path('oauth_active_resource/unique_resource_array', File.dirname(__FILE__))
65
+ require File.expand_path('oauth_active_resource/fake_oauth_access_token', File.dirname(__FILE__))
@@ -1,7 +1,6 @@
1
1
  module OAuthActiveResource
2
-
3
2
  class Connection < ActiveResource::Connection
4
- def initialize(oauth_connection, *args)
3
+ def initialize(oauth_connection, *args)
5
4
  @oauth_connection = oauth_connection
6
5
  super(*args)
7
6
  end
@@ -19,25 +18,25 @@ module OAuthActiveResource
19
18
  # ugly code to insert the error_message into response
20
19
  error_message = "#{format.decode response.body}"
21
20
  if not error_message.nil? or error_message == ""
22
- exc.response.instance_eval do ||
21
+ exc.response.instance_eval do ||
23
22
  @message = error_message
24
23
  end
25
- end
24
+ end
26
25
  ensure
27
26
  raise exc
28
27
  end
29
28
  end
30
29
 
31
- private
32
- def request(method, path, *arguments)
30
+ private
31
+ def request(method, path, *arguments)
33
32
  if @oauth_connection == nil
34
33
  super(method, path, *arguments)
35
34
  else
36
- response = @oauth_connection.request(method, "#{site.scheme}://#{site.host}:#{site.port}#{path}", *arguments)
35
+ response = @oauth_connection.request(method, "#{site.scheme}://#{site.host}:#{site.port}#{path}", *arguments)
37
36
  handle_response(response)
38
37
  end
39
- rescue Timeout::Error => e
38
+ rescue Timeout::Error => e
40
39
  raise TimeoutError.new(e.message)
41
- end
40
+ end
42
41
  end
43
42
  end
@@ -1,16 +1,14 @@
1
1
  module OAuthActiveResource
2
-
3
2
  # just simulates the request and sign! methods of a oauth access token
4
- class FakeOAuthAccessToken < OAuth::Consumer
5
-
3
+ class FakeOAuthAccessToken < ::OAuth::Consumer
6
4
  attr_accessor :token, :secret
7
5
  def initialize()
8
6
  @key = nil
9
- token = 'Anonymous'
10
- secret = 'Anonymous'
7
+ token = 'Anonymous'
8
+ secret = 'Anonymous'
11
9
 
12
10
  # ensure that keys are symbols
13
- @options = @@default_options
11
+ @options = @@default_options
14
12
  end
15
13
 
16
14
  def request(http_method, path, token = nil, request_options = {}, *arguments)
@@ -18,12 +16,9 @@ module OAuthActiveResource
18
16
  @http = create_http(path)
19
17
  _uri = URI.parse(path)
20
18
  path = "#{_uri.path}#{_uri.query ? "?#{_uri.query}" : ""}"
21
-
22
19
  end
23
20
 
24
- rsp = http.request(create_http_request(http_method, path, token, request_options, *arguments))
25
-
26
- rsp
21
+ http.request(create_http_request(http_method, path, token, request_options, *arguments))
27
22
  end
28
23
 
29
24
  def get(path, headers = {})
@@ -49,7 +44,5 @@ module OAuthActiveResource
49
44
  def sign!(*args)
50
45
  # do nothing
51
46
  end
52
-
53
47
  end
54
48
  end
55
-
@@ -11,14 +11,14 @@ module OAuthActiveResource
11
11
 
12
12
  def self.connection(refresh = false)
13
13
  @connection = Connection.new(oauth_connection, site,format) if @connection.nil? || refresh
14
- @connection.timeout = timeout if timeout
15
- return @connection
14
+ @connection.timeout = timeout if timeout
15
+ return @connection
16
16
  end
17
17
 
18
18
  #TODO remove when soundcloud api is fixed
19
19
  # if self has no id, try extracting from uri
20
20
  def load(*args)
21
- super(*args)
21
+ super(*args)
22
22
  self.id = self.uri.split('/').last if self.id.nil? and defined? self.uri
23
23
  end
24
24
 
@@ -30,16 +30,16 @@ module OAuthActiveResource
30
30
 
31
31
  def self.load_collection(*args)
32
32
  instantiate_collection(*args)
33
- end
33
+ end
34
34
 
35
35
  #
36
36
  # belongs_to :user
37
37
  # => will look for a user-id tag and load this user
38
- #
38
+ #
39
39
  def self.belongs_to(*args)
40
- args.each do |k|
40
+ args.each do |k|
41
41
  name = k.to_s
42
- define_method(k) do
42
+ define_method(k) do
43
43
  if @belongs_to_cache.nil?
44
44
  @belongs_to_cache = {}
45
45
  end
@@ -47,7 +47,7 @@ module OAuthActiveResource
47
47
  resource = find_or_create_resource_for(name)
48
48
  @belongs_to_cache[name] = resource.find(self.send("#{name}_id"))
49
49
  end
50
- return @belongs_to_cache[name]
50
+ return @belongs_to_cache[name]
51
51
  end
52
52
  end
53
53
  end
@@ -58,29 +58,29 @@ module OAuthActiveResource
58
58
  # User 123 (http://example.com/users/123/) has many friends
59
59
  # The list of friends can be accessed by http://example.com/users/123/friends
60
60
  # Our class definition:
61
- #
61
+ #
62
62
  # class User < Resource
63
63
  # has_many :friends
64
64
  # end
65
- #
65
+ #
66
66
  # user = User.find(123)
67
67
  # user.friends.each do |friend|
68
68
  # p friend.name
69
69
  # end
70
- #
71
- # # adding a friend
70
+ #
71
+ # # adding a friend
72
72
  # stranger = User.find(987)
73
73
  # user.friends << stranger
74
74
  # user.friends.save
75
75
  # => sends a PUT with collection of friends to http://example.com/users/123/friends ## OUTDATED!!?
76
76
 
77
77
  def self.has_many(*args)
78
- args.each do |k|
78
+ args.each do |k|
79
79
  name = k.to_s
80
80
  singular = name.singularize
81
- define_method(k) do |*options|
81
+ define_method(k) do |*options|
82
82
 
83
- options = options.first || {}
83
+ options = options.first || {}
84
84
  #if @has_many_cache.nil?
85
85
  # @has_many_cache = {}
86
86
  #end
@@ -92,13 +92,13 @@ module OAuthActiveResource
92
92
  resource = find_or_create_resource_for(singular)
93
93
  @has_many_cache[cache_name] = OAuthActiveResource::UniqueResourceArray.new(self.connection,resource,collection_path,options)
94
94
  end
95
- return @has_many_cache[cache_name]
95
+ return @has_many_cache[cache_name]
96
96
  end
97
97
  end
98
98
  end
99
99
 
100
100
 
101
- # ignore is added because the multipart gem is adding an extra new line
101
+ # ignore is added because the multipart gem is adding an extra new line
102
102
  # to the last parameter which will break parsing of track[sharing]
103
103
  def self.multipart_bug_fix(params)
104
104
  ordered_params = ActiveSupport::OrderedHash.new
@@ -122,9 +122,9 @@ module OAuthActiveResource
122
122
  files.each do |k,v|
123
123
  file_hash[k] = Net::HTTP::FileForPost.new(v)
124
124
  end
125
- req.set_multipart_data(file_hash, params)
125
+ req.set_multipart_data(file_hash, params)
126
126
 
127
- oauth_connection.sign!(req) if not oauth_connection.nil?
127
+ oauth_connection.sign!(req) if not oauth_connection.nil?
128
128
  res = Net::HTTP.new(site.host, site.port).start do |http|
129
129
  http.request(req)
130
130
  end
@@ -38,8 +38,8 @@ module OAuthActiveResource
38
38
 
39
39
  # see has_many in Resource
40
40
  class UniqueResourceArray < UniqueArray
41
- def initialize(connection, resource, collection_path,options = {})
42
- super()
41
+ def initialize(connection, resource, collection_path,options = {})
42
+ super()
43
43
 
44
44
  @connection = connection
45
45
  @collection_path = collection_path
@@ -58,20 +58,19 @@ module OAuthActiveResource
58
58
  return "<#{pt}> #{self.map { |obj| obj.to_xml({:skip_instruct => true})}.join(' ')} </#{pt}>"
59
59
  end
60
60
 
61
-
62
61
  # DEPRECATED...
63
- #def find(look_for)
64
- # if not (look_for.is_a? String or look_for.is_a? Integer)
65
- # look_for_id = look_for
66
- # else
67
- # look_for_id = look_for.id
68
- # end
69
- #
70
- # self.each do |obj|
71
- # obj.id == look_for_id and return obj
72
- # end
73
- # return nil
74
- #end
62
+ # def find(look_for)
63
+ # if not (look_for.is_a? String or look_for.is_a? Integer)
64
+ # look_for_id = look_for
65
+ # else
66
+ # look_for_id = look_for.id
67
+ # end
68
+ #
69
+ # self.each do |obj|
70
+ # obj.id == look_for_id and return obj
71
+ # end
72
+ # return nil
73
+ # end
75
74
 
76
75
  def save
77
76
  response = @connection.handle_response( @connection.put("#{@collection_path}",self.to_xml) )
@@ -83,5 +82,4 @@ module OAuthActiveResource
83
82
  return self
84
83
  end
85
84
  end
86
-
87
85
  end
@@ -1,12 +1,15 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
1
4
  # -*- encoding: utf-8 -*-
2
5
 
3
6
  Gem::Specification.new do |s|
4
7
  s.name = %q{oauth-active-resource}
5
- s.version = "0.4.4"
8
+ s.version = "0.4.5"
6
9
 
7
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Johannes Wagener"]
9
- s.date = %q{2009-11-19}
11
+ s.authors = ["Johannes Wagener", "Hannes Tyden"]
12
+ s.date = %q{2010-05-26}
10
13
  s.email = %q{johannes@wagener.cc}
11
14
  s.extra_rdoc_files = [
12
15
  "LICENSE",
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oauth-active-resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Johannes Wagener
8
+ - Hannes Tyden
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
12
 
12
- date: 2009-11-19 00:00:00 +01:00
13
+ date: 2010-05-26 00:00:00 +02:00
13
14
  default_executable:
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency