slideshare_api 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b51beff1edd1f7d82c4f023e91cd22714089ea4f
4
- data.tar.gz: 5ffdd7a0aeb502c4b4ac764bafa77493c1455711
3
+ metadata.gz: 497ca141ee3192469f5725420b1a827dcd81ab0b
4
+ data.tar.gz: 55c5d07bc04b62ed921b458dfce531692d0c72fb
5
5
  SHA512:
6
- metadata.gz: 2871d54d5b029544b65f345325ce70be8cce55d0ab9bfc3559a4b9b7a4f690aaebac64f0fd0186b72a0536f0bd66e5480cf379a4c2940ee5c39fa5172b7543d4
7
- data.tar.gz: 94d549cc830f334a7f32a5e6f76658cc0b49a9fc55574ff22dd9df4c9db1a8dda0646c93fd0293cdec35763a9b92ef1bb000fb031b223879e8e69c3737fdab2b
6
+ metadata.gz: 8e7176c421b163f99edee739e4b26e1f02400dabd58add23fad12c00a21755bce2c45319bc9e696e3e6587113a294259ff77593a3cecce97c10d76261bd2deab
7
+ data.tar.gz: c352950eb94d6bfd62d64167c09f24fabe537967d67a11fd34ca6cab4c1142fa884cb79fad70bb2286ac411adeddbc4d6a4ae1c1f9ad11539fd1e326f7a17eee
data/README.md CHANGED
@@ -33,17 +33,35 @@ client = SlideshareApi::Client.new api_key, shared_secret
33
33
  Get a slideshow:
34
34
  ```ruby
35
35
  # from url...
36
- slideshow_url = 'http://fr.slideshare.net/awesome_slideshow'
36
+ slideshow_url = 'http://fr.slideshare.net/awesome/slideshow'
37
37
  slideshow = client.slideshow(slideshow_url: slideshow_url) #=> returns a SlideshareApi::Model::Slideshow
38
38
 
39
39
  # from id...
40
40
  slideshow_id = '1234'
41
41
  slideshow = client.slideshow(slideshow_id: slideshow_id) #=> returns a SlideshareApi::Model::Slideshow
42
42
 
43
- # with optional informations...
43
+ # with optional data...
44
44
  slideshow = client.slideshow(slideshow_id: slideshow_id, detailed: true) #=> returns a SlideshareApi::Model::Slideshow
45
45
  ```
46
46
 
47
+ Get slideshows:
48
+ ```ruby
49
+ # by tag...
50
+ tag = 'ruby'
51
+ slideshow = client.slideshows(tag: tag) #=> returns an array of SlideshareApi::Model::Slideshow
52
+
53
+ # by group...
54
+ group = 'group'
55
+ slideshow = client.slideshows(group: group) #=> returns an array of SlideshareApi::Model::Slideshow
56
+
57
+ # by user...
58
+ user = 'username'
59
+ slideshow = client.slideshows(user: user) #=> returns an array of SlideshareApi::Model::Slideshow
60
+
61
+ # with optional data...
62
+ slideshow = client.slideshows(user: user, detailed: true) #=> returns an array of SlideshareApi::Model::Slideshow
63
+ ```
64
+
47
65
  ## Contributing
48
66
  Feel free to contribute!
49
67
 
@@ -17,16 +17,39 @@ module SlideshareApi
17
17
 
18
18
  def slideshow(options = {})
19
19
  params = {}
20
- params.merge!({slideshow_url: cleaned_url(options[:slideshow_url])}) if options[:slideshow_url]
21
- params.merge!({slideshow_id: options[:slideshow_id]}) if options[:slideshow_id]
22
- params.merge!({detailed: 1}) if options[:detailed]
23
- xml_response = Nokogiri::XML(@connection.get('get_slideshow', api_validation_params.merge(params)).body)
24
- check_error xml_response
25
- SlideshareApi::Model::Slideshow.new xml_response
20
+ params.merge!(slideshow_url: cleaned_url(options[:slideshow_url])) if options[:slideshow_url]
21
+ params.merge!(slideshow_id: options[:slideshow_id]) if options[:slideshow_id]
22
+ params.merge!(detailed: 1) if options[:detailed]
23
+ SlideshareApi::Model::Slideshow.new get('get_slideshow', params)
24
+ end
25
+
26
+ def slideshows(options = {})
27
+ params = {}
28
+ if options[:tag]
29
+ params.merge!(tag: options[:tag])
30
+ path = 'get_slideshows_by_tag'
31
+ elsif options[:group]
32
+ params.merge!(group_name: options[:group])
33
+ path = 'get_slideshows_by_group'
34
+ elsif options[:user]
35
+ params.merge!(username_for: options[:user])
36
+ path = 'get_slideshows_by_user'
37
+ else
38
+ raise SlideshareApi::Error, 'Required Parameter Missing'
39
+ end
40
+
41
+ params.merge!(detailed: 1) if options[:detailed]
42
+ get(path, params).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) }
26
43
  end
