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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 497ca141ee3192469f5725420b1a827dcd81ab0b
4
- data.tar.gz: 55c5d07bc04b62ed921b458dfce531692d0c72fb
3
+ metadata.gz: e776ba29ac6587e0d9c29059fb8cd152b5b78ba0
4
+ data.tar.gz: 9b7c6b750b62c5a9ed91d24f5788dfdd67774854
5
5
  SHA512:
6
- metadata.gz: 8e7176c421b163f99edee739e4b26e1f02400dabd58add23fad12c00a21755bce2c45319bc9e696e3e6587113a294259ff77593a3cecce97c10d76261bd2deab
7
- data.tar.gz: c352950eb94d6bfd62d64167c09f24fabe537967d67a11fd34ca6cab4c1142fa884cb79fad70bb2286ac411adeddbc4d6a4ae1c1f9ad11539fd1e326f7a17eee
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
- slideshow = client.slideshows(tag: tag) #=> returns an array of SlideshareApi::Model::Slideshow
51
+ slideshows = client.slideshows(tag: tag) #=> returns an array of SlideshareApi::Model::Slideshow
52
52
 
53
53
  # by group...
54
54
  group = 'group'
55
- slideshow = client.slideshows(group: group) #=> returns an array of SlideshareApi::Model::Slideshow
55
+ slideshows = client.slideshows(group: group) #=> returns an array of SlideshareApi::Model::Slideshow
56
56
 
57
57
  # by user...
58
58
  user = 'username'
59
- slideshow = client.slideshows(user: user) #=> returns an array of SlideshareApi::Model::Slideshow
59
+ slideshows = client.slideshows(user: user) #=> returns an array of SlideshareApi::Model::Slideshow
60
60
 
61
61
  # with optional data...
62
- slideshow = client.slideshows(user: user, detailed: true) #=> returns an array of SlideshareApi::Model::Slideshow
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
@@ -1,3 +1,3 @@
1
1
  module SlideshareApi
2
- VERSION = '0.0.7'
2
+ VERSION = '0.0.8'
3
3
  end
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 eql? SlideshareApi::Model::Slideshow.new(Nokogiri::XML(slideshow_raw_xml)) }
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 eql? SlideshareApi::Model::Slideshow.new(Nokogiri::XML(slideshow_raw_xml)) }
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 eql? SlideshareApi::Model::Slideshow.new(Nokogiri::XML(slideshow_raw_xml)) }
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 eql? Nokogiri::XML(slideshows_raw_xml).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) } }
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 eql? Nokogiri::XML(slideshows_raw_xml).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) } }
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 eql? Nokogiri::XML(slideshows_raw_xml).search('Slideshow').map { |s| SlideshareApi::Model::Slideshow.new(s) } }
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.7
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-08-28 00:00:00.000000000 Z
11
+ date: 2014-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler