rest-core 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.md +13 -0
- data/example/twitter.rb +1 -2
- data/lib/rest-core/client/twitter.rb +11 -5
- data/lib/rest-core/middleware/oauth1_header.rb +3 -2
- data/lib/rest-core/version.rb +1 -1
- data/rest-core.gemspec +3 -2
- metadata +23 -22
data/CHANGES.md
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
# rest-core CHANGES
|
2
|
+
|
3
|
+
## rest-core 0.2.1 -- 2011-08-25
|
4
|
+
|
5
|
+
* [twitter] Fixed default site
|
6
|
+
* [twitter] Now Twitter#tweet accepts a 2nd argument to upload an image
|
7
|
+
* [oauth1_header] Fixed a bug for multipart posting. Since Rails' uploaded
|
8
|
+
file is not an IO object, so we can't only test against
|
9
|
+
IO object, but also read method.
|
10
|
+
|
11
|
+
## rest-core 0.2.0 -- 2011-08-24
|
12
|
+
|
13
|
+
* First serious release!
|
data/example/twitter.rb
CHANGED
@@ -8,5 +8,4 @@ twitter.authorize_url! # copy and paste the URL in browser to authorize
|
|
8
8
|
twitter.authorize!('..') # paste your code from browser
|
9
9
|
p twitter.tweet('hi!') # tweet for the current user
|
10
10
|
|
11
|
-
p twitter.
|
12
|
-
:status => 'hi!', 'media[]' => File.open('...'))
|
11
|
+
p twitter.tweet('hi with pic!', File.open('...'))
|
@@ -5,7 +5,7 @@ RestCore::Twitter = RestCore::Builder.client(:data) do
|
|
5
5
|
s = self.class # this is only for ruby 1.8!
|
6
6
|
use s::Timeout , 10
|
7
7
|
|
8
|
-
use s::DefaultSite , 'https://api.twitter.com/
|
8
|
+
use s::DefaultSite , 'https://api.twitter.com/'
|
9
9
|
use s::DefaultHeaders, {'Accept' => 'application/json'}
|
10
10
|
|
11
11
|
use s::Oauth1Header ,
|
@@ -47,13 +47,19 @@ module RestCore::Twitter::Client
|
|
47
47
|
data['oauth_token_secret'] = secret if data.kind_of?(Hash)
|
48
48
|
end
|
49
49
|
|
50
|
-
def tweet status,
|
51
|
-
|
52
|
-
|
50
|
+
def tweet status, media=nil, opts={}
|
51
|
+
if media
|
52
|
+
post('1/statuses/update_with_media.json',
|
53
|
+
{:status => status, 'media[]' => media},
|
54
|
+
{},
|
55
|
+
{:site => 'https://upload.twitter.com/'}.merge(opts))
|
56
|
+
else
|
57
|
+
post('1/statuses/update.json', {:status => status}, opts)
|
58
|
+
end
|
53
59
|
end
|
54
60
|
|
55
61
|
def statuses user, queries={}, opts={}
|
56
|
-
get('statuses/user_timeline.json', {:id => user}.merge(queries), opts)
|
62
|
+
get('1/statuses/user_timeline.json', {:id => user}.merge(queries), opts)
|
57
63
|
end
|
58
64
|
|
59
65
|
private
|
@@ -64,7 +64,7 @@ class RestCore::Oauth1Header
|
|
64
64
|
else
|
65
65
|
reject_blank(env[REQUEST_PAYLOAD] || {})
|
66
66
|
end
|
67
|
-
query = reject_blank(env[REQUEST_QUERY]
|
67
|
+
query = reject_blank(env[REQUEST_QUERY] || {})
|
68
68
|
params = reject_blank(oauth_params.merge(query.merge(payload))).
|
69
69
|
to_a.sort.map{ |(k, v)|
|
70
70
|
"#{encode(k.to_s)}=#{encode(v.to_s)}"}.join('&')
|
@@ -78,7 +78,8 @@ class RestCore::Oauth1Header
|
|
78
78
|
|
79
79
|
def multipart? env
|
80
80
|
!!(env[REQUEST_PAYLOAD] &&
|
81
|
-
env[REQUEST_PAYLOAD].find{ |k, v| v.kind_of?(IO)
|
81
|
+
env[REQUEST_PAYLOAD].find{ |k, v| v.kind_of?(IO) ||
|
82
|
+
v.respond_to?(:read) })
|
82
83
|
end
|
83
84
|
|
84
85
|
def reject_blank params
|
data/lib/rest-core/version.rb
CHANGED
data/rest-core.gemspec
CHANGED
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{rest-core}
|
5
|
-
s.version = "0.2.
|
5
|
+
s.version = "0.2.1"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = [
|
9
9
|
%q{Cardinal Blue},
|
10
10
|
%q{Lin Jen-Shin (godfat)}]
|
11
|
-
s.date = %q{2011-08-
|
11
|
+
s.date = %q{2011-08-25}
|
12
12
|
s.description = %q{A modular Ruby REST client collection/infrastructure.
|
13
13
|
|
14
14
|
In this era of web services and mashups, we have seen a blooming of REST
|
@@ -29,6 +29,7 @@ for any other REST APIs.
|
|
29
29
|
%q{.gitignore},
|
30
30
|
%q{.gitmodules},
|
31
31
|
%q{.travis.yml},
|
32
|
+
%q{CHANGES.md},
|
32
33
|
%q{CONTRIBUTORS},
|
33
34
|
%q{Gemfile},
|
34
35
|
%q{LICENSE},
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2011-08-
|
13
|
+
date: 2011-08-25 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rest-client
|
17
|
-
requirement: &
|
17
|
+
requirement: &2158064940 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *2158064940
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rack
|
28
|
-
requirement: &
|
28
|
+
requirement: &2158064460 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *2158064460
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: yajl-ruby
|
39
|
-
requirement: &
|
39
|
+
requirement: &2158063980 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *2158063980
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: json
|
50
|
-
requirement: &
|
50
|
+
requirement: &2158063500 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *2158063500
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: json_pure
|
61
|
-
requirement: &
|
61
|
+
requirement: &2158063020 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: '0'
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *2158063020
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: ruby-hmac
|
72
|
-
requirement: &
|
72
|
+
requirement: &2158062540 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: '0'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *2158062540
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: webmock
|
83
|
-
requirement: &
|
83
|
+
requirement: &2158062060 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ! '>='
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: '0'
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *2158062060
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: bacon
|
94
|
-
requirement: &
|
94
|
+
requirement: &2158061580 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ! '>='
|
@@ -99,10 +99,10 @@ dependencies:
|
|
99
99
|
version: '0'
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *2158061580
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: rr
|
105
|
-
requirement: &
|
105
|
+
requirement: &2158094620 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ! '>='
|
@@ -110,10 +110,10 @@ dependencies:
|
|
110
110
|
version: '0'
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *2158094620
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: rake
|
116
|
-
requirement: &
|
116
|
+
requirement: &2158094140 !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|
119
119
|
- - ! '>='
|
@@ -121,7 +121,7 @@ dependencies:
|
|
121
121
|
version: '0'
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
|
-
version_requirements: *
|
124
|
+
version_requirements: *2158094140
|
125
125
|
description: ! 'A modular Ruby REST client collection/infrastructure.
|
126
126
|
|
127
127
|
|
@@ -157,6 +157,7 @@ files:
|
|
157
157
|
- .gitignore
|
158
158
|
- .gitmodules
|
159
159
|
- .travis.yml
|
160
|
+
- CHANGES.md
|
160
161
|
- CONTRIBUTORS
|
161
162
|
- Gemfile
|
162
163
|
- LICENSE
|