tumblr-rb 1.2.0 → 1.3.0
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/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
|