attached 0.2.8 → 0.2.9

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.
data/lib/attached.rb CHANGED
@@ -38,7 +38,7 @@ module Attached
38
38
  # Usage:
39
39
  #
40
40
  # has_attached :video
41
- # has_attached :video, :storage => :s3
41
+ # has_attached :video, :storage => :aws
42
42
  # has_attached :video, styles => { :mov => { :size => "480p", :format => "mov" } }
43
43
 
44
44
  def has_attached(name, options = {})
@@ -56,12 +56,10 @@ module Attached
56
56
  # * path - The path to save.
57
57
 
58
58
  def save(file, path)
59
- file = File.open(file.path)
60
-
61
59
  directory = connection.directories.get(self.bucket)
62
60
  directory ||= connection.directories.create(self.permissions.merge(:key => self.bucket))
63
61
 
64
- directory.files.create(self.permissions.merge(:body => file, :key => path))
62
+ directory.files.create(self.options(path).merge(self.permissions.merge(:key => path, :body => file.read)))
65
63
  end
66
64
 
67
65
 
@@ -21,6 +21,49 @@ module Attached
21
21
  end
22
22
 
23
23
 
24
+ # Helper for determining options from a file
25
+ #
26
+ # Usage:
27
+ #
28
+ # options("/images/1.jpg")
29
+ # options("/images/1.png")
30
+ # options("/videos/1.mpg")
31
+ # options("/videos/1.mov")
32
+
33
+ def options(path)
34
+ options = {}
35
+ type = File.extname(path)
36
+
37
+ case type
38
+ when /tiff/ then options[:content_type] = "image/tiff"
39
+ when /tif/ then options[:content_type] = "image/tiff"
40
+ when /jpeg/ then options[:content_type] = "image/jpeg"
41
+ when /jpe/ then options[:content_type] = "image/jpeg"
42
+ when /jpg/ then options[:content_type] = "image/jpeg"
43
+ when /png/ then options[:content_type] = "image/png"
44
+ when /gif/ then options[:content_type] = "image/gif"
45
+ when /bmp/ then options[:content_type] = "image/bmp"
46
+ when /mpeg/ then options[:content_type] = "video/mpeg"
47
+ when /mpa/ then options[:content_type] = "video/mpeg"
48
+ when /mpe/ then options[:content_type] = "video/mpeg"
49
+ when /mpg/ then options[:content_type] = "video/mpeg"
50
+ when /mov/ then options[:content_type] = "video/mov"
51
+ when /josn/ then options[:content_type] = "application/json"
52
+ when /xml/ then options[:content_type] = "application/xml"
53
+ when /pdf/ then options[:content_type] = "application/pdf"
54
+ when /rtf/ then options[:content_type] = "application/rtf"
55
+ when /zip/ then options[:content_type] = "application/zip"
56
+ when /js/ then options[:content_type] = "application/js"
57
+ when /html/ then options[:content_type] = "text/html"
58
+ when /html/ then options[:content_type] = "text/htm"
59
+ when /txt/ then options[:content_type] = "text/plain"
60
+ when /csv/ then options[:content_type] = "text/csv"
61
+ end
62
+
63
+ return options
64
+ end
65
+
66
+
24
67
  # Create a new file system storage interface supporting save and destroy operations.
25
68
  #
26
69
  # Usage:
@@ -56,12 +56,10 @@ module Attached
56
56
  # * path - The path to save.
57
57
 
58
58
  def save(file, path)
59
- file = File.open(file.path)
60
-
61
59
  directory = connection.directories.get(self.bucket)
62
60
  directory ||= connection.directories.create(self.permissions.merge(:key => self.bucket))
63
61
 
64
- directory.files.create(self.permissions.merge(:body => file, :key => path))
62
+ directory.files.create(self.options(path).merge(self.permissions.merge(:key => path, :body => file.read)))
65
63
  end
66
64
 
67
65
 
@@ -55,12 +55,10 @@ module Attached
55
55
  # * path - The path to save.
56
56
 
57
57
  def save(file, path)
58
- file = File.open(file.path)
58
+ directory = connection.directories.get(self.bucket)
59
+ directory ||= connection.directories.create(self.permissions.merge(:key => self.bucket))
59
60
 
60
- directory = connection.directories.get(self.container)
61
- directory ||= connection.directories.create(self.permissions.merge(:key => self.container))
62
-
63
- directory.files.create(self.permissions.merge(:body => file, :key => path))
61
+ directory.files.create(self.options(path).merge(self.permissions.merge(:key => path, :body => file.read)))
64
62
  end
65
63
 
66
64
 
@@ -1,3 +1,3 @@
1
1
  module Attached
2
- VERSION = "0.2.8"
2
+ VERSION = "0.2.9"
3
3
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: attached
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.8
5
+ version: 0.2.9
6
6
  platform: ruby
7
7
  authors:
8
8
  - Kevin Sylvestre
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-02-23 00:00:00 -05:00
13
+ date: 2011-03-01 00:00:00 -05:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -90,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
90
  requirements: []
91
91
 
92
92
  rubyforge_project:
93
- rubygems_version: 1.5.0
93
+ rubygems_version: 1.5.3
94
94
  signing_key:
95
95
  specification_version: 3
96
96
  summary: An attachment library designed with cloud processors in mind