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 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