rscribd 1.0.4 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,5 +1,4 @@
1
1
  doc
2
- *.gemspec
3
2
  pkg
4
3
  .idea
5
4
  .DS_Store
@@ -1,3 +1,11 @@
1
+ === 1.1.0 / 2010-3-16
2
+
3
+ * Switched from Hoe to Jeweler.
4
+ * Added support for docs.browse and docs.featured.
5
+ * Added support for docs.getStats call to fetch document read count.
6
+ * Fixed bug where access parameter wasn't sent in docs.changeSettings call.
7
+ * Fixed Windows binary file upload issue.
8
+
1
9
  === 1.0.4 / 2009-7-24
2
10
 
3
11
  * Offset and limit parameters can now be used when fetching user documents.
data/README.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  = rscribd
2
2
 
3
- * 1.0.3 (July 13, 2009)
3
+ * 1.1.0 (March 16, 2010)
4
4
 
5
5
  == DESCRIPTION:
6
6
 
@@ -25,7 +25,7 @@ storage system to store your documents in accessible manner. Scribd's ad system
25
25
  will help you monetize your documents easily.
26
26
 
27
27
  First, you'll need to get a Scribd API account. Visit
28
- http://www.scribd.com/publisher/api to apply for a platform account.
28
+ http://www.scribd.com/developers/api to apply for a platform account.
29
29
 
30
30
  On the Platform site you will be given an API key and secret. The API object
31
31
  will need these to authenticate you:
data/Rakefile CHANGED
@@ -14,6 +14,7 @@ begin
14
14
  gemspec.add_dependency 'mime-types'
15
15
  gemspec.add_development_dependency "rspec"
16
16
  end
17
+ Jeweler::GemcutterTasks.new
17
18
  rescue LoadError
18
19
  puts "Jeweler not available. Install it with: gem install jeweler"
19
20
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.4
1
+ 1.1.0
@@ -26,7 +26,7 @@ module Scribd
26
26
  # Aside from these two attributes, you can set other attributes that affect
27
27
  # how the file is displayed on Scribd. See the API documentation online for a
28
28
  # list of attributes, at
29
- # http://www.scribd.com/publisher/api?method_name=docs.search (consult the
29
+ # http://www.scribd.com/developers/api?method_name=docs.search (consult the
30
30
  # "Result explanation" section).
31
31
  #
32
32
  # These attributes can be accessed or changed directly
@@ -121,7 +121,7 @@ module Scribd
121
121
  fields[:url] = @attributes[:file]
122
122
  response = API.instance.send_request 'docs.uploadFromUrl', fields
123
123
  elsif uri.kind_of? URI::Generic or uri.nil? then
124
- file_obj = is_file_object ? file : File.open(file, 'r')
124
+ file_obj = is_file_object ? file : File.open(file, 'rb')
125
125
  fields[:file] = file_obj
126
126
  response = API.instance.send_request 'docs.upload', fields
127
127
  file_obj.close unless is_file_object
@@ -177,7 +177,7 @@ module Scribd
177
177
  # their content. You must at a minimum supply a +query+ option, with a
178
178
  # string that will become the full-text search query. For a list of other
179
179
  # supported options, please see the online API documentation at
180
- # http://www.scribd.com/publisher/api?method_name=docs.search
180
+ # http://www.scribd.com/developers/api?method_name=docs.search
181
181
  #
182
182
  # The scope can be any value given for the +scope+ parameter in the above
183
183
  # website, or <tt>:first</tt> to return the first result only (not an array
@@ -195,7 +195,7 @@ module Scribd
195
195
  #
196
196
  # Passing in simply a numerical ID loads the document with that ID. You can
197
197
  # pass additional options as defined at
198
- # httphttp://www.scribd.com/publisher/api?method_name=docs.getSettings
198
+ # httphttp://www.scribd.com/developers/api?method_name=docs.getSettings
199
199
  #
200
200
  # Scribd::Document.find(108196)
201
201
  #
@@ -222,11 +222,58 @@ module Scribd
222
222
  return scope == :first ? documents.first : documents
223
223
  end
224
224
  end
