latompa-fleakr 0.5.4 → 0.5.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/fleakr/api/parameter_list.rb +0 -12
- data/lib/fleakr/version.rb +1 -1
- data/lib/fleakr.rb +30 -30
- data/test/unit/fleakr/api/parameter_list_test.rb +36 -36
- data/test/unit/fleakr_test.rb +93 -93
- metadata +1 -1
@@ -22,15 +22,11 @@ module Fleakr
|
|
22
22
|
# => #<Fleakr::Api::ValueParameter:0x1656da4 @include_in_signature=true, @name="foo", @value="bar">
|
23
23
|
#
|
24
24
|
def initialize(options = {})
|
25
|
-
# TODO: need to find a way to move the unexpected behavior in Fleakr.token elsewhere
|
26
|
-
@api_options = options.extract!(:authenticate?)
|
27
|
-
|
28
25
|
@list = Hash.new
|
29
26
|
|
30
27
|
options.each {|k,v| self << ValueParameter.new(k.to_s, v) }
|
31
28
|
|
32
29
|
self << ValueParameter.new('api_key', Fleakr.api_key)
|
33
|
-
self << ValueParameter.new('auth_token', Fleakr.token.value) if authenticate?
|
34
30
|
end
|
35
31
|
|
36
32
|
# Add a new parameter (ValueParameter / FileParameter) to the list
|
@@ -45,14 +41,6 @@ module Fleakr
|
|
45
41
|
!Fleakr.shared_secret.blank?
|
46
42
|
end
|
47
43
|
|
48
|
-
# Should we send the auth_token with the request?
|
49
|
-
#
|
50
|
-
def authenticate?
|
51
|
-
@api_options.has_key?(:authenticate?) ? @api_options[:authenticate?] : !Fleakr.token.blank?
|
52
|
-
end
|
53
|
-
|
54
|
-
# Access an individual parameter by key (symbol or string)
|
55
|
-
#
|
56
44
|
def [](key)
|
57
45
|
list[key.to_s]
|
58
46
|
end
|
data/lib/fleakr/version.rb
CHANGED
data/lib/fleakr.rb
CHANGED
@@ -85,7 +85,7 @@ module Fleakr
|
|
85
85
|
# Generic catch-all exception for any API errors
|
86
86
|
class ApiError < StandardError; end
|
87
87
|
|
88
|
-
mattr_accessor :api_key, :shared_secret
|
88
|
+
mattr_accessor :api_key, :shared_secret
|
89
89
|
|
90
90
|
# Find a user based on some unique user data. This method will try to find
|
91
91
|
# the user based on username and will fall back to email if that fails. Example:
|
@@ -138,34 +138,34 @@ module Fleakr
|
|
138
138
|
Fleakr::Objects::Contact.find_all_contacts(params)
|
139
139
|
end
|
140
140
|
|
141
|
-
# Get the authentication token needed for authenticated requests. Will either use
|
142
|
-
# a valid auth_token (if available) or a mini-token to generate the auth_token.
|
143
|
-
#
|
144
|
-
def self.token
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
end
|
155
|
-
|
156
|
-
# Reset the cached token whenever setting a new value for the mini_token, auth_token, or frob
|
157
|
-
#
|
158
|
-
[:mini_token, :auth_token, :frob].each do |attribute|
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
end
|
166
|
-
|
167
|
-
def self.reset_token # :nodoc: #
|
168
|
-
|
169
|
-
end
|
141
|
+
# # Get the authentication token needed for authenticated requests. Will either use
|
142
|
+
# # a valid auth_token (if available) or a mini-token to generate the auth_token.
|
143
|
+
# #
|
144
|
+
# def self.token
|
145
|
+
# @token ||= begin
|
146
|
+
# if Fleakr.auth_token
|
147
|
+
# Fleakr::Objects::AuthenticationToken.from_auth_token(Fleakr.auth_token)
|
148
|
+
# elsif Fleakr.frob
|
149
|
+
# Fleakr::Objects::AuthenticationToken.from_frob(Fleakr.frob)
|
150
|
+
# elsif Fleakr.mini_token
|
151
|
+
# Fleakr::Objects::AuthenticationToken.from_mini_token(Fleakr.mini_token)
|
152
|
+
# end
|
153
|
+
# end
|
154
|
+
# end
|
155
|
+
#
|
156
|
+
# # Reset the cached token whenever setting a new value for the mini_token, auth_token, or frob
|
157
|
+
# #
|
158
|
+
# [:mini_token, :auth_token, :frob].each do |attribute|
|
159
|
+
# class_eval <<-ACCESSOR
|
160
|
+
# def self.#{attribute}=(#{attribute})
|
161
|
+
# reset_token
|
162
|
+
# @@#{attribute} = #{attribute}
|
163
|
+
# end
|
164
|
+
# ACCESSOR
|
165
|
+
# end
|
166
|
+
#
|
167
|
+
# def self.reset_token # :nodoc: #
|
168
|
+
# @token = nil
|
169
|
+
# end
|
170
170
|
|
171
171
|
end
|
@@ -86,42 +86,42 @@ module Fleakr::Api
|
|
86
86
|
@parameter_list.sign?.should be(true)
|
87
87
|
end
|
88
88
|
|
89
|
-
should "know that it doesn't need to authenticate the request by default" do
|
90
|
-
|
91
|
-
end
|
92
|
-
|
93
|
-
should "know to authenticate the request when a token is available" do
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
end
|
99
|
-
|
100
|
-
should "not authenticate the request if it's been specifically told not to" do
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
end
|
106
|
-
|
107
|
-
|
108
|
-
should "know to authenticate the request when asked" do
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
end
|
114
|
-
|
115
|
-
should "contain the :auth_token parameter in the list if the request is to be authenticated" do
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
end
|
89
|
+
# should "know that it doesn't need to authenticate the request by default" do
|
90
|
+
# @parameter_list.authenticate?.should be(false)
|
91
|
+
# end
|
92
|
+
|
93
|
+
# should "know to authenticate the request when a token is available" do
|
94
|
+
# Fleakr.stubs(:token).with().returns(stub(:value => 'toke'))
|
95
|
+
# parameter_list = ParameterList.new
|
96
|
+
#
|
97
|
+
# parameter_list.authenticate?.should be(true)
|
98
|
+
# end
|
99
|
+
|
100
|
+
# should "not authenticate the request if it's been specifically told not to" do
|
101
|
+
# Fleakr.expects(:token).with().never
|
102
|
+
#
|
103
|
+
# parameter_list = ParameterList.new(:authenticate? => false)
|
104
|
+
# parameter_list.authenticate?.should be(false)
|
105
|
+
# end
|
106
|
+
#
|
107
|
+
|
108
|
+
# should "know to authenticate the request when asked" do
|
109
|
+
# Fleakr.expects(:token).with().returns(stub(:value => 'toke'))
|
110
|
+
#
|
111
|
+
# parameter_list = ParameterList.new(:authenticate? => true)
|
112
|
+
# parameter_list.authenticate?.should be(true)
|
113
|
+
# end
|
114
|
+
|
115
|
+
# should "contain the :auth_token parameter in the list if the request is to be authenticated" do
|
116
|
+
# Fleakr.expects(:token).with().returns(stub(:value => 'toke'))
|
117
|
+
#
|
118
|
+
# parameter_list = ParameterList.new(:authenticate? => true)
|
119
|
+
# auth_param = parameter_list[:auth_token]
|
120
|
+
#
|
121
|
+
# auth_param.name.should == 'auth_token'
|
122
|
+
# auth_param.value.should == 'toke'
|
123
|
+
# auth_param.include_in_signature?.should be(true)
|
124
|
+
# end
|
125
125
|
|
126
126
|
should "include the signature in the list of parameters if the request is to be signed" do
|
127
127
|
parameter_list = ParameterList.new
|
data/test/unit/fleakr_test.rb
CHANGED
@@ -4,7 +4,7 @@ class FleakrTest < Test::Unit::TestCase
|
|
4
4
|
|
5
5
|
context "The Fleakr module" do
|
6
6
|
|
7
|
-
[:api_key, :shared_secret
|
7
|
+
[:api_key, :shared_secret].each do |attribute|
|
8
8
|
should "be able to set a value for :#{attribute}" do
|
9
9
|
value = 'value'
|
10
10
|
|
@@ -74,98 +74,98 @@ class FleakrTest < Test::Unit::TestCase
|
|
74
74
|
Fleakr.upload(filename, :title => 'bop bip').should == [new_image]
|
75
75
|
end
|
76
76
|
|
77
|
-
should "be able to reset the cached token" do
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
end
|
85
|
-
|
86
|
-
should "not have a token by default" do
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
end
|
93
|
-
|
94
|
-
[:mini_token, :auth_token, :frob].each do |attribute|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
end
|
100
|
-
|
101
|
-
context "when generating an AuthenticationToken from an auth_token string" do
|
102
|
-
|
103
|
-
setup do
|
104
|
-
@token = stub()
|
105
|
-
|
106
|
-
Fleakr.expects(:auth_token).with().at_least_once.returns('abc123')
|
107
|
-
Fleakr::Objects::AuthenticationToken.expects(:from_auth_token).with('abc123').returns(@token)
|
108
|
-
end
|
109
|
-
|
110
|
-
# Make sure to clear the cache
|
111
|
-
teardown { Fleakr.auth_token = nil }
|
112
|
-
|
113
|
-
should "return the token" do
|
114
|
-
Fleakr.token.should == @token
|
115
|
-
end
|
116
|
-
|
117
|
-
should "cache the result" do
|
118
|
-
2.times { Fleakr.token }
|
119
|
-
end
|
120
|
-
|
121
|
-
end
|
122
|
-
|
123
|
-
context "when generating an AuthenticationToken from a frob string" do
|
124
|
-
|
125
|
-
setup do
|
126
|
-
@token = stub()
|
127
|
-
|
128
|
-
Fleakr.expects(:auth_token).with().at_least_once.returns(nil)
|
129
|
-
Fleakr.expects(:frob).with().at_least_once.returns('abc123')
|
130
|
-
Fleakr::Objects::AuthenticationToken.expects(:from_frob).with('abc123').returns(@token)
|
131
|
-
end
|
132
|
-
|
133
|
-
# Make sure to clear the cache
|
134
|
-
teardown { Fleakr.frob = nil }
|
135
|
-
|
136
|
-
should "return the token" do
|
137
|
-
Fleakr.token.should == @token
|
138
|
-
end
|
139
|
-
|
140
|
-
should "cache the result" do
|
141
|
-
2.times { Fleakr.token }
|
142
|
-
end
|
143
|
-
|
144
|
-
end
|
145
|
-
|
146
|
-
context "when generating an AuthenticationToken from a mini_token string" do
|
147
|
-
|
148
|
-
setup do
|
149
|
-
@token = stub()
|
150
|
-
|
151
|
-
Fleakr.expects(:auth_token).with().at_least_once.returns(nil)
|
152
|
-
Fleakr.expects(:mini_token).with().at_least_once.returns('123-123-123')
|
153
|
-
Fleakr::Objects::AuthenticationToken.expects(:from_mini_token).with('123-123-123').returns(@token)
|
154
|
-
end
|
155
|
-
|
156
|
-
# Make sure to clear the cache
|
157
|
-
teardown { Fleakr.mini_token = nil }
|
158
|
-
|
159
|
-
should "return the token" do
|
160
|
-
Fleakr.token.should == @token
|
161
|
-
end
|
162
|
-
|
163
|
-
should "cache the result" do
|
164
|
-
2.times { Fleakr.token }
|
165
|
-
end
|
166
|
-
|
167
|
-
end
|
77
|
+
# should "be able to reset the cached token" do
|
78
|
+
# @token = stub()
|
79
|
+
# Fleakr.expects(:auth_token).with().at_least_once.returns('abc123')
|
80
|
+
# Fleakr::Objects::AuthenticationToken.expects(:from_auth_token).with('abc123').times(2).returns(@token)
|
81
|
+
# Fleakr.token # once
|
82
|
+
# Fleakr.reset_token
|
83
|
+
# Fleakr.token # twice
|
84
|
+
# end
|
85
|
+
#
|
86
|
+
# should "not have a token by default" do
|
87
|
+
# Fleakr.expects(:mini_token).with().returns(nil)
|
88
|
+
# Fleakr.expects(:auth_token).with().returns(nil)
|
89
|
+
# Fleakr.expects(:frob).with().returns(nil)
|
90
|
+
#
|
91
|
+
# Fleakr.token.should be(nil)
|
92
|
+
# end
|
93
|
+
#
|
94
|
+
# [:mini_token, :auth_token, :frob].each do |attribute|
|
95
|
+
# should "reset_token when :#{attribute} is set" do
|
96
|
+
# Fleakr.expects(:reset_token).with().at_least_once
|
97
|
+
# Fleakr.send("#{attribute}=".to_sym, 'value')
|
98
|
+
# end
|
99
|
+
# end
|
168
100
|
|
169
|
-
|
101
|
+
# context "when generating an AuthenticationToken from an auth_token string" do
|
102
|
+
#
|
103
|
+
# setup do
|
104
|
+
# @token = stub()
|
105
|
+
#
|
106
|
+
# Fleakr.expects(:auth_token).with().at_least_once.returns('abc123')
|
107
|
+
# Fleakr::Objects::AuthenticationToken.expects(:from_auth_token).with('abc123').returns(@token)
|
108
|
+
# end
|
109
|
+
#
|
110
|
+
# # Make sure to clear the cache
|
111
|
+
# teardown { Fleakr.auth_token = nil }
|
112
|
+
#
|
113
|
+
# should "return the token" do
|
114
|
+
# Fleakr.token.should == @token
|
115
|
+
# end
|
116
|
+
#
|
117
|
+
# should "cache the result" do
|
118
|
+
# 2.times { Fleakr.token }
|
119
|
+
# end
|
120
|
+
#
|
121
|
+
# end
|
122
|
+
#
|
123
|
+
# context "when generating an AuthenticationToken from a frob string" do
|
124
|
+
#
|
125
|
+
# setup do
|
126
|
+
# @token = stub()
|
127
|
+
#
|
128
|
+
# Fleakr.expects(:auth_token).with().at_least_once.returns(nil)
|
129
|
+
# Fleakr.expects(:frob).with().at_least_once.returns('abc123')
|
130
|
+
# Fleakr::Objects::AuthenticationToken.expects(:from_frob).with('abc123').returns(@token)
|
131
|
+
# end
|
132
|
+
#
|
133
|
+
# # Make sure to clear the cache
|
134
|
+
# teardown { Fleakr.frob = nil }
|
135
|
+
#
|
136
|
+
# should "return the token" do
|
137
|
+
# Fleakr.token.should == @token
|
138
|
+
# end
|
139
|
+
#
|
140
|
+
# should "cache the result" do
|
141
|
+
# 2.times { Fleakr.token }
|
142
|
+
# end
|
143
|
+
#
|
144
|
+
# end
|
145
|
+
#
|
146
|
+
# context "when generating an AuthenticationToken from a mini_token string" do
|
147
|
+
#
|
148
|
+
# setup do
|
149
|
+
# @token = stub()
|
150
|
+
#
|
151
|
+
# Fleakr.expects(:auth_token).with().at_least_once.returns(nil)
|
152
|
+
# Fleakr.expects(:mini_token).with().at_least_once.returns('123-123-123')
|
153
|
+
# Fleakr::Objects::AuthenticationToken.expects(:from_mini_token).with('123-123-123').returns(@token)
|
154
|
+
# end
|
155
|
+
#
|
156
|
+
# # Make sure to clear the cache
|
157
|
+
# teardown { Fleakr.mini_token = nil }
|
158
|
+
#
|
159
|
+
# should "return the token" do
|
160
|
+
# Fleakr.token.should == @token
|
161
|
+
# end
|
162
|
+
#
|
163
|
+
# should "cache the result" do
|
164
|
+
# 2.times { Fleakr.token }
|
165
|
+
# end
|
166
|
+
#
|
167
|
+
# end
|
168
|
+
#
|
169
|
+
end
|
170
170
|
|
171
171
|
end
|