slideshare_api 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -5
- data/lib/slideshare_api/client.rb +6 -0
- data/lib/slideshare_api/model/slideshow.rb +10 -0
- data/lib/slideshare_api/version.rb +1 -1
- data/spec/client_spec.rb +30 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e776ba29ac6587e0d9c29059fb8cd152b5b78ba0
|
4
|
+
data.tar.gz: 9b7c6b750b62c5a9ed91d24f5788dfdd67774854
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9f3a09abb779cd3c354422f54dcc0908a38ac4abd539afdf706ef42a604606853aa6f9b68ca7ec6373c1b67d8879af51ddf5c679df0c7db705070b052667191
|
7
|
+
data.tar.gz: e2fef5a4c8e05202299bb1e1f27677118b37b4c05360e924e31a21372e4a138b9b7b21c1f0ca0f286e25830e57f76938f8267439421b24e36ca308aea71acafd
|
data/README.md
CHANGED
@@ -25,7 +25,7 @@ Get your **API Key** and **Shared Secret** from Slideshare [here](http://fr.slid
|
|
25
25
|
|
26
26
|
```ruby
|
27
27
|
api_key = 'your api key'
|
28
|
-
shared_secret = 'shared secret'
|
28
|
+
shared_secret = 'your shared secret'
|
29
29
|
|
30
30
|
client = SlideshareApi::Client.new api_key, shared_secret
|
31
31
|
```
|
@@ -48,18 +48,24 @@ Get slideshows:
|
|
48
48
|
```ruby
|
49
49
|
# by tag...
|
50
50
|
tag = 'ruby'
|
51
|
-
|
51
|
+
slideshows = client.slideshows(tag: tag) #=> returns an array of SlideshareApi::Model::Slideshow
|
52
52
|
|
53
53
|
# by group...
|
54
54
|
group = 'group'
|
55
|
-
|
55
|
+
slideshows = client.slideshows(group: group) #=> returns an array of SlideshareApi::Model::Slideshow
|
56
56
|
|
57
57
|
# by user...
|
58
58
|
user = 'username'
|
59
|
-
|
59
|
+
slideshows = client.slideshows(user: user) #=> returns an array of SlideshareApi::Model::Slideshow
|
60
60
|
|
61
61
|
# with optional data...
|
62
|
-
|
62
|
+
slideshows = client.slideshows(user: user, detailed: true) #=> returns an array of SlideshareApi::Model::Slideshow
|
63
|
+
```
|
64
|
+
|
65
|
+
Search slideshows:
|
66
|
+
```ruby
|
67
|
+
query = 'elcurator'
|
68
|
+
slideshows = client.search(query) #=> returns an array of SlideshareApi::Model::Slideshow
|
63
69
|
```
|
64
70
|
|
65
71
|
## Contributing
|
@@ -42,6 +42,12 @@ module SlideshareApi
|
|
42
42
|
get(path, params).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) }
|
43
43
|
end
|
44
44
|
|
45
|
+
def search(query)
|
46
|
+
params = {}
|
47
|
+
params.merge!(q: query)
|
48
|
+
get('search_slideshows', params).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) }
|
49
|
+
end
|
50
|
+
|
45
51
|
private
|
46
52
|
|
47
53
|
def get(path, params)
|
@@ -20,6 +20,16 @@ module SlideshareApi
|
|
20
20
|
setup_attributes_from_xml if @original_slideshow_xml
|
21
21
|
end
|
22
22
|
|
23
|
+
def ==(other)
|
24
|
+
other.class == self.class && other.state == self.state
|
25
|
+
end
|
26
|
+
|
27
|
+
protected
|
28
|
+
|
29
|
+
def state
|
30
|
+
self.instance_variables.reject { |item| item == :@original_slideshow_xml }.map { |variable| self.instance_variable_get variable }
|
31
|
+
end
|
32
|
+
|
23
33
|
private
|
24
34
|
|
25
35
|
def setup_attributes_from_xml
|
data/spec/client_spec.rb
CHANGED
@@ -40,7 +40,7 @@ describe SlideshareApi::Client do
|
|
40
40
|
|
41
41
|
subject { slideshare_client.slideshow slideshow_url: slideshow_url_with_params }
|
42
42
|
|
43
|
-
it { should
|
43
|
+
it { should eq SlideshareApi::Model::Slideshow.new(Nokogiri::XML(slideshow_raw_xml)) }
|
44
44
|
end
|
45
45
|
|
46
46
|
context 'url has no params' do
|
@@ -50,7 +50,7 @@ describe SlideshareApi::Client do
|
|
50
50
|
|
51
51
|
subject { slideshare_client.slideshow slideshow_url: slideshow_url }
|
52
52
|
|
53
|
-
it { should
|
53
|
+
it { should eq SlideshareApi::Model::Slideshow.new(Nokogiri::XML(slideshow_raw_xml)) }
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
@@ -61,12 +61,12 @@ describe SlideshareApi::Client do
|
|
61
61
|
|
62
62
|
subject { slideshare_client.slideshow slideshow_id: slideshow_id }
|
63
63
|
|
64
|
-
it { should
|
64
|
+
it { should eq SlideshareApi::Model::Slideshow.new(Nokogiri::XML(slideshow_raw_xml)) }
|
65
65
|
end
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
|
-
describe 'slideshows' do
|
69
|
+
describe '.slideshows' do
|
70
70
|
context 'there is an error' do
|
71
71
|
context 'there is a param' do
|
72
72
|
let(:error_xml) { open('spec/fixtures/error.xml').read }
|
@@ -93,7 +93,7 @@ describe SlideshareApi::Client do
|
|
93
93
|
|
94
94
|
subject { slideshare_client.slideshows tag: tag }
|
95
95
|
|
96
|
-
it { should
|
96
|
+
it { should eq Nokogiri::XML(slideshows_raw_xml).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) } }
|
97
97
|
end
|
98
98
|
|
99
99
|
context 'by group' do
|
@@ -103,7 +103,7 @@ describe SlideshareApi::Client do
|
|
103
103
|
|
104
104
|
subject { slideshare_client.slideshows group: group }
|
105
105
|
|
106
|
-
it { should
|
106
|
+
it { should eq Nokogiri::XML(slideshows_raw_xml).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) } }
|
107
107
|
end
|
108
108
|
|
109
109
|
context 'by user' do
|
@@ -113,8 +113,31 @@ describe SlideshareApi::Client do
|
|
113
113
|
|
114
114
|
subject { slideshare_client.slideshows user: user }
|
115
115
|
|
116
|
-
it { should
|
116
|
+
it { should eq Nokogiri::XML(slideshows_raw_xml).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) } }
|
117
117
|
end
|
118
118
|
end
|
119
119
|
end
|
120
|
+
|
121
|
+
describe '.search' do
|
122
|
+
context 'there is an error' do
|
123
|
+
let(:error_xml) { open('spec/fixtures/error.xml').read }
|
124
|
+
|
125
|
+
before { expect(connection).to receive(:get).and_return(connection) }
|
126
|
+
before { expect(connection).to receive(:body).and_return(error_xml) }
|
127
|
+
|
128
|
+
it { expect(-> { slideshare_client.search('') }).to raise_error(SlideshareApi::Error) }
|
129
|
+
end
|
130
|
+
|
131
|
+
context 'there is no error' do
|
132
|
+
let(:query) { 'query' }
|
133
|
+
let(:slideshows_raw_xml) { open('spec/fixtures/slideshows.xml').read }
|
134
|
+
|
135
|
+
before { expect(connection).to receive(:get).with('search_slideshows', api_validation_params.merge({q: query})).and_return(connection) }
|
136
|
+
before { expect(connection).to receive(:body).and_return(slideshows_raw_xml) }
|
137
|
+
|
138
|
+
subject { slideshare_client.search query }
|
139
|
+
|
140
|
+
it { should eq Nokogiri::XML(slideshows_raw_xml).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) } }
|
141
|
+
end
|
142
|
+
end
|
120
143
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slideshare_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Venezia
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|