225
-
225
+
226
+ # === Featured docs
227
+ #
228
+ # This method is called with a scope and a hash of options. For a list of
229
+ # supported options, please see the online API documentation at
230
+ # http://www.scribd.com/developers/api?method_name=docs.featured
231
+ #
232
+ # The scope can be either <tt>:first</tt> to return the first result only (not an array
233
+ # of results) or <tt>:all</tt> to return an array. Include a +scope+ option
234
+ # to control the parameter described in the API documentation.
235
+ #
236
+ # Scribd::Document.featured(:all, :scope => 'hot', :limit => 10)
237
+ #
238
+ # Documents returned from this method will have their +owner+ attributes set
239
+ # to nil.
240
+
241
+ def self.featured(scope, options = {})
242
+ response = API.instance.send_request('docs.featured', options)
243
+ documents = []
244
+ response.elements['/rsp/result_set'].elements.each do |doc|
245
+ documents << Document.new(:xml => doc)
246
+ end
247
+ scope == :first ? documents.first : documents
248
+ end
249
+
250
+ # === Browse docs
251
+ #
252
+ # This method is called with a scope and a hash of options. For a list of
253
+ # supported options, please see the online API documentation at
254
+ # http://www.scribd.com/developers/api?method_name=docs.browse
255
+ #
256
+ # The scope can be either <tt>:first</tt> to return the first result only (not an array
257
+ # of results) or <tt>:all</tt> to return an array.
258
+ #
259
+ # Scribd::Document.browse(:all, :sort => 'views', :category_id => 1, :limit => 10)
260
+ #
261
+ # Documents returned from this method will have their +owner+ attributes set
262
+ # to nil.
263
+
264
+ def self.browse(scope, options = {})
265
+ response = API.instance.send_request('docs.browse', options)
266
+ documents = []
267
+ response.elements['/rsp/result_set'].elements.each do |doc|
268
+ documents << Document.new(:xml => doc)
269
+ end
270
+ scope == :first ? documents.first : documents
271
+ end
272
+
226
273
  class << self
227
274
  alias_method :upload, :create
228
275
  end
229
-
276
+
230
277
  # Returns the conversion status of this document. When a document is
231
278
  # uploaded it must be converted before it can be used. The conversion is
232
279
  # non-blocking; you can query this method to determine whether the document
@@ -234,7 +281,7 @@ module Scribd
234
281
  #
235
282
  # The conversion status is returned as a string. For a full list of
236
283
  # conversion statuses, see the online API documentation at
237
- # http://www.scribd.com/publisher/api?method_name=docs.getConversionStatus
284
+ # http://www.scribd.com/developers/api?method_name=docs.getConversionStatus
238
285
  #
239
286
  # Unlike other properties of a document, this is retrieved from the server
240
287
  # every time it's queried.
@@ -277,7 +324,7 @@ module Scribd
277
324
 
278
325
  # Retrieves a document's download URL. You can provide a format for the
279
326
  # download. Valid formats are listed at
280
- # http://www.scribd.com/publisher/api?method_name=docs.getDownloadUrl
327
+ # http://www.scribd.com/developers/api?method_name=docs.getDownloadUrl
281
328
  #
282
329
  # If you do not provide a format, the link will be for the document's
283
330
  # original format.
@@ -18,7 +18,7 @@ module Scribd
18
18
  # user = Scribd::API.instance.user
19
19
  #
20
20
  # For information on a user's attributes, please consult the online API
21
- # documentation at http://www.scribd.com/publisher/api?method_name=user.login
21
+ # documentation at http://www.scribd.com/developers/api?method_name=user.login
22
22
  #
23
23
  # You can create a new account with the signup (a.k.a. create) method:
24
24
  #
@@ -71,7 +71,7 @@ module Scribd
71
71
  # Scribd::Document instances returned through this method have more
72
72
  # attributes than those returned by the Scribd::Document.find method. The
73
73
  # additional attributes are documented online at
74
- # http://www.scribd.com/publisher/api?method_name=docs.getSettings
74
+ # http://www.scribd.com/developers/api?method_name=docs.getSettings
75
75
 
76
76
  def documents(options = {})
77
77
  response = API.instance.send_request('docs.getList', options.merge(:session_key => @attributes[:session_key]))
@@ -442,9 +442,45 @@ describe Scribd::Document do
442
442
  end
443
443
  end
444
444
  end
