resizing 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 67c72ad237f9dbd4b471d9b249ed6fbc21cdb4c99a9ff8c86e3c4aec72233c21
4
- data.tar.gz: 67377bf88e061f477443d37c3d5f9362e1fc8546dd09336585e5b26820b13efe
3
+ metadata.gz: 04cca28d70c6c4c7a361ae5714aadb8e0983a77827b7099ca3dcb18d60e41052
4
+ data.tar.gz: 653e75727cbeb23d3b9f799b9547df92010410b7f409d671bfaea529325060db
5
5
  SHA512:
6
- metadata.gz: 982272977e217042ba1cb332a918f8877667b87731a2587cecf285664ebf669f96e2265e254f43afb42a4d8101bfda07010e5790b2cce1440363924efa05d1ab
7
- data.tar.gz: fb4da505d292795e84ef79577029d0317ac199db177e0e91d51be75a2c92f89fe4bf2a3a9c0102da20c1552d1450f46ea0471065b6d10d3e8f777ead16367767
6
+ metadata.gz: 9f6395295e817926af6f50fdf66817c97beac4b9e4efbd9ffede1cfb597567ca43a56615a777ae333a96e841aac62f20b4804918f542dc8cf42a57c59c8e8433
7
+ data.tar.gz: b7368beeae3086929f303100059122f9310e18b9bbe6c2503d5d8cb11994272d5e95e480870a4a6a513162db5a87a247ccc785d1dec21dac731bd462ce7881c2
@@ -32,7 +32,7 @@ module Resizing
32
32
  end
33
33
 
34
34
  def url(*args)
35
- return nil unless read_column.present?
35
+ return default_url unless read_column.present?
36
36
 
37
37
  transforms = args.map do |version|
38
38
  version = version.intern
@@ -40,17 +40,22 @@ module Resizing
40
40
  versions[version].transform_string
41
41
  end.compact
42
42
 
43
- "#{default_url}/#{transforms.join('/')}"
43
+ "#{build_url}/#{transforms.join('/')}"
44
44
  end
45
45
 
46
46
  def read_column
47
47
  model.read_attribute(serialization_column)
48
48
  end
49
49
 
50
- def default_url
50
+ def build_url
51
51
  "#{Resizing.configure.host}#{model.read_attribute(serialization_column)}"
52
52
  end
53
53
 
54
+ # need override this. if you want to return some url when target_column is nil
55
+ def default_url
56
+ nil
57
+ end
58
+
54
59
  def transform_string
55
60
  transforms = processors.map do |processor|
56
61
  transform_string_from processor
@@ -96,7 +96,7 @@ module Resizing
96
96
  @public_id.image_id
97
97
  end
98
98
 
99
- @response = Resizing.put(image_id, new_file.read, { content_type: @content_type })
99
+ @response = Resizing.put(image_id, new_file.read, { content_type: @content_type, filename: new_file.original_filename })
100
100
  @public_id = Resizing::PublicId.new(@response['public_id'])
101
101
 
102
102
  # force update column
@@ -50,9 +50,11 @@ module Resizing
50
50
 
51
51
  url = build_post_url
52
52
 
53
+ filename = gather_filename file_or_binary, options
54
+
53
55
  body = to_io(file_or_binary)
54
56
  params = {
55
- image: Faraday::UploadIO.new(body, options[:content_type])
57
+ image: Faraday::UploadIO.new(body, options[:content_type], filename)
56
58
  }
57
59
 
58
60
  response = http_client.post(url, params) do |request|
@@ -68,9 +70,11 @@ module Resizing
68
70
 
69
71
  url = build_put_url(image_id)
70
72
 
73
+ filename = gather_filename file_or_binary, options
74
+
71
75
  body = to_io(file_or_binary)
72
76
  params = {
73
- image: Faraday::UploadIO.new(body, options[:content_type])
77
+ image: Faraday::UploadIO.new(body, options[:content_type], filename)
74
78
  }
75
79
 
76
80
  response = http_client.put(url, params) do |request|
@@ -113,6 +117,11 @@ module Resizing
113
117
  "#{config.host}/projects/#{config.project_id}/upload/images/"
114
118
  end
115
119
 
120
+ def gather_filename file_or_binary, options
121
+ filename = options[:filename]
122
+ filename ||= file_or_binary.respond_to?(:path) ? File.basename(file_or_binary.path) : nil
123
+ end
124
+
116
125
  def build_put_url(image_id)
117
126
  "#{config.host}/projects/#{config.project_id}/upload/images/#{image_id}"
118
127
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Resizing
4
- VERSION = '0.4.0'
4
+ VERSION = '0.4.1'
5
5
  end
@@ -70,6 +70,18 @@ module Resizing
70
70
  assert_equal('jpg', model.resizing_picture.format)
71
71
  end
72
72
 
73
+ def test_url_is_return_default_url
74
+ model = TestModel.new
75
+ model.save!
76
+ assert_nil model.resizing_picture_url
77
+ end
78
+
79
+ def test_url_is_return_default_url
80
+ model = TestModelWithDefaultURL.new
81
+ model.save!
82
+ assert_equal('http://example.com/test.jpg', model.resizing_picture_url)
83
+ end
84
+
73
85
  def expect_url
74
86
  'http://192.168.56.101:5000/projects/098a2a0d-c387-4135-a071-1254d6d7e70a/'+
75
87
  'upload/images/28c49144-c00d-4cb5-8619-98ce95977b9c/v1Id850__tqNsnoGWWUibtIBZ5NgjV45M'
@@ -49,6 +49,7 @@ module Resizing
49
49
  assert(!r['created_at'].nil?)
50
50
  assert(!r['updated_at'].nil?)
51
51
  assert_equal(r['public_id'], '/projects/098a2a0d-c387-4135-a071-1254d6d7e70a/upload/images/bfdaf2b3-7ec5-41f4-9caa-d53247dd9666/vAyWaxx96gLaAzB9Bq.VbX1_pxfXJ0Jcq')
52
+ assert_equal(r['filename'], 'sample1.jpg')
52
53
  end
53
54
  end
54
55
 
@@ -33,7 +33,7 @@ ActiveRecord::Base.establish_connection(
33
33
  ActiveRecord::Schema.define do
34
34
  self.verbose = false
35
35
 
36
- %i(test_models test_jpg_models).each do |model_name|
36
+ %i(test_models test_jpg_models test_model_with_default_urls).each do |model_name|
37
37
  connection.execute "drop table if exists #{model_name}"
38
38
 
39
39
  create_table model_name do |t|
@@ -61,6 +61,20 @@ class ResizingJPGUploader < CarrierWave::Uploader::Base
61
61
  def default_format
62
62
  'jpg'
63
63
  end
64
+
65
+ def default_url
66
+ 'http://example.com/test.jpg'
67
+ end
68
+ end
69
+
70
+ class ResizingUploaderWithDefaultURL < CarrierWave::Uploader::Base
71
+ include Resizing::CarrierWave
72
+
73
+ process resize_to_limit: [1000]
74
+
75
+ def default_url
76
+ 'http://example.com/test.jpg'
77
+ end
64
78
  end
65
79
 
66
80
  class TestModel < ::ActiveRecord::Base
@@ -74,3 +88,9 @@ class TestJPGModel < ::ActiveRecord::Base
74
88
 
75
89
  mount_uploader :resizing_picture, ResizingJPGUploader
76
90
  end
91
+
92
+ class TestModelWithDefaultURL < ::ActiveRecord::Base
93
+ extend CarrierWave::Mount
94
+
95
+ mount_uploader :resizing_picture, ResizingUploaderWithDefaultURL
96
+ end
@@ -49,6 +49,6 @@ http_interactions:
49
49
  - chunked
50
50
  body:
51
51
  encoding: UTF-8
52
- string: '{"id":"bfdaf2b3-7ec5-41f4-9caa-d53247dd9666","project_id":"098a2a0d-c387-4135-a071-1254d6d7e70a","content_type":"image/jpeg","latest_version_id":"AyWaxx96gLaAzB9Bq.VbX1_pxfXJ0Jcq","latest_etag":"\"190143614e6c342637584f46f18f8c58\"","created_at":"2020-05-29T03:22:55.241Z","updated_at":"2020-05-29T03:22:55.241Z","public_id":"/projects/098a2a0d-c387-4135-a071-1254d6d7e70a/upload/images/bfdaf2b3-7ec5-41f4-9caa-d53247dd9666/vAyWaxx96gLaAzB9Bq.VbX1_pxfXJ0Jcq"}'
52
+ string: '{"id":"bfdaf2b3-7ec5-41f4-9caa-d53247dd9666","project_id":"098a2a0d-c387-4135-a071-1254d6d7e70a","content_type":"image/jpeg","latest_version_id":"AyWaxx96gLaAzB9Bq.VbX1_pxfXJ0Jcq","latest_etag":"\"190143614e6c342637584f46f18f8c58\"","created_at":"2020-05-29T03:22:55.241Z","updated_at":"2020-05-29T03:22:55.241Z","public_id":"/projects/098a2a0d-c387-4135-a071-1254d6d7e70a/upload/images/bfdaf2b3-7ec5-41f4-9caa-d53247dd9666/vAyWaxx96gLaAzB9Bq.VbX1_pxfXJ0Jcq","filename":"sample1.jpg"}'
53
53
  recorded_at: Fri, 29 May 2020 03:22:55 GMT
54
54
  recorded_with: VCR 6.0.0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resizing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Junichiro Kasuya
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-09-28 00:00:00.000000000 Z
11
+ date: 2020-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday