cloudinary 1.12.0 → 1.13.0

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: f3837b9826e6f31a35e478b9d8bbf81027cee43ece65f7df161b748fd5c21dd9
4
- data.tar.gz: 3b47da18531bbfe2252f6cfe4a071bc5972c286c2f5777758d1b1a7e1a30b07e
3
+ metadata.gz: 2e5827b8b849956cb26923c951ff72b205ff34e898309513ec1a18eca3abd47f
4
+ data.tar.gz: 53acb20dcbd39a0dfa3d99c912c128e0731950893066a102bda1e4d267c1ebc2
5
5
  SHA512:
6
- metadata.gz: 34d0a6214325094a27683345da51e605b7ba6f6ba5761d4c64478dea618dbf3d4ce14a255bf69d513704d72dca6ef5a27ee4bc6e5e81d66e5548341f9e7c2e8c
7
- data.tar.gz: 383bbafb8b06b9bda3fdedbde2f6b7248bcee0bacd5576e98b8e9b79d9ff45cd7d1025056fe1edde412fbf4a04855ba4ea3af197c260374827026f7a0b883f55
6
+ metadata.gz: efd2057b536c8bbd339efce5046e23a1ee9d8c35cd398354f1ec3d72dcb98f9f2c0d7696441097b9e9de576dd98ae97c594e0368937f9ff60a52c5cd6556e98a
7
+ data.tar.gz: 19215c9db03f24c24b24aabfaf1bb887eaac5bd2c493890e2426a8523503c3235de85be0a3a243ce2ac31b52c8463f5ce4ef7f1db5775a06082436dc1610baca
@@ -1,3 +1,19 @@
1
+
2
+ 1.13.0 / 2019-11-14
3
+ ===================
4
+
5
+ New functionality and features
6
+ ------------------------------
7
+ * Add `SassC` `cloudinary-url` function
8
+
9
+ Other Changes
10
+ -------------
11
+
12
+ * Fix ActiveStorage download not using `ssl` for `https`
13
+ * Fix resource type detection in ActiveStorage
14
+ * Fix `storage_type` instance method in `Cloudinary::CarrierWave` module
15
+ * Fix sample project, limit sqlite3 to a compatible version
16
+
1
17
  1.12.0 / 2019-10-02
2
18
  =============
3
19
 
@@ -102,12 +102,11 @@ module ActiveStorage
102
102
  uri = URI(url)
103
103
  if block_given?
104
104
  instrument :streaming_download, key: key do
105
- Net::HTTP.start(uri.host, uri.port) do |http|
105
+ Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
106
106
  request = Net::HTTP::Get.new uri
107
107
  http.request request do |response|
108
108
  response.read_body &block
109
109
  end
110
-
111
110
  end
112
111
  end
113
112
  else
@@ -130,7 +129,7 @@ module ActiveStorage
130
129
  else range.end
131
130
  end
132
131
  req['range'] = "bytes=#{[range.begin, range_end].join('-')}"
133
- res = Net::HTTP.start(uri.hostname, uri.port) do |http|
132
+ res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
134
133
  http.request(req)
135
134
  end
136
135
  res.body.force_encoding(Encoding::BINARY)
@@ -165,14 +164,23 @@ module ActiveStorage
165
164
  end
166
165
 
167
166
  def resource_type(io, key = "")
168
- return 'image' unless key.respond_to? :attributes
169
- options = key.attributes
167
+ options = key.respond_to?(:attributes) ? key.attributes : {}
170
168
  content_type = options[:content_type] || (io.nil? ? '' : Marcel::MimeType.for(io))
171
- case content_type.split('/')[0]
172
- when 'video'
169
+ type, subtype = content_type.split('/')
170
+ case type
171
+ when 'video', 'audio'
173
172
  'video'
174
173
  when 'text'
175
174
  'raw'
175
+ when 'application'
176
+ case subtype
177
+ when 'pdf', 'postscript'
178
+ 'image'
179
+ when 'vnd.apple.mpegurl', 'x-mpegurl', 'mpegurl' # m3u8
180
+ 'video'
181
+ else
182
+ 'raw'
183
+ end
176
184
  else
177
185
  'image'
178
186
  end
@@ -10,7 +10,8 @@ module Cloudinary::CarrierWave
10
10
  def self.included(base)
11
11
  base.storage Cloudinary::CarrierWave::Storage
12
12
  base.extend ClassMethods
13
- base.class_attribute :storage_type, :metadata
13
+ base.class_attribute :metadata
14
+ base.class_attribute :storage_type, instance_reader: false
14
15
  override_in_versions(base, :blank?, :full_public_id, :my_public_id, :all_versions_processors, :stored_version)
15
16
  end
16
17
 
@@ -286,7 +286,7 @@ module CloudinaryHelper
286
286
  Cloudinary::Utils.private_download_url(public_id, format, options)
287
287
  end
288
288
 
289
- # Helper method that uses the deprecated ZIP download API.
289
+ # Helper method that uses the deprecated ZIP download API.
290
290
  # Replaced by cl_download_zip_url that uses the more advanced and robust archive generation and download API
291
291
  # @deprecated
292
292
  def cl_zip_download_url(tag, options = {})
@@ -296,7 +296,7 @@ module CloudinaryHelper
296
296
  # @see {Cloudinary::Utils.download_archive_url}
