slideshare_api 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +18 -4
- data/lib/slideshare_api/client.rb +12 -3
- data/lib/slideshare_api/version.rb +1 -1
- data/spec/client_spec.rb +16 -4
- 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: a16c3c28fdd13a8757eae15e401b942d07599654
|
4
|
+
data.tar.gz: 24dded61dd55b4c4e6904d65d59cfc525a61dc2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5de9915459364d8e66cd91f010ac846fdb01d7e818089a163e4293af3d3a5dbd85107039b9b928d6009cf72b0031cae2f115b51dc15e38819f22afefa9eb1d05
|
7
|
+
data.tar.gz: 914887caefb636f54055fb34404e0dff6089dbea91435e8b7e3491dd6cd10162e52d6290a0576bc99b50e640d29d7622e4673c6b68364b2f7006e5fc9d53eb0e
|
data/README.md
CHANGED
@@ -30,7 +30,7 @@ shared_secret = 'your shared secret'
|
|
30
30
|
client = SlideshareApi::Client.new api_key, shared_secret
|
31
31
|
```
|
32
32
|
|
33
|
-
Get a slideshow
|
33
|
+
**Get a slideshow:**
|
34
34
|
```ruby
|
35
35
|
# from url...
|
36
36
|
slideshow_url = 'http://fr.slideshare.net/awesome/slideshow'
|
@@ -44,7 +44,7 @@ slideshow = client.slideshow(slideshow_id: slideshow_id) #=> returns a Slideshar
|
|
44
44
|
slideshow = client.slideshow(slideshow_id: slideshow_id, detailed: true) #=> returns a SlideshareApi::Model::Slideshow
|
45
45
|
```
|
46
46
|
|
47
|
-
Get slideshows
|
47
|
+
**Get slideshows:**
|
48
48
|
```ruby
|
49
49
|
# by tag...
|
50
50
|
tag = 'ruby'
|
@@ -62,11 +62,25 @@ slideshows = client.slideshows(user: user) #=> returns an array of SlideshareApi
|
|
62
62
|
slideshows = client.slideshows(user: user, detailed: true) #=> returns an array of SlideshareApi::Model::Slideshow
|
63
63
|
```
|
64
64
|
|
65
|
-
Search slideshows
|
65
|
+
**Search slideshows:**
|
66
66
|
```ruby
|
67
67
|
query = 'elcurator'
|
68
|
-
|
68
|
+
options = {detailed: true, page: 2}
|
69
|
+
slideshows = client.search(query, options) #=> returns an array of SlideshareApi::Model::Slideshow
|
69
70
|
```
|
71
|
+
Optional search parameters:
|
72
|
+
|
73
|
+
| Option | Default | Can be |
|
74
|
+
| ------------ | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
75
|
+
| detailed | false | true, false |
|
76
|
+
| page | 1 | |
|
77
|
+
| per_page | 12 | maximum: 50 |
|
78
|
+
| language | 'en' | '**' (All), 'es' (Spanish), 'pt' (Portuguese), 'fr' (French), 'it' (Italian), 'nl' (Dutch), 'de' (German), 'zh' (Chinese), 'ja' (Japanese), 'ko' (Korean), 'ro' (Romanian), '!!' (Other) |
|
79
|
+
| ordered_by | 'relevance' | 'mostviewed', 'mostdownloaded', 'lastest' |
|
80
|
+
| upload_date | 'any' | 'week', 'month', 'year' |
|
81
|
+
| downloadable | all | true, false |
|
82
|
+
| format | 'all' | 'pdf' (PDF), 'ppt' (PowerPoint), 'odp' (Open Office), 'pps' (PowerPoint Slideshow), 'pot' (PowerPoint template) |
|
83
|
+
| type | 'all' | 'presentations', 'documents', 'webinars', 'videos', 'infographics' |
|
70
84
|
|
71
85
|
## Contributing
|
72
86
|
Feel free to contribute!
|
@@ -19,7 +19,7 @@ module SlideshareApi
|
|
19
19
|
params = {}
|
20
20
|
params.merge!(slideshow_url: cleaned_url(options[:slideshow_url])) if options[:slideshow_url]
|
21
21
|
params.merge!(slideshow_id: options[:slideshow_id]) if options[:slideshow_id]
|
22
|
-
params.merge!(detailed: 1) if options
|
22
|
+
params.merge!(detailed: options[:detailed] ? 0 : 1) if options.has_key?(:detailed)
|
23
23
|
SlideshareApi::Model::Slideshow.new get('get_slideshow', params)
|
24
24
|
end
|
25
25
|
|
@@ -38,13 +38,22 @@ module SlideshareApi
|
|
38
38
|
raise SlideshareApi::Error, 'Required Parameter Missing'
|
39
39
|
end
|
40
40
|
|
41
|
-
params.merge!(detailed: 1) if options
|
41
|
+
params.merge!(detailed: options[:detailed] ? 1 : 0) if options.has_key?(:detailed)
|
42
42
|
get(path, params).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) }
|
43
43
|
end
|
44
44
|
|
45
|
-
def search(query)
|
45
|
+
def search(query, options = {})
|
46
46
|
params = {}
|
47
47
|
params.merge!(q: query)
|
48
|
+
params.merge!(detailed: options[:detailed] ? 1 : 0) if options.has_key?(:detailed)
|
49
|
+
params.merge!(page: options[:page]) if options[:page]
|
50
|
+
params.merge!(items_per_page: options[:per_page]) if options[:per_page]
|
51
|
+
params.merge!(lang: options[:language]) if options[:language]
|
52
|
+
params.merge!(sort: options[:ordered_by]) if options[:ordered_by]
|
53
|
+
params.merge!(upload_date: options[:upload_date]) if options[:upload_date]
|
54
|
+
params.merge!(download: options[:downloadable] ? 1 : 0) if options.has_key?(:downloadable)
|
55
|
+
params.merge!(fileformat: options[:format]) if options[:format]
|
56
|
+
params.merge!(file_type: options[:type]) if options[:type]
|
48
57
|
get('search_slideshows', params).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) }
|
49
58
|
end
|
50
59
|
|
data/spec/client_spec.rb
CHANGED
@@ -132,12 +132,24 @@ describe SlideshareApi::Client do
|
|
132
132
|
let(:query) { 'query' }
|
133
133
|
let(:slideshows_raw_xml) { open('spec/fixtures/slideshows.xml').read }
|
134
134
|
|
135
|
-
|
136
|
-
|
135
|
+
context 'without options' do
|
136
|
+
before { expect(connection).to receive(:get).with('search_slideshows', api_validation_params.merge({q: query})).and_return(connection) }
|
137
|
+
before { expect(connection).to receive(:body).and_return(slideshows_raw_xml) }
|
138
|
+
|
139
|
+
subject { slideshare_client.search query }
|
140
|
+
|
141
|
+
it { should eq Nokogiri::XML(slideshows_raw_xml).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) } }
|
142
|
+
end
|
143
|
+
|
144
|
+
context 'with params' do
|
145
|
+
let(:params) { {q: query, detailed: 1, page: 2, items_per_page: 10, lang: 'fr', sort: 'mostviewed', upload_date: 'month', download: 0, fileformat: 'ppt', file_type: 'videos'} }
|
146
|
+
before { expect(connection).to receive(:get).with('search_slideshows', api_validation_params.merge(params)).and_return(connection) }
|
147
|
+
before { expect(connection).to receive(:body).and_return(slideshows_raw_xml) }
|
137
148
|
|
138
|
-
|
149
|
+
subject { slideshare_client.search query, detailed: true, page: 2, per_page: 10, language: 'fr', ordered_by: 'mostviewed', upload_date: 'month', downloadable: false, format: 'ppt', type: 'videos' }
|
139
150
|
|
140
|
-
|
151
|
+
it { should eq Nokogiri::XML(slideshows_raw_xml).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) } }
|
152
|
+
end
|
141
153
|
end
|
142
154
|
end
|
143
155
|
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.9
|
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-09-
|
11
|
+
date: 2014-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|