mdarby-scribd_fu 2.0.3 → 2.0.4

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.
@@ -29,6 +29,9 @@ module ScribdFu
29
29
  'application/vnd.openxmlformats-officedocument.wordprocessingml.template'
30
30
  ]
31
31
 
32
+ # RegExp that matches AWS S3 URLs
33
+ S3 = /^https?:\/\/s3.amazonaws.com/
34
+
32
35
  # Available parameters for the JS API
33
36
  # http://www.scribd.com/publisher/api/api?method_name=Javascript+API
34
37
  Available_JS_Params = [ :height, :width, :page, :my_user_id, :search_query,
@@ -89,11 +92,9 @@ module ScribdFu
89
92
 
90
93
  # Load, store, and return the associated iPaper document
91
94
  def load_ipaper_document(id)
92
- begin
93
- @document ||= scribd_user.find_document(id)
94
- rescue
95
- raise ScribdFuError, "Scribd Document ##{id} not found!"
96
- end
95
+ # Yes, catch-all rescues are bad, but the end rescue
96
+ # should return nil, so laziness FTW.
97
+ scribd_user.find_document(id) rescue nil
97
98
  end
98
99
 
99
100
  # Replace spaces with '%20' (needed by Paperclip models).
@@ -221,11 +222,9 @@ module ScribdFu
221
222
 
222
223
  # Display the iPaper document in a view
223
224
  def display_ipaper(options = {})
224
- alt = options.has_key?(:alt) ? options[:alt] : ""
225
-
226
225
  <<-END
227
226
  <script type="text/javascript" src="http://www.scribd.com/javascripts/view.js"></script>
228
- <div id="embedded_flash">#{alt}</div>
227
+ <div id="embedded_flash">#{options.delete(:alt)}</div>
229
228
  <script type="text/javascript">
230
229
  var scribd_doc = scribd.Document.getDoc(#{ipaper_id}, '#{ipaper_access_key}');
231
230
  #{js_params(options)}
@@ -253,4 +252,4 @@ module ScribdFu
253
252
  end
254
253
 
255
254
  # Let's do this.
256
- ActiveRecord::Base.send(:include, ScribdFu) if Object.const_defined?("ActiveRecord")
255
+ ActiveRecord::Base.send(:include, ScribdFu) if Object.const_defined?("ActiveRecord")
@@ -5,36 +5,26 @@ module ScribdFu
5
5
  end
6
6
 
7
7
  module InstanceMethods
8
-
8
+
9
9
  def self.included(base)
10
10
  base.extend ClassMethods
11
11
  end
12
12
 
13
13
  # Returns a URL for a thumbnail for this model's attachment.
14
- #
15
- # If Scribd does not provide a thumbnail URL, then Attachment_fu's
16
- # thumbnail is fallen back on by returning the value of
17
- # <tt>public_filename(:thumb)</tt>.
18
- #
19
- # Sample use in a view:
20
- # <%= image_tag(@attachment.thumbnail_url, :alt => @attachment.name) %>
21
14
  def thumbnail_url
22
15
  (ipaper_document && ipaper_document.thumbnail_url) || public_filename(:thumb)
23
16
  end
24
17
 
18
+ # Returns the content type for this model's attachment.
25
19
  def get_content_type
26
20
  self.content_type
27
21
  end
28
22
 
29
23
  # Yields the correct path to the file, either the local filename or the S3 URL.
30
24
  def file_path
31
- if public_filename =~ /^https{0,1}:\/\/s3.amazonaws.com/
32
- public_filename
33
- else
34
- "#{RAILS_ROOT}/public#{public_filename}"
35
- end
25
+ public_filename =~ ScribdFu::S3 ? public_filename : "#{RAILS_ROOT}/public#{public_filename}"
36
26
  end
37
27
  end
38
-
28
+
39
29
  end
40
30
  end
@@ -5,7 +5,7 @@ module ScribdFu
5
5
  end
6
6
 
7
7
  module InstanceMethods
8
-
8
+
9
9
  def self.included(base)
10
10
  base.extend ClassMethods
11
11
  end
@@ -15,14 +15,7 @@ module ScribdFu
15
15
  self.send("#{prefix}_content_type")
16
16
  end
17
17
 
18
- # Returns a URL for a thumbnail for the specified +attribute+ attachment.
19
- #
20
- # If Scribd does not provide a thumbnail URL, then Paperclip's thumbnail
21
- # is fallen back on by returning the value of
22
- # <tt>attribute.url(:thumb)</tt>.
23
- #
24
- # Sample use in a view:
25
- # <%= image_tag(@attachment.thumbnail_url, :alt => @attachment.name) %>
18
+ # Returns a URL for a thumbnail for the attached file object.
26
19
  def thumbnail_url
27
20
  begin
28
21
  (ipaper_document && ipaper_document.thumbnail_url) || attached_file.url(:thumb)
@@ -35,11 +28,7 @@ module ScribdFu
35
28
  # stored on S3, this is a full S3 URI, while it is a full path to the
36
29
  # local file if the file is stored locally.
37
30
  def file_path
38
- if attached_file.url =~ /^https{0,1}:\/\/s3.amazonaws.com/
39
- attached_file.url
40
- else
41
- attached_file.path
42
- end
31
+ attached_file.url =~ ScribdFu::S3 ? attached_file.url : attached_file.path
43
32
  end
44
33
 
45
34
 
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "scribd_fu"
3
- s.version = "2.0.3"
4
- s.date = "2009-04-06"
3
+ s.version = "2.0.4"
4
+ s.date = "2009-04-12"
5
5
  s.summary = "Quick and easy interactions with Scribd's iPaper service"
6
6
  s.email = "matt@matt-darby.com"
7
7
  s.homepage = "http://github.com/mdarby/scribd_fu/tree/master"
@@ -105,6 +105,10 @@ describe "An AttachmentFu model" do
105
105
  @document.save
106
106
  end
107
107
 
108
+ it "should not error out when deleted" do
109
+ lambda {@document.destroy}.should_not raise_error(ScribdFu::ScribdFuError)
110
+ end
111
+
108
112
  end
109
113
 
110
114
  end
@@ -283,6 +287,10 @@ describe "Viewing an iPaper document" do
283
287
  @document.display_ipaper.gsub(/\s{2,}/, "").should == "<script type=\"text/javascript\" src=\"http://www.scribd.com/javascripts/view.js\"></script><div id=\"embedded_flash\"></div><script type=\"text/javascript\">var scribd_doc = scribd.Document.getDoc(doc_id, 'access_key');scribd_doc.write(\"embedded_flash\");</script>\n"
284
288
  end
285
289
 
290
+ it "should allow custom alt text" do
291
+ @document.display_ipaper(:alt => "something").should =~ /.*<div id="embedded_flash">something<\/div>.*/
292
+ end
293
+
286
294
  it "should allow custom Javascript params" do
287
295
  options = {:height => 100, :width => 100}
288
296
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mdarby-scribd_fu
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Darby
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-06 00:00:00 -07:00
12
+ date: 2009-04-12 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency