tumblr-rb 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +2 -2
- data/Gemfile.lock +25 -24
- data/Rakefile +1 -3
- data/lib/tumblr.rb +1 -1
- data/lib/tumblr/post.rb +5 -0
- data/lib/tumblr/writer.rb +7 -0
- data/test/fixtures/vcr_cassettes/write/reblog.yml +31 -0
- data/test/helper.rb +9 -5
- data/test/test_tumblr.rb +16 -2
- data/tumblr-rb.gemspec +6 -5
- metadata +6 -5
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
vcr:
|
20
20
|
group:
|
21
21
|
- :test
|
22
|
-
version: ">= 0"
|
22
|
+
version: ">= 0.3.1"
|
23
23
|
jeweler:
|
24
24
|
group:
|
25
25
|
- :test
|
@@ -29,36 +29,37 @@ dependencies:
|
|
29
29
|
- :test
|
30
30
|
version: ">= 0"
|
31
31
|
specs:
|
32
|
+
- rake:
|
33
|
+
version: 0.8.7
|
34
|
+
- contest:
|
35
|
+
version: 0.1.2
|
36
|
+
- crack:
|
37
|
+
version: 0.1.7
|
38
|
+
- fakeweb:
|
39
|
+
version: 1.2.8
|
32
40
|
- json_pure:
|
33
|
-
version: 1.2.
|
41
|
+
version: 1.2.4
|
42
|
+
- gemcutter:
|
43
|
+
version: 0.5.0
|
34
44
|
- git:
|
35
45
|
version: 1.2.5
|
36
|
-
-
|
37
|
-
version: 1.
|
46
|
+
- highline:
|
47
|
+
version: 1.5.2
|
38
48
|
- rubyforge:
|
39
49
|
version: 2.0.4
|
50
|
+
- jeweler:
|
51
|
+
version: 1.4.0
|
40
52
|
- ruby-hmac:
|
41
53
|
version: 0.4.0
|
42
|
-
- crack:
|
43
|
-
version: 0.1.7
|
44
54
|
- oauth:
|
45
55
|
version: 0.3.6
|
46
|
-
-
|
47
|
-
version:
|
48
|
-
- rake:
|
49
|
-
version: 0.8.7
|
50
|
-
- gemcutter:
|
51
|
-
version: 0.5.0
|
52
|
-
- jeweler:
|
53
|
-
version: 1.4.0
|
54
|
-
- contest:
|
55
|
-
version: 0.1.2
|
56
|
-
- highline:
|
57
|
-
version: 1.5.2
|
58
|
-
- fakeweb:
|
59
|
-
version: 1.2.8
|
56
|
+
- redgreen:
|
57
|
+
version: 1.2.2
|
60
58
|
- vcr:
|
61
|
-
version: 0.1
|
62
|
-
|
63
|
-
|
64
|
-
|
59
|
+
version: 0.3.1
|
60
|
+
- weary:
|
61
|
+
version: 0.7.2
|
62
|
+
hash: 494102bf0992e5bb83118c12065b38b342f1de6a
|
63
|
+
sources:
|
64
|
+
- Rubygems:
|
65
|
+
uri: http://rubygems.org
|
data/Rakefile
CHANGED
@@ -23,7 +23,7 @@ begin
|
|
23
23
|
gem.authors = ["Mark Wunsch"]
|
24
24
|
gem.add_dependency 'weary', '>= 0.7.1'
|
25
25
|
gem.add_dependency 'highline', '>= 1.5.2'
|
26
|
-
gem.add_development_dependency "bundler", ">= 0.9.
|
26
|
+
gem.add_development_dependency "bundler", ">= 0.9.19"
|
27
27
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
28
28
|
end
|
29
29
|
Jeweler::GemcutterTasks.new
|
@@ -51,8 +51,6 @@ rescue LoadError
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
|
-
task :test => :check_dependencies
|
55
|
-
|
56
54
|
task :default => :test
|
57
55
|
|
58
56
|
require 'rake/rdoctask'
|
data/lib/tumblr.rb
CHANGED
data/lib/tumblr/post.rb
CHANGED
@@ -7,6 +7,7 @@ class Tumblr
|
|
7
7
|
POST_PARAMS = [:title,:body,:source,:caption,:'click-through-url',
|
8
8
|
:quote,:name,:url,:description,:conversation,
|
9
9
|
:embed,:'externally-hosted-url']
|
10
|
+
REBLOG_PARAMS = [:comment, :as]
|
10
11
|
|
11
12
|
def self.parameters(*attributes)
|
12
13
|
if !attributes.blank?
|
@@ -88,6 +89,10 @@ class Tumblr
|
|
88
89
|
Writer.new(email,password).edit(to_h)
|
89
90
|
end
|
90
91
|
|
92
|
+
def reblog(email, password)
|
93
|
+
Writer.new(email,password).reblog(to_h)
|
94
|
+
end
|
95
|
+
|
91
96
|
def delete(email, password)
|
92
97
|
Writer.new(email,password).delete(to_h)
|
93
98
|
end
|
data/lib/tumblr/writer.rb
CHANGED
@@ -22,6 +22,13 @@ class Tumblr
|
|
22
22
|
edit.with = (Post::BASIC_PARAMS | Post::POST_PARAMS)
|
23
23
|
end
|
24
24
|
|
25
|
+
# http://www.tumblr.com/docs/en/api#reblogging_posts
|
26
|
+
post :reblog do |reblog|
|
27
|
+
reblog.url = 'http://www.tumblr.com/api/reblog'
|
28
|
+
reblog.requires = [:email, :password, :'post-id', :'reblog-key']
|
29
|
+
reblog.with = (Post::BASIC_PARAMS | Post::POST_PARAMS | Post::REBLOG_PARAMS)
|
30
|
+
end
|
31
|
+
|
25
32
|
# http://www.tumblr.com/docs/en/api#deleting_posts
|
26
33
|
post :delete do |del|
|
27
34
|
del.url = 'http://www.tumblr.com/api/delete'
|
@@ -0,0 +1,31 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::RecordedResponse
|
3
|
+
method: :post
|
4
|
+
uri: http://www.tumblr.com:80/api/reblog
|
5
|
+
response: !ruby/object:Net::HTTPCreated
|
6
|
+
body: "508128650"
|
7
|
+
body_exist: true
|
8
|
+
code: "201"
|
9
|
+
header:
|
10
|
+
p3p:
|
11
|
+
- CP="ALL ADM DEV PSAi COM OUR OTRo STP IND ONL"
|
12
|
+
content-type:
|
13
|
+
- text/plain; charset=utf-8
|
14
|
+
connection:
|
15
|
+
- close
|
16
|
+
x-tumblr-usec:
|
17
|
+
- D=380408
|
18
|
+
server:
|
19
|
+
- Apache/2.2.3 (Red Hat)
|
20
|
+
date:
|
21
|
+
- Fri, 09 Apr 2010 12:36:41 GMT
|
22
|
+
content-length:
|
23
|
+
- "9"
|
24
|
+
x-tumblr-perf:
|
25
|
+
- "\"ch:12/country_code_for_ip,posts,tumblelogs,tumblelogs,version,users,users,tumblelogs,tumblelogs,version,users,users cm:4/rate-limiter,rate-limiter,users,version ce:0/ c:0/0 d:0/0 e:0/0\""
|
26
|
+
vary:
|
27
|
+
- Accept-Encoding
|
28
|
+
http_version: "1.1"
|
29
|
+
message: Created
|
30
|
+
read: true
|
31
|
+
socket:
|
data/test/helper.rb
CHANGED
@@ -11,8 +11,12 @@ end
|
|
11
11
|
require 'pp'
|
12
12
|
require 'test/unit'
|
13
13
|
require 'contest'
|
14
|
-
require 'redgreen'
|
15
14
|
require 'vcr'
|
15
|
+
# Ruby 1.9 does not like redgreen
|
16
|
+
begin
|
17
|
+
require 'redgreen'
|
18
|
+
rescue LoadError
|
19
|
+
end
|
16
20
|
|
17
21
|
begin
|
18
22
|
require 'tumblr'
|
@@ -26,15 +30,15 @@ FakeWeb.allow_net_connect = false
|
|
26
30
|
|
27
31
|
VCR.config do |c|
|
28
32
|
# the cache_dir is where the cassette yml files will be saved.
|
29
|
-
c.
|
33
|
+
c.cassette_library_dir = File.join(File.dirname(__FILE__),'fixtures', 'vcr_cassettes')
|
30
34
|
|
31
35
|
# this record mode will be used for any cassette you create without specifying a record mode.
|
32
|
-
c.
|
36
|
+
c.default_cassette_options = {:record => :none}
|
33
37
|
end
|
34
38
|
|
35
39
|
def hijack!(request, fixture)
|
36
|
-
record_mode = File.exist?(VCR::Cassette.new(fixture).
|
37
|
-
VCR.
|
40
|
+
record_mode = File.exist?(VCR::Cassette.new(fixture).file) ? :none : :unregistered
|
41
|
+
VCR.use_cassette(fixture, :record => record_mode) do
|
38
42
|
request.perform
|
39
43
|
end
|
40
44
|
end
|
data/test/test_tumblr.rb
CHANGED
@@ -118,7 +118,7 @@ link
|
|
118
118
|
|
119
119
|
test 'executes' do
|
120
120
|
cred = {:email => 'test@testermcgee.com', :password => 'dontrevealmysecrets'}
|
121
|
-
response = VCR.
|
121
|
+
response = VCR.use_cassette('write/write') do
|
122
122
|
Tumblr.execute(cred, 'Hello World.')
|
123
123
|
end
|
124
124
|
assert response.is_a? Weary::Response
|
@@ -253,7 +253,7 @@ link
|
|
253
253
|
|
254
254
|
test 'gets all the posts for a username' do
|
255
255
|
reader = Tumblr::Reader.new('test@testermcgee.com','dontrevealmysecrets')
|
256
|
-
posts = VCR.
|
256
|
+
posts = VCR.use_cassette('read/authenticated') do
|
257
257
|
reader.get_all_posts('mwunsch')
|
258
258
|
end
|
259
259
|
assert_equal 66, posts.count
|
@@ -309,6 +309,14 @@ link
|
|
309
309
|
assert response.success?
|
310
310
|
assert_equal 'Deleted', response.body
|
311
311
|
end
|
312
|
+
|
313
|
+
test 'reblogs a post' do
|
314
|
+
assert_respond_to Tumblr::Writer.new, :reblog
|
315
|
+
publisher = Tumblr::Writer.new('test@testermcgee.com','dontrevealmysecrets')
|
316
|
+
post = {:'post-id' => "507998507", :'reblog-key' => 'DifhdmQI'}
|
317
|
+
response = hijack! publisher.reblog(post), 'write/reblog'
|
318
|
+
assert_equal 201, response.code
|
319
|
+
end
|
312
320
|
end
|
313
321
|
|
314
322
|
describe 'Authenticator' do
|
@@ -469,6 +477,12 @@ link
|
|
469
477
|
assert post.delete('test@testermcgee.com','dontrevealmysecrets').is_a? Weary::Request
|
470
478
|
end
|
471
479
|
|
480
|
+
test 'reblogs itself' do
|
481
|
+
post = Tumblr::Post.new(123)
|
482
|
+
post.reblog_key = '0U812'
|
483
|
+
assert post.reblog('test@testermcgee.com','dontrevealmysecrets').is_a? Weary::Request
|
484
|
+
end
|
485
|
+
|
472
486
|
test 'likes itself' do
|
473
487
|
post = Tumblr::Post.new(445597771)
|
474
488
|
post.reblog_key = "DLVWOpfh"
|
data/tumblr-rb.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{tumblr-rb}
|
8
|
-
s.version = "1.
|
8
|
+
s.version = "1.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Mark Wunsch"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-04-14}
|
13
13
|
s.default_executable = %q{tumblr}
|
14
14
|
s.description = %q{Ruby library and command line utility to work with the Tumblr Blogging Platform, powered by Weary.}
|
15
15
|
s.email = %q{mark@markwunsch.com}
|
@@ -56,6 +56,7 @@ Gem::Specification.new do |s|
|
|
56
56
|
"test/fixtures/vcr_cassettes/read/unlike.yml",
|
57
57
|
"test/fixtures/vcr_cassettes/write/delete.yml",
|
58
58
|
"test/fixtures/vcr_cassettes/write/edit.yml",
|
59
|
+
"test/fixtures/vcr_cassettes/write/reblog.yml",
|
59
60
|
"test/fixtures/vcr_cassettes/write/write.yml",
|
60
61
|
"test/helper.rb",
|
61
62
|
"test/test_tumblr.rb",
|
@@ -78,16 +79,16 @@ Gem::Specification.new do |s|
|
|
78
79
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
79
80
|
s.add_runtime_dependency(%q<weary>, [">= 0.7.1"])
|
80
81
|
s.add_runtime_dependency(%q<highline>, [">= 1.5.2"])
|
81
|
-
s.add_development_dependency(%q<bundler>, [">= 0.9.
|
82
|
+
s.add_development_dependency(%q<bundler>, [">= 0.9.19"])
|
82
83
|
else
|
83
84
|
s.add_dependency(%q<weary>, [">= 0.7.1"])
|
84
85
|
s.add_dependency(%q<highline>, [">= 1.5.2"])
|
85
|
-
s.add_dependency(%q<bundler>, [">= 0.9.
|
86
|
+
s.add_dependency(%q<bundler>, [">= 0.9.19"])
|
86
87
|
end
|
87
88
|
else
|
88
89
|
s.add_dependency(%q<weary>, [">= 0.7.1"])
|
89
90
|
s.add_dependency(%q<highline>, [">= 1.5.2"])
|
90
|
-
s.add_dependency(%q<bundler>, [">= 0.9.
|
91
|
+
s.add_dependency(%q<bundler>, [">= 0.9.19"])
|
91
92
|
end
|
92
93
|
end
|
93
94
|
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 1
|
7
|
-
-
|
7
|
+
- 3
|
8
8
|
- 0
|
9
|
-
version: 1.
|
9
|
+
version: 1.3.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Mark Wunsch
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-04-14 00:00:00 -04:00
|
18
18
|
default_executable: tumblr
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -55,8 +55,8 @@ dependencies:
|
|
55
55
|
segments:
|
56
56
|
- 0
|
57
57
|
- 9
|
58
|
-
-
|
59
|
-
version: 0.9.
|
58
|
+
- 19
|
59
|
+
version: 0.9.19
|
60
60
|
type: :development
|
61
61
|
version_requirements: *id003
|
62
62
|
description: Ruby library and command line utility to work with the Tumblr Blogging Platform, powered by Weary.
|
@@ -106,6 +106,7 @@ files:
|
|
106
106
|
- test/fixtures/vcr_cassettes/read/unlike.yml
|
107
107
|
- test/fixtures/vcr_cassettes/write/delete.yml
|
108
108
|
- test/fixtures/vcr_cassettes/write/edit.yml
|
109
|
+
- test/fixtures/vcr_cassettes/write/reblog.yml
|
109
110
|
- test/fixtures/vcr_cassettes/write/write.yml
|
110
111
|
- test/helper.rb
|
111
112
|
- test/test_tumblr.rb
|