445
-
445
+
446
+ describe ".featured" do
447
+ before :each do
448
+ @xml = REXML::Document.new("<rsp stat='ok'><result_set><result><access_key>abc123</access_key></result><result><access_key>abc321</access_key></result></result_set></rsp>")
449
+ end
450
+
451
+ it "should set the scope field according the options" do
452
+ Scribd::API.instance.should_receive(:send_request).with('docs.featured', hash_including(:scope => 'hot')).and_return(@xml)
453
+ Scribd::Document.featured(:all, :scope => 'hot', :limit => 10)
454
+ end
455
+
456
+ it "should return first result if :first is provided" do
457
+ Scribd::API.instance.should_receive(:send_request).with('docs.featured', {}).and_return(@xml)
458
+ docs = Scribd::Document.featured(:first)
459
+ docs.should be_kind_of(Scribd::Document)
460
+ docs.access_key.should eql('abc123')
461
+ end
462
+ end
463
+
464
+ describe ".browse" do
465
+ before :each do
466
+ @xml = REXML::Document.new("<rsp stat='ok'><result_set><result><access_key>abc123</access_key></result><result><access_key>abc321</access_key></result></result_set></rsp>")
467
+ end
468
+
469
+ it "should not pass the scope parameter in the options" do
470
+ Scribd::API.instance.should_receive(:send_request).with('docs.browse', hash_including(:sort => 'views', :category_id => 1, :limit => 10)).and_return(@xml)
471
+ Scribd::Document.browse(:all, :sort => 'views', :category_id => 1, :limit => 10)
472
+ end
473
+
474
+ it "should return first result if :first is provided" do
475
+ Scribd::API.instance.should_receive(:send_request).with('docs.browse', {}).and_return(@xml)
476
+ docs = Scribd::Document.browse(:first)
477
+ docs.should be_kind_of(Scribd::Document)
478
+ docs.access_key.should eql('abc123')
479
+ end
480
+ end
481
+
446
482
  it "should have an upload synonym for the create method"
447
-
483
+
448
484
  describe ".conversion_status" do
449
485
  before :each do
450
486
  @document = Scribd::Document.new(:xml => REXML::Document.new("<doc_id type='integer'>123</doc_id>"))
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rscribd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 1
8
+ - 0
9
+ version: 1.1.0
5
10
  platform: ruby
6
11
  authors:
7
12
  - Tim Morgan
@@ -11,29 +16,33 @@ autorequire:
11
16
  bindir: bin
12
17
  cert_chain: []
13
18
 
14
- date: 2010-02-02 00:00:00 -08:00
19
+ date: 2010-03-16 00:00:00 -07:00
15
20
  default_executable:
16
21
  dependencies:
17
22
  - !ruby/object:Gem::Dependency
18
23
  name: mime-types
19
- type: :runtime
20
- version_requirement:
21
- version_requirements: !ruby/object:Gem::Requirement
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
22
26
  requirements:
23
27
  - - ">="
24
28
  - !ruby/object:Gem::Version
29
+ segments:
30
+ - 0
25
31
  version: "0"
26
- version:
32
+ type: :runtime
33
+ version_requirements: *id001
27
34
  - !ruby/object:Gem::Dependency
28
35
  name: rspec
29
- type: :development
30
- version_requirement:
31
- version_requirements: !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
32
38
  requirements:
33
39
  - - ">="
34
40
  - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
35
43
  version: "0"
36
- version:
44
+ type: :development
45
+ version_requirements: *id002
37
46
  description: The official Ruby gem for the Scribd API. Scribd is a document-sharing website allowing people to upload and view documents online.
38
47
  email: api@scribd.com
39
48
  executables: []
@@ -45,7 +54,6 @@ extra_rdoc_files:
45
54
  files:
46
55
  - .gitignore
47
56
  - History.txt
48
- - Manifest.txt
49
57
  - README.txt
50
58
  - Rakefile
51
59
  - VERSION
@@ -78,18 +86,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
78
86
  requirements:
79
87
  - - ">="
80
88
  - !ruby/object:Gem::Version
89
+ segments:
90
+ - 0
81
91
  version: "0"
82
- version:
83
92
  required_rubygems_version: !ruby/object:Gem::Requirement
84
93
  requirements:
85
94
  - - ">="
86
95
  - !ruby/object:Gem::Version
96
+ segments:
97
+ - 0
87
98
  version: "0"
88
- version:
89
99
  requirements: []
90
100
 
91
101
  rubyforge_project:
92
- rubygems_version: 1.3.5
102
+ rubygems_version: 1.3.6
93
103
  signing_key:
94
104
  specification_version: 3
95
105
  summary: Ruby client library for the Scribd API
@@ -1,14 +0,0 @@
1
- History.txt
2
- Manifest.txt
3
- README.txt
4
- Rakefile
5
- lib/scribdapi.rb
6
- lib/scribddoc.rb
7
- lib/scribderrors.rb
8
- lib/scribdmultiparthack.rb
9
- lib/scribdresource.rb
10
- lib/rscribd.rb
11
- lib/scribduser.rb
12
- sample/01_upload.rb
13
- sample/02_user.rb
14
- sample/test.txt