27
44
 
28
45
  private
29
46
 
47
+ def get(path, params)
48
+ xml_response = Nokogiri::XML(@connection.get(path, api_validation_params.merge(params)).body)
49
+ check_error xml_response
50
+ xml_response
51
+ end
52
+
30
53
  def cleaned_url(url)
31
54
  url.split('?')[0]
32
55
  end
@@ -1,3 +1,3 @@
1
1
  module SlideshareApi
2
- VERSION = '0.0.6'
2
+ VERSION = '0.0.7'
3
3
  end
data/spec/client_spec.rb CHANGED
@@ -65,4 +65,56 @@ describe SlideshareApi::Client do
65
65
  end
66
66
  end
67
67
  end
68
+
69
+ describe 'slideshows' do
70
+ context 'there is an error' do
71
+ context 'there is a param' do
72
+ let(:error_xml) { open('spec/fixtures/error.xml').read }
73
+
74
+ before { expect(connection).to receive(:get).and_return(connection) }
75
+ before { expect(connection).to receive(:body).and_return(error_xml) }
76
+
77
+ it { expect(-> { slideshare_client.slideshows user: '' }).to raise_error(SlideshareApi::Error) }
78
+ end
79
+
80
+ context 'param is missing' do
81
+ it { expect(-> { slideshare_client.slideshows }).to raise_error(SlideshareApi::Error) }
82
+ end
83
+ end
84
+
85
+ context 'there is no error' do
86
+ let(:slideshows_raw_xml) { open('spec/fixtures/slideshows.xml').read }
87
+ before { expect(connection).to receive(:body).and_return(slideshows_raw_xml) }
88
+
89
+ context 'by tag' do
90
+ let(:tag) { 'ruby' }
91
+
92
+ before { expect(connection).to receive(:get).with('get_slideshows_by_tag', api_validation_params.merge({tag: tag})).and_return(connection) }
93
+
94
+ subject { slideshare_client.slideshows tag: tag }
95
+
96
+ it { should eql? Nokogiri::XML(slideshows_raw_xml).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) } }
97
+ end
98
+
99
+ context 'by group' do
100
+ let(:group) { 'group' }
101
+
102
+ before { expect(connection).to receive(:get).with('get_slideshows_by_group', api_validation_params.merge({group_name: group})).and_return(connection) }
103
+
104
+ subject { slideshare_client.slideshows group: group }
105
+
106
+ it { should eql? Nokogiri::XML(slideshows_raw_xml).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) } }
107
+ end
108
+
109
+ context 'by user' do
110
+ let(:user) { 'jeremyvenezia' }
111
+
112
+ before { expect(connection).to receive(:get).with('get_slideshows_by_user', api_validation_params.merge({username_for: user})).and_return(connection) }
113
+
114
+ subject { slideshare_client.slideshows user: user }
115
+
116
+ it { should eql? Nokogiri::XML(slideshows_raw_xml).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) } }
117
+ end
118
+ end
119
+ end
68
120
  end
