paperclip_database_storage 3.0.2 → 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,12 +1,11 @@
1
1
  class PaperclipDatabaseStorage::AttachmentsController < ApplicationController
2
2
  def get_attachment
3
3
  conditions = {}
4
- conditions[:attached_type] = params[:class].singularize.camelize if params[:class]
4
+ conditions[:attached_type] = params[:class].singularize.camelize(:upper) if params[:class]
5
5
  conditions[:attached_id] = params[:id] if params[:id]
6
6
  conditions[:attached_id] ||= params[:id_partition].gsub(/\//, '').to_i if params[:id_partition]
7
7
  conditions[:attachment_name] = params[:attachment].singularize if params[:attachment]
8
8
  conditions[:style] = params[:style] if params[:style]
9
-
10
9
 
11
10
  attachments = PaperclipDatabaseStorage::Attachment.where(conditions)
12
11
 
@@ -14,6 +13,9 @@ class PaperclipDatabaseStorage::AttachmentsController < ApplicationController
14
13
  raise ActionController::RoutingError.new('Too many images found. Check your route definition') if attachments.length > 1
15
14
 
16
15
  attachment = attachments.first
17
- send_data attachment.file_data, :type => attachment.content_type, :disposition => attachment.content_type.strip =~ /^image/ ? 'inline' : 'attachment'
16
+ send_data attachment.file_data,
17
+ :type => attachment.content_type,
18
+ :disposition => (attachment.content_type.strip =~ /^image/ ? 'inline' : 'attachment'),
19
+ :filename => (params[:filename] || attachment.attached.send(attachment.attached.attachment_definitions.select { |k, v| v[:storage] == :database }.keys.first).original_filename)
18
20
  end
19
21
  end
data/config/routes.rb CHANGED
@@ -21,6 +21,6 @@ Rails.application.routes.prepend do
21
21
 
22
22
  # Generate the default route, if necessary
23
23
  if must_create_default_route
24
- get Paperclip::Attachment.default_options[:url].gsub(/:id_partition/, '*id_partition') => 'paperclip_database_storage/attachments#get_attachment', :as => :default_pds
24
+ get Paperclip::Attachment.default_options[:url].gsub(/:id_partition/, '*id_partition').gsub(/:filename/, '*filename') => 'paperclip_database_storage/attachments#get_attachment', :as => :default_pds
25
25
  end
26
- end
26
+ end
@@ -23,8 +23,8 @@ module Paperclip
23
23
 
24
24
  def get_attachment(style)
25
25
  return PaperclipDatabaseStorage::Attachment.find(:first, :conditions => {
26
- :style => style,
27
- :attached_type => self.instance.class.name,
26
+ :style => style,
27
+ :attached_type => self.instance.class.name,
28
28
  :attached_id => self.instance.id,
29
29
  :attachment_name => self.get_attachment_definitions.keys.first
30
30
  })
@@ -32,9 +32,9 @@ module Paperclip
32
32
 
33
33
  def get_attachment_definitions
34
34
  attachment_definitions = self.instance.class.attachment_definitions
35
-
35
+
36
36
  if attachment_definitions.select { |k,v| v[:storage] == :database }.count > 1
37
- raise Exception.new('paperclip-database does not support more than one attachment per model')
37
+ raise Exception.new('paperclip-database-storage does not support more than one attachment per model')
38
38
  end
39
39
 
40
40
  return attachment_definitions
@@ -1,3 +1,3 @@
1
1
  module PaperclipDatabaseStorage
2
- VERSION = "3.0.2" unless defined? PaperclipDatabaseStorage::VERSION
2
+ VERSION = "3.0.3" unless defined? PaperclipDatabaseStorage::VERSION
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paperclip_database_storage
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 3.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: