slideshare_api 0.0.2 → 0.0.3

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: ee401e264b32416a6e53fa0895bcffb4971f13d5
4
- data.tar.gz: d1a1b14f379f4f067d3f2460598cbfad593b6c63
3
+ metadata.gz: 06f251b0a8f7fb00b173bf2e2d1b6ce2ab9d412e
4
+ data.tar.gz: aa8691054b279fe7c19eb3aabea002eff75a97dc
5
5
  SHA512:
6
- metadata.gz: c1e576034d37c5948921c1146da3fe840227e87af7e26b4074dbbaa120aafdefb245a4e6f22e5a6372530e07a61bdf39e8e43435803322b8b00b1fbb14d82b43
7
- data.tar.gz: 6e8280de36391a0fbb387d9601dbb7f89d9f6f273e0ff6d0dc5fbfc91d2c8026331d15b58b855e79814355600b3d95ccf40a424c2db44bd7c995048d0a4f2d12
6
+ metadata.gz: 2c5aa91a7480d1c225d2526413a4ab09438b3f93a62948f0f94f2e1ca5d5140723beabbef8bc52d5557175f01adcca02b1af3e6ceff3198d9ae949161baab8f7
7
+ data.tar.gz: a26af121af50be2501b253f77fd0bd481fddf26a95307166b4d7febb8f169fb22c4795a244f93c3aebc0cf13b0e5e437f9947d94f33a6957972d3d7bc9cb95a1
data/.gitignore CHANGED
@@ -12,4 +12,5 @@
12
12
  *.o
13
13
  *.a
14
14
  mkmf.log
15
- .idea
15
+ .idea
16
+ *.gem
data/README.md CHANGED
@@ -1,8 +1,9 @@
1
1
  # SlideshareApi