@@ -0,0 +1,68 @@
1
+ <User>
2
+ <Name>jeremyvenezia</Name>
3
+ <Count>2</Count>
4
+ <Slideshow>
5
+ <ID>34187090</ID>
6
+ <Title>Prerequis pour appliquer le Lean Startup en entreprise</Title>
7
+ <Description/>
8
+ <Status>2</Status>
9
+ <Username>jeremyvenezia</Username>
10
+ <URL>http://www.slideshare.net/jeremyvenezia/prerequis-pour-appliquer-le-lean-startup-en-entreprise</URL>
11
+ <ThumbnailURL>
12
+ //cdn.slidesharecdn.com/ss_thumbnails/prerequispourappliquerleleanstartupdanslentreprise-140430023146-phpapp02-140501195007-phpapp01-thumbnail.jpg?cb=1398991939
13
+ </ThumbnailURL>
14
+ <ThumbnailSize>[170,130]</ThumbnailSize>
15
+ <ThumbnailSmallURL>
16
+ //cdn.slidesharecdn.com/ss_thumbnails/prerequispourappliquerleleanstartupdanslentreprise-140430023146-phpapp02-140501195007-phpapp01-thumbnail-2.jpg?cb=1398991939
17
+ </ThumbnailSmallURL>
18
+ <Embed>&lt;iframe src="https://www.slideshare.net/slideshow/embed_code/34187090" width="427" height="356"
19
+ frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px;
20
+ margin-bottom:5px; max-width: 100%;" allowfullscreen&gt; &lt;/iframe&gt; &lt;div style="margin-bottom:5px"&gt;
21
+ &lt;strong&gt; &lt;a
22
+ href="https://www.slideshare.net/jeremyvenezia/prerequis-pour-appliquer-le-lean-startup-en-entreprise"
23
+ title="Prerequis pour appliquer le Lean Startup en entreprise" target="_blank"&gt;Prerequis pour appliquer le Lean
24
+ Startup en entreprise&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a
25
+ href="http://www.slideshare.net/jeremyvenezia" target="_blank"&gt;Jeremy Venezia&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
26
+
27
+ </Embed>
28
+ <Created>2014-05-02 00:50:06 UTC</Created>
29
+ <Updated>2014-05-02 00:52:19 UTC</Updated>
30
+ <Language>fr</Language>
31
+ <Format>pptx</Format>
32
+ <Download>0</Download>
33
+ <SlideshowType>0</SlideshowType>
34
+ <InContest>0</InContest>
35
+ </Slideshow>
36
+ <Slideshow>
37
+ <ID>34187074</ID>
38
+ <Title>Un an dans la peau d&amp;rsquo;une équipe Lean Startup chez OCTO Technology</Title>
39
+ <Description/>
40
+ <Status>2</Status>
41
+ <Username>jeremyvenezia</Username>
42
+ <URL>http://www.slideshare.net/jeremyvenezia/un-an-dans-la-peau-dune-quipe-lean-startup-chez-octo-technology</URL>
43
+ <ThumbnailURL>
44
+ //cdn.slidesharecdn.com/ss_thumbnails/unandanslapeauduneequipeleanstartupchezocto-140430045943-phpapp01-140501194919-phpapp02-thumbnail.jpg?cb=1398992057
45
+ </ThumbnailURL>
46
+ <ThumbnailSize>[170,130]</ThumbnailSize>
47
+ <ThumbnailSmallURL>
48
+ //cdn.slidesharecdn.com/ss_thumbnails/unandanslapeauduneequipeleanstartupchezocto-140430045943-phpapp01-140501194919-phpapp02-thumbnail-2.jpg?cb=1398992057
49
+ </ThumbnailSmallURL>
50
+ <Embed>&lt;iframe src="https://www.slideshare.net/slideshow/embed_code/34187074" width="427" height="356"
51
+ frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px;
52
+ margin-bottom:5px; max-width: 100%;" allowfullscreen&gt; &lt;/iframe&gt; &lt;div style="margin-bottom:5px"&gt;
53
+ &lt;strong&gt; &lt;a
54
+ href="https://www.slideshare.net/jeremyvenezia/un-an-dans-la-peau-dune-quipe-lean-startup-chez-octo-technology"
55
+ title="Un an dans la peau d&amp;#x27;une équipe Lean Startup chez OCTO Technology" target="_blank"&gt;Un an dans
56
+ la peau d&amp;#x27;une équipe Lean Startup chez OCTO Technology&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a
57
+ href="http://www.slideshare.net/jeremyvenezia" target="_blank"&gt;Jeremy Venezia&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
58
+
59
+ </Embed>
60
+ <Created>2014-05-02 00:49:19 UTC</Created>
61
+ <Updated>2014-05-02 00:54:17 UTC</Updated>
62
+ <Language>fr</Language>
63
+ <Format>pptx</Format>
64
+ <Download>0</Download>
65
+ <SlideshowType>0</SlideshowType>
66
+ <InContest>0</InContest>
67
+ </Slideshow>
68
+ </User>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slideshare_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Venezia
@@ -131,6 +131,7 @@ files:
131
131
  - spec/fixtures/error.xml
132
132
  - spec/fixtures/slideshow.xml
133
133
  - spec/fixtures/slideshow_detailed.xml
134
+ - spec/fixtures/slideshows.xml
134
135
  - spec/model/slideshow_spec.rb
135
136
  - spec/spec_helper.rb
136
137
  homepage: https://github.com/jvenezia/slideshare_api
@@ -162,5 +163,6 @@ test_files:
162
163
  - spec/fixtures/error.xml
163
164
  - spec/fixtures/slideshow.xml
164
165
  - spec/fixtures/slideshow_detailed.xml
166
+ - spec/fixtures/slideshows.xml
165
167
  - spec/model/slideshow_spec.rb
166
168
  - spec/spec_helper.rb