paperclip_upload 1.2.2 → 1.2.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d46199ef410968cd3e3f4f1635023ec9f396b3dd
4
- data.tar.gz: 4093c1e4f3c47a4acf99da82ecbe38ce8b46917d
3
+ metadata.gz: 9ab8ed12df64b54b310f81a3e0dc71002872e323
4
+ data.tar.gz: 83388e8f681debfac5c1687e5d5e0d1d2953b2ca
5
5
  SHA512:
6
- metadata.gz: 5ad84a18310b22af6d51fbb132f8be8a04ff39f3eab9e4dff15d33e11c2914a1ece16ff3052374dcf678b7b9608f1580dc8539bce79943e2d340470ba3114f4d
7
- data.tar.gz: 704cb5f3b50e839cb9713d7b591cf486333306a8d2e37873ef742ee72486ea3295061f877dfd2d9515cb1f33af70265b0adb3fb553933054fade2c3e008694c9
6
+ metadata.gz: c95d919e913e76b7386a8a0ef36875f27baae052afc2ec48372df82faf2c2f8057081e5527f7f8c22d49b3366353a6b3fd98bcbb22ad9397263d382744a4e9eb
7
+ data.tar.gz: be4ef5c06bdbfa924ce2055567eb5fd515d6a27e442d9f806aecb9d90e2b56089637968cc163c02842ac4b4a092d33fcb060985c1217cc87c3636972cafeba76
data/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
  This project adheres to [Semantic Versioning](http://semver.org/).
4
4
 
5
+ ### v1.2.3
6
+
7
+ ##### Fixed
8
+ * Removed `uploads#download` endpoint. Use always `file.url` instead of `file.path`. `file.path` does not work with S3 config.
9
+
5
10
  ### v1.2.2
6
11
 
7
12
  ##### Fixed
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- paperclip_upload (1.2.2)
4
+ paperclip_upload (1.2.3)
5
5
  active_model_serializers (~> 0.9.3)
6
6
  hashids (~> 1.0, >= 1.0.2)
7
7
  paperclip (~> 4.2, >= 4.2.0)
@@ -69,7 +69,7 @@ GEM
69
69
  railties (>= 3.0.0)
70
70
  ffi (1.9.8)
71
71
  formatador (0.2.5)
72
- globalid (0.3.5)
72
+ globalid (0.3.6)
73
73
  activesupport (>= 4.1.0)
74
74
  guard (2.12.5)
75
75
  formatador (>= 0.2.4)
@@ -180,9 +180,9 @@ GEM
180
180
  shoulda-matchers (2.8.0)
181
181
  activesupport (>= 3.0.0)
182
182
  slop (3.6.0)
183
- sprockets (3.2.0)
183
+ sprockets (3.3.4)
184
184
  rack (~> 1.0)
185
- sprockets-rails (2.3.2)
185
+ sprockets-rails (2.3.3)
186
186
  actionpack (>= 3.0)
187
187
  activesupport (>= 3.0)
188
188
  sprockets (>= 2.8, < 4.0)
@@ -208,3 +208,6 @@ DEPENDENCIES
208
208
  rspec-rails (~> 3.2, >= 3.2.1)
209
209
  shoulda-matchers (~> 2.8, >= 2.8.0)
210
210
  sqlite3 (~> 1.3, >= 1.3.10)
211
+
212
+ BUNDLED WITH
213
+ 1.10.6
data/README.md CHANGED
@@ -181,14 +181,9 @@ class Api::UploadsController < Api::BaseController
181
181
 
182
182
  def create
183
183
  new_upload = PaperclipUpload::Upload.create(permitted_params)
184
- set_download_url(new_upload)
185
184
  respond_with new_upload, status: :created
186
185
  end
187
186
 
188
- def download
189
- send_file(upload.file.path, type: upload.file_content_type, disposition: 'inline')
190
- end
191
-
192
187
  private
193
188
 
194
189
  def permitted_params
@@ -198,21 +193,13 @@ class Api::UploadsController < Api::BaseController
198
193
  def upload
199
194
  @upload ||= PaperclipUpload::Upload.find_by_identifier(params[:identifier])
200
195
  end
201
-
202
- private
203
-
204
- def set_download_url(_upload)
205
- _upload.singleton_class.send(:attr_accessor, :download_url)
206
- _upload.download_url = download_api_upload_url(identifier: _upload.identifier)
207
- end
208
196
  end
209
197
  ```
210
198
 
211
- and the routes...
199
+ and the route...
212
200
 
213
201
  ```ruby
214
202
  post "api/uploads", to: "api/uploads#create", defaults: { format: :json }
215
- get "api/uploads/:identifier/download", to: "api/uploads#download", defaults: { format: :json }, as: :download_api_upload
216
203
  ```
217
204
 
218
205
  ## Configuration
@@ -5,14 +5,9 @@ module PaperclipUpload
5
5
 
6
6
  def create
7
7
  new_upload = PaperclipUpload::Upload.create(permitted_params)
8
- set_download_url(new_upload)
9
8
  respond_with new_upload, status: :created
10
9
  end
11
10
 
12
- def download
13
- send_file(upload.file.path, type: upload.file_content_type, disposition: 'inline')
14
- end
15
-
16
11
  private
17
12
 
18
13
  def permitted_params
@@ -22,12 +17,5 @@ module PaperclipUpload
22
17
  def upload
23
18
  @upload ||= PaperclipUpload::Upload.find_by_identifier(params[:identifier])
24
19
  end
25
-
26
- private
27
-
28
- def set_download_url(_upload)
29
- _upload.singleton_class.send(:attr_accessor, :download_url)
30
- _upload.download_url = download_url(identifier: _upload.identifier)
31
- end
32
20
  end
33
21
  end
@@ -15,24 +15,26 @@ module PaperclipUpload
15
15
  class Upload < ActiveRecord::Base
16
16
  IDENTIFIER_LENGTH = 8
17
17
 
18
- has_attached_file :file, path: ':rails_root/tmp/uploads/:id/:filename'
18
+ has_attached_file :file,
19
+ path: ':rails_root/public/uploads/:identifier/:filename',
20
+ url: "/uploads/:identifier/:basename.:extension"
19
21
 
20
22
  do_not_validate_attachment_file_type :file
21
23
  validates_attachment_presence :file
22
24
 
23
25
  def identifier
24
- raise "valid with saved instance only" if self.id.blank?
25
- self.class.hashid.encode(self.id)
26
+ raise "valid with saved instance only" if id.blank?
27
+ self.class.hashid.encode(id)
26
28
  end
27
29
 
28
30
  def file_extension
29
- return unless self.file.exists?
30
- File.extname(self.file.original_filename).split('.').last
31
+ return unless file.exists?
32
+ File.extname(file.original_filename).split('.').last
31
33
  end
32
34
 
33
35
  def file_name
34
- return unless self.file.exists?
35
- self.file_file_name.gsub(".#{file_extension}", "")
36
+ return unless file.exists?
37
+ file_file_name.gsub(".#{file_extension}", "")
36
38
  end
37
39
 
38
40
  def self.find_by_identifier(_identifier)
@@ -40,14 +42,20 @@ module PaperclipUpload
40
42
  PaperclipUpload::Upload.find(decoded_id)
41
43
  end
42
44
 
43
- private
45
+ def download_url
46
+ file.url
47
+ end
44
48
 
45
49
  def self.hashid
46
50
  Hashids.new(PaperclipUpload.hash_salt, IDENTIFIER_LENGTH)
47
51
  end
48
52
 
49
53
  def self.identifier_to_id(_identifier)
50
- self.hashid.decode(_identifier).first
54
+ hashid.decode(_identifier).first
55
+ end
56
+
57
+ Paperclip.interpolates(:identifier) do |attachment, _|
58
+ attachment.instance.identifier
51
59
  end
52
60
  end
53
61
  end
@@ -4,14 +4,9 @@ class UploadController < ApplicationController
4
4
 
5
5
  def create
6
6
  new_upload = PaperclipUpload::Upload.create(permitted_params)
7
- set_download_url(new_upload)
8
7
  respond_with new_upload, status: :created
9
8
  end
10
9
 
11
- def download
12
- send_file(upload.file.path, type: upload.file_content_type, disposition: 'inline')
13
- end
14
-
15
10
  private
16
11
 
17
12
  def permitted_params
@@ -21,11 +16,4 @@ class UploadController < ApplicationController
21
16
  def upload
22
17
  @upload ||= PaperclipUpload::Upload.find_by_identifier(params[:identifier])
23
18
  end
24
-
25
- private
26
-
27
- def set_download_url(_upload)
28
- _upload.singleton_class.send(:attr_accessor, :download_url)
29
- _upload.download_url = "download_link"
30
- end
31
19
  end
@@ -1,6 +1,6 @@
1
1
  class PaperclipUpload::UploadControllerGenerator < Rails::Generators::NamedBase
2
2
  source_root File.expand_path('../templates', __FILE__)
3
- argument :base_controller, type: :string, :default => "application"
3
+ argument :base_controller, type: :string, default: "application"
4
4
 
5
5
  def generate_controller
6
6
  generate "controller #{resource_path} --no-helper --no-assets --no-view-specs --no-controller-specs"
@@ -12,14 +12,9 @@ class PaperclipUpload::UploadControllerGenerator < Rails::Generators::NamedBase
12
12
 
13
13
  def customize_controller
14
14
  line = "class UploadController < ApplicationController"
15
- gsub_file controller_path, /(#{Regexp.escape(line)})/mi do |match|
15
+ gsub_file controller_path, /(#{Regexp.escape(line)})/mi do
16
16
  "class #{controller_class} < #{base_controller_class}"
17
17
  end
18
-
19
- link = "\"download_link\""
20
- gsub_file controller_path, /(#{Regexp.escape(link)})/mi do |match|
21
- "#{download_route_method}_url(identifier: _upload.identifier)"
22
- end
23
18
  end
24
19
 
25
20
  def add_routes
@@ -28,17 +23,12 @@ class PaperclipUpload::UploadControllerGenerator < Rails::Generators::NamedBase
28
23
  <<-HERE.gsub(/^ {9}/, '')
29
24
  #{match}
30
25
  post "#{resource_path}", to: "#{resource_path}#create", defaults: { format: :json }
31
- get "#{resource_path}/:identifier/download", to: "#{resource_path}#download", defaults: { format: :json }, as: :#{download_route_method}
32
26
  HERE
33
27
  end
34
28
  end
35
29
 
36
30
  private
37
31
 
38
- def download_route_method
39
- "download_#{resource_path.singularize.gsub('/','_')}"
40
- end
41
-
42
32
  def controller_class
43
33
  "#{name.classify.pluralize}Controller"
44
34
  end
@@ -1,3 +1,3 @@
1
1
  module PaperclipUpload
2
- VERSION = "1.2.2"
2
+ VERSION = "1.2.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paperclip_upload
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leandro Segovia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-16 00:00:00.000000000 Z
11
+ date: 2015-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails