doomy_client 0.8.5

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.
@@ -0,0 +1,101 @@
1
+ require 'spec_helper'
2
+
3
+ describe Tumblr::Request do
4
+
5
+ let(:client) { Tumblr::Client.new }
6
+
7
+ describe :respond do
8
+
9
+ [200, 201].each do |rcode|
10
+
11
+ context "with a #{rcode} response" do
12
+
13
+ it 'should return the meta object' do
14
+ data = { :message => 'ohyes' }
15
+ response = OpenStruct.new(:status => rcode, :body => { 'response' => data })
16
+ expect(client.respond(response)).to eq(data)
17
+ end
18
+
19
+ end
20
+
21
+ end
22
+
23
+ context 'with an error response' do
24
+
25
+ it 'should return the meta object (merged with response)' do
26
+ meta = { :message => 'ohno' }
27
+ response = OpenStruct.new(:status => 401, :body => { 'meta' => meta, 'response' => { :also => 'hi' } })
28
+ expect(client.respond(response)).to eq({ :message => 'ohno', :also => 'hi' })
29
+ end
30
+
31
+ it 'should return the meta object even when response is nil' do
32
+ meta = { :message => 'ohno' }
33
+ response = OpenStruct.new(:status => 401, :body => { 'meta' => meta, 'response' => nil })
34
+ expect(client.respond(response)).to eq(meta)
35
+ end
36
+
37
+ end
38
+
39
+ end
40
+
41
+ describe :get do
42
+
43
+ before do
44
+ @path = '/the/path'
45
+ @params = { :hello => 'world' }
46
+ expect(client).to receive(:get_response).once.with(@path, @params).
47
+ and_return(OpenStruct.new({
48
+ :status => 200,
49
+ :body => { 'response' => 'result' }
50
+ }))
51
+ end
52
+
53
+ it 'should get the response directly' do
54
+ expect(client.get(@path, @params)).to eq('result')
55
+ end
56
+
57
+ end
58
+
59
+ describe :get_redirect_url do
60
+
61
+ context 'when redirect is found' do
62
+
63
+ before do
64
+ @path = '/the/path'
65
+ @params = { :hello => 'world' }
66
+ @redirect_url = 'redirect-to-here'
67
+ expect(client).to receive(:get_response).once.with(@path, @params).
68
+ and_return(OpenStruct.new({
69
+ :status => 301,
70
+ :headers => { 'Location' => @redirect_url }
71
+ }))
72
+ end
73
+
74
+ it 'should return the redirect url' do
75
+ expect(client.get_redirect_url(@path, @params)).to eq(@redirect_url)
76
+ end
77
+
78
+ end
79
+
80
+ context 'when error is encountered' do
81
+
82
+ before do
83
+ @path = '/the/path'
84
+ @params = { :hello => 'world' }
85
+ @meta = { :message => 'ohno' }
86
+ expect(client).to receive(:get_response).once.with(@path, @params).
87
+ and_return(OpenStruct.new({
88
+ :status => 401,
89
+ :body => { 'meta' => @meta }
90
+ }))
91
+ end
92
+
93
+ it 'should return the error meta' do
94
+ expect(client.get_redirect_url(@path, @params)).to eq(@meta)
95
+ end
96
+
97
+ end
98
+
99
+ end
100
+
101
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ describe Tumblr::Tagged do
4
+
5
+ let(:client) { Tumblr::Client.new }
6
+ let(:consumer_key) { 'consumer' }
7
+ let(:tag) { 'helloworld' }
8
+
9
+ before do
10
+ Tumblr.configure do |c|
11
+ c.consumer_key = consumer_key
12
+ end
13
+ end
14
+
15
+ describe :tagged do
16
+
17
+ before do
18
+ expect(client).to receive(:get).once.with('v2/tagged', {
19
+ :tag => tag,
20
+ :api_key => consumer_key
21
+ }).and_return('response')
22
+ end
23
+
24
+ it 'should setup the request properly' do
25
+ r = client.tagged tag
26
+ expect(r).to eq('response')
27
+ end
28
+
29
+ end
30
+
31
+ end
@@ -0,0 +1,114 @@
1
+ require 'spec_helper'
2
+
3
+ describe Tumblr::User do
4
+
5
+ let(:client) { Tumblr::Client.new }
6
+
7
+ describe :info do
8
+
9
+ it 'should make the request properly' do
10
+ expect(client).to receive(:get).with('v2/user/info').and_return('response')
11
+ r = client.info
12
+ expect(r).to eq('response')
13
+ end
14
+
15
+ end
16
+
17
+ describe :dashboard do
18
+
19
+ context 'when using options that are not allowed' do
20
+
21
+ it 'should raise an error' do
22
+ expect(lambda {
23
+ client.dashboard :not => 'an option'
24
+ }).to raise_error ArgumentError
25
+ end
26
+
27
+ end
28
+
29
+ context 'when using valid options' do
30
+
31
+ it 'should make the correct call' do
32
+ expect(client).to receive(:get).with('v2/user/dashboard', {
33
+ :limit => 25
34
+ }).and_return('response')
35
+ r = client.dashboard :limit => 25
36
+ expect(r).to eq('response')
37
+ end
38
+
39
+ end
40
+
41
+ end
42
+
43
+ # These two are very similar
44
+ [:following, :likes].each do |type|
45
+
46
+ describe type do
47
+
48
+ context 'with defaults' do
49
+
50
+ it 'should make the reqest properly' do
51
+ expect(client).to receive(:get).with("v2/user/#{type}", {}).
52
+ and_return('response')
53
+ r = client.send type
54
+ expect(r).to eq('response')
55
+ end
56
+
57
+ end
58
+
59
+ context 'with custom limit & offset' do
60
+
61
+ it 'should make the reqest properly' do
62
+ expect(client).to receive(:get).with("v2/user/#{type}", {
63
+ :limit => 10,
64
+ :offset => 5
65
+ }).and_return('response')
66
+ r = client.send type, :offset => 5, :limit => 10
67
+ expect(r).to eq('response')
68
+ end
69
+
70
+ end
71
+
72
+ end
73
+
74
+ end
75
+
76
+ # Like and unlike are similar
77
+ [:like, :unlike].each do |type|
78
+
79
+ describe type do
80
+
81
+ it 'should make the request properly' do
82
+ id = 123
83
+ reblog_key = 'hello'
84
+ expect(client).to receive(:post).with("v2/user/#{type}", {
85
+ :id => id,
86
+ :reblog_key => reblog_key
87
+ }).and_return('response')
88
+ r = client.send type, id, reblog_key
89
+ expect(r).to eq('response')
90
+ end
91
+
92
+ end
93
+
94
+ end
95
+
96
+ # Follow and unfollow are similar
97
+ [:follow, :unfollow].each do |type|
98
+
99
+ describe type do
100
+
101
+ it 'should make the request properly' do
102
+ url = 'some url'
103
+ expect(client).to receive(:post).with("v2/user/#{type}", {
104
+ :url => url
105
+ }).and_return('response')
106
+ r = client.send type, url
107
+ expect(r).to eq('response')
108
+ end
109
+
110
+ end
111
+
112
+ end
113
+
114
+ end
@@ -0,0 +1,7 @@
1
+ if ENV['COV'] == '1'
2
+ require 'simplecov'
3
+ SimpleCov.start
4
+ end
5
+
6
+ require 'ostruct'
7
+ require_relative '../lib/tumblr_client'
@@ -0,0 +1,27 @@
1
+ # encoding: utf-8
2
+ require File.join(File.dirname(__FILE__), 'lib/tumblr/version')
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.add_dependency 'faraday', '~> 0.9.0'
6
+ gem.add_dependency 'faraday_middleware', '~> 0.9'
7
+ gem.add_dependency 'json'
8
+ gem.add_dependency 'simple_oauth'
9
+ gem.add_dependency 'oauth'
10
+ gem.add_dependency 'mime-types'
11
+ gem.add_development_dependency 'rake'
12
+ gem.add_development_dependency 'rspec'
13
+ gem.add_development_dependency 'webmock'
14
+ gem.add_development_dependency 'simplecov'
15
+ gem.authors = ['John Bunting', 'John Crepezzi', 'Alexander Lozada']
16
+ gem.description = %q{A Ruby wrapper for the Tumblr v2 API}
17
+ gem.email = ['codingjester@gmail.com', 'john@crepezzi.com', 'alexanderpaullozada@gmail.com']
18
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{|f| File.basename(f)}
19
+ gem.files = `git ls-files`.split("\n")
20
+ gem.homepage = "http://github.com/tumblr/tumblr_client"
21
+ gem.license = "Apache"
22
+ gem.name = "doomy_client"
23
+ gem.require_paths = ["lib"]
24
+ gem.summary = %q{Tumblr API wrapper}
25
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
26
+ gem.version = Tumblr::VERSION
27
+ end
metadata ADDED
@@ -0,0 +1,216 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: doomy_client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.8.5
5
+ platform: ruby
6
+ authors:
7
+ - John Bunting
8
+ - John Crepezzi
9
+ - Alexander Lozada
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2016-02-15 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: faraday
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: 0.9.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: 0.9.0
29
+ - !ruby/object:Gem::Dependency
30
+ name: faraday_middleware
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - "~>"
34
+ - !ruby/object:Gem::Version
35
+ version: '0.9'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '0.9'
43
+ - !ruby/object:Gem::Dependency
44
+ name: json
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: simple_oauth
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ - !ruby/object:Gem::Dependency
72
+ name: oauth
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ type: :runtime
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ - !ruby/object:Gem::Dependency
86
+ name: mime-types
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ type: :runtime
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ - !ruby/object:Gem::Dependency
100
+ name: rake
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ type: :development
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ - !ruby/object:Gem::Dependency
114
+ name: rspec
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ - !ruby/object:Gem::Dependency
128
+ name: webmock
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ - !ruby/object:Gem::Dependency
142
+ name: simplecov
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ type: :development
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
155
+ description: A Ruby wrapper for the Tumblr v2 API
156
+ email:
157
+ - codingjester@gmail.com
158
+ - john@crepezzi.com
159
+ - alexanderpaullozada@gmail.com
160
+ executables:
161
+ - tumblr
162
+ extensions: []
163
+ extra_rdoc_files: []
164
+ files:
165
+ - ".gitignore"
166
+ - ".travis.yml"
167
+ - CONTRIBUTING.md
168
+ - Gemfile
169
+ - LICENSE
170
+ - README.md
171
+ - Rakefile
172
+ - bin/tumblr
173
+ - lib/tumblr/blog.rb
174
+ - lib/tumblr/client.rb
175
+ - lib/tumblr/config.rb
176
+ - lib/tumblr/connection.rb
177
+ - lib/tumblr/helpers.rb
178
+ - lib/tumblr/post.rb
179
+ - lib/tumblr/request.rb
180
+ - lib/tumblr/tagged.rb
181
+ - lib/tumblr/user.rb
182
+ - lib/tumblr/version.rb
183
+ - lib/tumblr_client.rb
184
+ - spec/examples/blog_spec.rb
185
+ - spec/examples/client_spec.rb
186
+ - spec/examples/post_spec.rb
187
+ - spec/examples/request_spec.rb
188
+ - spec/examples/tagged_spec.rb
189
+ - spec/examples/user_spec.rb
190
+ - spec/spec_helper.rb
191
+ - tumblr_client.gemspec
192
+ homepage: http://github.com/tumblr/tumblr_client
193
+ licenses:
194
+ - Apache
195
+ metadata: {}
196
+ post_install_message:
197
+ rdoc_options: []
198
+ require_paths:
199
+ - lib
200
+ required_ruby_version: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ required_rubygems_version: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ requirements: []
211
+ rubyforge_project:
212
+ rubygems_version: 2.4.8
213
+ signing_key:
214
+ specification_version: 4
215
+ summary: Tumblr API wrapper
216
+ test_files: []