297
297
  def cl_download_archive_url(options = {})
298
298
  Cloudinary::Utils.download_archive_url(options)
299
- end
299
+ end
300
300
 
301
301
  # @see {Cloudinary::Utils.download_zip_url}
302
302
  def cl_download_zip_url(options = {})
@@ -318,7 +318,7 @@ module CloudinaryHelper
318
318
  if Cloudinary.config.enhance_image_tag
319
319
  alias_method :image_tag, :image_tag_with_cloudinary
320
320
  alias_method :image_path, :image_path_with_cloudinary
321
- end
321
+ end
322
322
  end
323
323
  end
324
324
 
@@ -419,3 +419,30 @@ rescue LoadError
419
419
  # no sass support. Ignore.
420
420
  end
421
421
 
422
+ begin
423
+ require 'sassc'
424
+ require 'sassc/script/functions'
425
+ module SassC::Script::Functions
426
+ # Helper method for generating cloudinary_url in scss files.
427
+ #
428
+ # As opposed to sass(deprecated), optional named arguments are not supported, use hash map instead.
429
+ #
430
+ # Example:
431
+ # Sass: cloudinary-url("sample", $quality: "auto", $fetch_format: "auto");
432
+ # becomes
433
+ # SassC: cloudinary-url("sample", ("quality": "auto", "fetch_format": "auto"));
434
+ #
435
+ # @param [::SassC::Script::Value::String] public_id The public ID of the resource
436
+ # @param [::SassC::Script::Value::Map] sass_options Additional options
437
+ #
438
+ # @return [::SassC::Script::Value::String]
439
+ def cloudinary_url(public_id, sass_options = {})
440
+ options = {}
441
+ sass_options.to_h.each { |k, v| options[k.value] = v.value }
442
+ url = Cloudinary::Utils.cloudinary_url(public_id.value, {:type => :asset}.merge(options))
443
+ ::SassC::Script::Value::String.new("url(#{url})")
444
+ end
445
+ end
446
+ rescue LoadError
447
+ # no sassc support. Ignore.
448
+ end
@@ -1,4 +1,4 @@
1
1
  # Copyright Cloudinary
2
2
  module Cloudinary
3
- VERSION = "1.12.0"
3
+ VERSION = "1.13.0"
4
4
  end
@@ -7,13 +7,17 @@ if RUBY_VERSION > '2.2.2'
7
7
  CONFIGURATION_PATH = Pathname.new(File.expand_path("service/configurations.yml", __dir__))
8
8
  SERVICE = ActiveStorage::Service.configure(:cloudinary, SERVICE_CONFIGURATIONS)
9
9
 
10
+ TEST_IMG_PATH = Pathname.new(TEST_IMG)
11
+ TEST_VIDEO_PATH = Pathname.new(TEST_VIDEO)
12
+ TEST_RAW_PATH = Pathname.new(TEST_RAW)
13
+
10
14
  describe 'active_storage' do
11
15
  let(:key) {ActiveStorage::BlobKey.new({key: SecureRandom.base58(24), filename: BASENAME})}
12
16
 
13
17
  before :all do
14
18
  @key = ActiveStorage::BlobKey.new key: SecureRandom.base58(24), filename: BASENAME
15
19
  @service = self.class.const_get(:SERVICE)
16
- @service.upload @key, TEST_IMG, tags: [TEST_TAG, TIMESTAMP_TAG, AS_TAG]
20
+ @service.upload @key, TEST_IMG_PATH, tags: [TEST_TAG, TIMESTAMP_TAG, AS_TAG]
17
21
  end
18
22
 
19
23
  after :all do
@@ -88,5 +92,16 @@ if RUBY_VERSION > '2.2.2'
88
92
  expect(Cloudinary::Uploader).to receive(:upload).with(TEST_IMG, hash_including(tags: override_tags))
89
93
  @service.upload(key, TEST_IMG, tags: override_tags)
90
94
  end
95
+
96
+ it "should correctly identify resource_type" do
97
+ expect(Cloudinary::Uploader).to receive(:upload).with(TEST_IMG_PATH, hash_including(resource_type: 'image'))
98
+ @service.upload(key, TEST_IMG_PATH)
99
+
100
+ expect(Cloudinary::Uploader).to receive(:upload).with(TEST_VIDEO_PATH, hash_including(resource_type: 'video'))
101
+ @service.upload(key, TEST_VIDEO_PATH)
102
+
103
+ expect(Cloudinary::Uploader).to receive(:upload).with(TEST_RAW_PATH, hash_including(resource_type: 'raw'))
104
+ @service.upload(key, TEST_RAW_PATH)
105
+ end
91
106
  end
92
107
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudinary
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.0
4
+ version: 1.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nadav Soferman
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-10-02 00:00:00.000000000 Z
13
+ date: 2019-11-14 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: aws_cf_signer
@@ -342,8 +342,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
342
342
  - !ruby/object:Gem::Version
343
343
  version: '0'
344
344
  requirements: []
345
- rubyforge_project: cloudinary
346
- rubygems_version: 2.7.10
345
+ rubygems_version: 3.0.6
347
346
  signing_key:
348
347
  specification_version: 4
349
348
  summary: Client library for easily using the Cloudinary service