slideshare_api 0.0.7 → 0.0.8
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.
- 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
|