2
- [![Build](https://travis-ci.org/jvenezia/slideshare_api.svg?branch=master)](https://travis-ci.org/jvenezia/slideshare_api)
3
2
  [![Gem Version](https://badge.fury.io/rb/slideshare_api.svg)](http://badge.fury.io/rb/slideshare_api)
3
+ [![Build](https://travis-ci.org/jvenezia/slideshare_api.svg?branch=master)](https://travis-ci.org/jvenezia/slideshare_api)
4
+ [![Coverage Status](https://coveralls.io/repos/jvenezia/slideshare_api/badge.png)](https://coveralls.io/r/jvenezia/slideshare_api)
4
5
 
5
- Slideshare ruby wrapper for the Slideshare API.
6
+ Ruby wrapper for the Slideshare API.
6
7
 
7
8
  **Warning**: SlideshareApi is currently under heavy development.
8
9
 
@@ -6,22 +6,22 @@ module SlideshareApi
6
6
  :created_at, :updated_at,
7
7
  :username, :user_id,
8
8
  :url, :thumbnail_url, :thumbnail_size, :thumbnail_small_url, :embed,
9
- :language, :format, :slideshow_type,
9
+ :language, :format, :type,
10
10
  :is_downloadable, :is_in_contest,
11
11
  :ppt_location,
12
12
  :tags,
13
13
  :download_count, :view_count, :comment_count, :favorite_count,
14
14
  :slide_count,
15
15
  :related_slideshow_ids,
16
- :privacy_level, :is_flagged, :url_is_secret, :is_embaddable, :is_visible, :is_visible_by_contacts
16
+ :is_private, :is_not_flagged, :url_is_secret, :is_embaddable, :is_visible, :is_visible_by_contacts
17
17
 
18
18
  def initialize(slideshow_xml)
19
19
  @original_slideshow_xml = slideshow_xml
20
20
 
21
- @id = text_from_xml('ID')
21
+ @id = integer_from_xml('ID')
22
22
  @title = text_from_xml('Title')
23
23
  @description = text_from_xml('Description')
24
- @status = text_from_xml('Status')
24
+ @status = status_from_xml
25
25
  @username = text_from_xml('Username')
26
26
  @url = text_from_xml('URL')
27
27
  @thumbnail_url = text_from_xml('ThumbnailURL')
@@ -33,20 +33,20 @@ module SlideshareApi
33
33
  @language = text_from_xml('Language')
34
34
  @format = text_from_xml('Format')
35
35
  @is_downloadable = boolean_from_xml('Download')
36
- @slideshow_type = text_from_xml('SlideshowType')
36
+ @type = type_from_xml
37
37
  @is_in_contest = boolean_from_xml('InContest')
38
- @user_id = text_from_xml('UserID')
38
+ @user_id = integer_from_xml('UserID')
39
39
  @ppt_location = text_from_xml('PPTLocation')
40
40
  @stripped_title = text_from_xml('StrippedTitle')
41
41
  @tags = text_list_from_xml('Tag')
42
- @download_count = text_from_xml('NumDownloads')
43
- @view_count = text_from_xml('NumViews')
44
- @comment_count = text_from_xml('NumComments')
45
- @favorite_count = text_from_xml('NumFavorites')
46
- @slide_count = text_from_xml('NumSlides')
47
- @related_slideshow_ids = text_list_from_xml('RelatedSlideshowID')
48
- @privacy_level = text_from_xml('PrivacyLevel')
49
- @is_flagged = boolean_from_xml('FlagVisible')
42
+ @download_count = integer_from_xml('NumDownloads')
43
+ @view_count = integer_from_xml('NumViews')
44
+ @comment_count = integer_from_xml('NumComments')
45
+ @favorite_count = integer_from_xml('NumFavorites')
46
+ @slide_count = integer_from_xml('NumSlides')
47
+ @related_slideshow_ids = integer_list_from_xml('RelatedSlideshowID')
48
+ @is_private = boolean_from_xml('PrivacyLevel')
49
+ @is_not_flagged = boolean_from_xml('FlagVisible')
50
50
  @is_visible = boolean_from_xml('ShowOnSS')
51
51
  @url_is_secret = boolean_from_xml('SecretURL')
52
52
  @is_embaddable = boolean_from_xml('AllowEmbed')
@@ -55,10 +55,6 @@ module SlideshareApi
55
55
 
56
56
  private
57
57
 
58
- def boolean_from_xml(attribute_name)
59
- @original_slideshow_xml.search(attribute_name).first.content == '1'
60
- end
61
-
62
58
  def text_from_xml(attribute_name)
63
59
  @original_slideshow_xml.search(attribute_name).text
64
60
  end
@@ -66,6 +62,36 @@ module SlideshareApi
66
62
  def text_list_from_xml(attribute_name)
67
63
  @original_slideshow_xml.search(attribute_name).map(&:text)
68
64
  end
65
+
66
+ def boolean_from_xml(attribute_name)
67
+ @original_slideshow_xml.search(attribute_name).first.content == '1'
68
+ end
69
+
70
+ def integer_from_xml(attribute_name)
71
+ text_from_xml(attribute_name).to_i
72
+ end
73
+
74
+ def integer_list_from_xml(attribute_name)
75
+ text_list_from_xml(attribute_name).map(&:to_i)
76
+ end
77
+
78
+ def status_from_xml
79
+ case integer_from_xml('Status')
80
+ when 0 then :queued_for_conversion
81
+ when 1 then :converting
82
+ when 2 then :converted
83
+ else :conversion_failed
84
+ end
85
+ end
86
+
87
+ def type_from_xml
88
+ case integer_from_xml('SlideshowType')
89
+ when 0 then :presentation
90
+ when 1 then :document
91
+ when 2 then :portfolio
92
+ else :video
93
+ end
94
+ end
69
95
  end
70
96
  end
71
97
  end
@@ -1,3 +1,3 @@
1
1
  module SlideshareApi
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.version = SlideshareApi::VERSION
9
9
  spec.authors = ['Jeremy Venezia']
10
10
  spec.email = ['veneziajeremy@gmail.com']
11
- spec.summary = %q{Slideshare ruby wrapper for the Slideshare API.}
12
- spec.description = %q{Slideshare ruby wrapper for the Slideshare API.}
11
+ spec.summary = %q{Ruby wrapper for the Slideshare API.}
12
+ spec.description = %q{Ruby wrapper for the Slideshare API.}
13
13
  spec.homepage = 'https://github.com/jvenezia/slideshare_api'
14
14
  spec.license = 'MIT'
15
15
 
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.add_development_dependency 'bundler', '~> 1.7'
22
22
  spec.add_development_dependency 'rake', '~> 10.0'
23
23
  spec.add_development_dependency 'rspec', '~> 3.0'
24
+ spec.add_development_dependency 'coveralls', '~> 0.7'
24
25
 
25
26
  spec.add_dependency 'faraday', '~> 0'
26
27
  spec.add_dependency 'faraday_middleware', '~> 0'
@@ -7,10 +7,32 @@ describe SlideshareApi::Model::Slideshow do
7
7
  subject { SlideshareApi::Model::Slideshow.new slideshow_xml }
8
8
 
9
9
  it { expect(subject.original_slideshow_xml).to eq slideshow_xml }
10
- it { expect(subject.id).to eq slideshow_xml.search('ID').text }
10
+ it { expect(subject.id).to eq slideshow_xml.search('ID').text.to_i }
11
11
  it { expect(subject.title).to eq slideshow_xml.search('Title').text }
12
12
  it { expect(subject.description).to eq slideshow_xml.search('Description').text }
13
- it { expect(subject.status).to eq slideshow_xml.search('Status').text }
13
+
14
+ describe 'status' do
15
+ context 'queued_for_conversion' do
16
+ before { slideshow_xml.search('Status').first.content = 0 }
17
+ it { expect(subject.status).to eq :queued_for_conversion }
18
+ end
19
+
20
+ context 'converting' do
21
+ before { slideshow_xml.search('Status').first.content = 1 }
22
+ it { expect(subject.status).to eq :converting }
23
+ end
24
+
25
+ context 'converted' do
26
+ before { slideshow_xml.search('Status').first.content = 2 }
27
+ it { expect(subject.status).to eq :converted }
28
+ end
29
+
30
+ context 'conversion_failed' do
31
+ before { slideshow_xml.search('Status').first.content = 3 }
32
+ it { expect(subject.status).to eq :conversion_failed }
33
+ end
34
+ end
35
+
14
36
  it { expect(subject.username).to eq slideshow_xml.search('Username').text }
15
37
  it { expect(subject.url).to eq slideshow_xml.search('URL').text }
16
38
  it { expect(subject.thumbnail_url).to eq slideshow_xml.search('ThumbnailURL').text }
@@ -32,7 +54,27 @@ describe SlideshareApi::Model::Slideshow do
32
54
  it { expect(subject.is_downloadable).to eq false }
33
55
  end
34
56
 
35
- it { expect(subject.slideshow_type).to eq slideshow_xml.search('SlideshowType').text }
57
+ describe 'type' do
58
+ context 'presentation' do
59
+ before { slideshow_xml.search('SlideshowType').first.content = 0 }
60
+ it { expect(subject.type).to eq :presentation }
61
+ end
62
+
63
+ context 'document' do
64
+ before { slideshow_xml.search('SlideshowType').first.content = 1 }
65
+ it { expect(subject.type).to eq :document }
66
+ end
67
+
68
+ context 'portfolio' do
69
+ before { slideshow_xml.search('SlideshowType').first.content = 2 }
70
+ it { expect(subject.type).to eq :portfolio }
71
+ end
72
+
73
+ context 'video' do
74
+ before { slideshow_xml.search('SlideshowType').first.content = 3 }
75
+ it { expect(subject.type).to eq :video }
76
+ end
77
+ end
36
78
 
37
79
  context 'it is in contest' do
38
80
  before { slideshow_xml.search('InContest').first.content = 1 }
@@ -44,26 +86,35 @@ describe SlideshareApi::Model::Slideshow do
44
86
  it { expect(subject.is_in_contest).to eq false }
45
87
  end
46
88
 
47
- it { expect(subject.user_id).to eq slideshow_xml.search('UserID').text }
89
+ it { expect(subject.user_id).to eq slideshow_xml.search('UserID').text.to_i }
48
90
  it { expect(subject.ppt_location).to eq slideshow_xml.search('PPTLocation').text }
49
91
  it { expect(subject.stripped_title).to eq slideshow_xml.search('StrippedTitle').text }
50
92
  it { expect(subject.tags).to eq slideshow_xml.search('Tag').map(&:text) }
51
- it { expect(subject.download_count).to eq slideshow_xml.search('NumDownloads').text }
52
- it { expect(subject.view_count).to eq slideshow_xml.search('NumViews').text }
53
- it { expect(subject.comment_count).to eq slideshow_xml.search('NumComments').text }
54
- it { expect(subject.favorite_count).to eq slideshow_xml.search('NumFavorites').text }
55
- it { expect(subject.slide_count).to eq slideshow_xml.search('NumSlides').text }
56
- it { expect(subject.related_slideshow_ids).to eq slideshow_xml.search('RelatedSlideshowID').map(&:text) }
57
- it { expect(subject.privacy_level).to eq slideshow_xml.search('PrivacyLevel').text }
93
+ it { expect(subject.download_count).to eq slideshow_xml.search('NumDownloads').text.to_i }
94
+ it { expect(subject.view_count).to eq slideshow_xml.search('NumViews').text.to_i }
95
+ it { expect(subject.comment_count).to eq slideshow_xml.search('NumComments').text.to_i }
96
+ it { expect(subject.favorite_count).to eq slideshow_xml.search('NumFavorites').text.to_i }
97
+ it { expect(subject.slide_count).to eq slideshow_xml.search('NumSlides').text.to_i }
98
+ it { expect(subject.related_slideshow_ids).to eq slideshow_xml.search('RelatedSlideshowID').map(&:text).map(&:to_i) }
99
+
100
+ context 'it is private' do
101
+ before { slideshow_xml.search('PrivacyLevel').first.content = 1 }
102
+ it { expect(subject.is_private).to eq true }
103
+ end
104
+
105
+ context 'it is not private' do
106
+ before { slideshow_xml.search('PrivacyLevel').first.content = 0 }
107
+ it { expect(subject.is_private).to eq false }
108
+ end
58
109
 
59
110
  context 'it is flagged' do
60
111
  before { slideshow_xml.search('FlagVisible').first.content = 1 }
61
- it { expect(subject.is_flagged).to eq true }
112
+ it { expect(subject.is_not_flagged).to eq true }
62
113
  end
63
114
 
64
115
  context 'it is not flagged' do
65
116
  before { slideshow_xml.search('FlagVisible').first.content = 0 }
66
- it { expect(subject.is_flagged).to eq false }
117
+ it { expect(subject.is_not_flagged).to eq false }
67
118
  end
68
119
 
69
120
  context 'it is visible' do
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,15 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
1
4
  require 'bundler/setup'
2
5
  Bundler.setup
3
6
 
4
7
  require 'slideshare_api'
5
8
 
6
9
  RSpec.configure do |config|
10
+ # Use color in STDOUT
11
+ config.color = true
12
+
13
+ # Use color not only in STDOUT but also in pagers and files
14
+ config.tty = true
7
15
  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.2
4
+ version: 0.0.3
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-27 00:00:00.000000000 Z
11
+ date: 2014-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: coveralls
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.7'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.7'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: faraday
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -94,7 +108,7 @@ dependencies:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
110
  version: '1.6'
97
- description: Slideshare ruby wrapper for the Slideshare API.
111
+ description: Ruby wrapper for the Slideshare API.
98
112
  email:
99
113
  - veneziajeremy@gmail.com
100
114
  executables: []
@@ -111,7 +125,6 @@ files:
111
125
  - lib/slideshare_api/client.rb
112
126
  - lib/slideshare_api/model/slideshow.rb
113
127
  - lib/slideshare_api/version.rb
114
- - slideshare_api-0.0.1.gem
115
128
  - slideshare_api.gemspec
116
129
  - spec/client_spec.rb
117
130
  - spec/fixtures/slideshow.xml
@@ -140,7 +153,7 @@ rubyforge_project:
140
153
  rubygems_version: 2.2.2
141
154
  signing_key:
142
155
  specification_version: 4
143
- summary: Slideshare ruby wrapper for the Slideshare API.
156
+ summary: Ruby wrapper for the Slideshare API.
144
157
  test_files:
145
158
  - spec/client_spec.rb
146
159
  - spec/fixtures/slideshow.xml
Binary file