cloudinary 1.15.0 → 1.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/Rakefile +3 -45
- data/lib/cloudinary/carrier_wave.rb +1 -0
- data/lib/cloudinary/carrier_wave/storage.rb +2 -1
- data/lib/cloudinary/railtie.rb +1 -1
- data/lib/cloudinary/uploader.rb +3 -0
- data/lib/cloudinary/utils.rb +1 -1
- data/lib/cloudinary/version.rb +1 -1
- data/lib/tasks/cloudinary/fetch_assets.rake +48 -0
- data/lib/tasks/{cloudinary.rake → cloudinary/sync_static.rake} +0 -0
- data/vendor/assets/javascripts/cloudinary/jquery.cloudinary.js +4 -3
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38bfe3ef22f15b588b0cc8d80a433eb76d31b899eed350a8722547eeeee86643
|
4
|
+
data.tar.gz: f00c4f2e455a3ef278a5169df4fd40f982e65f774ccd444095053663dc531c15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 560784ae8664c5d3425599cb40cd72f69010223a22ae8d62dbb0c16033ce25dc28ae5810f39adb859436209d767dbfbe097974f7f8018add701eb072556e5bb3
|
7
|
+
data.tar.gz: 551b473e18bb1774a724da52201c8a8d463cb7dcaaa3926de8f980b150fb18e69c03d50d39fa6e9d11d2d8f29d1413759953d714166252c6390e08ad5811c668
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,19 @@
|
|
1
1
|
|
2
|
+
1.16.0 / 2020-06-29
|
3
|
+
===================
|
4
|
+
|
5
|
+
New functionality and features
|
6
|
+
------------------------------
|
7
|
+
|
8
|
+
* Add support for uploading `StringIO`
|
9
|
+
|
10
|
+
Other Changes
|
11
|
+
-------------
|
12
|
+
|
13
|
+
* Set default cache storage to `file` in `CarrierWave`
|
14
|
+
* Fix `normalize_expression` to ignore predefined variables
|
15
|
+
* Fix sample projects
|
16
|
+
|
2
17
|
1.15.0 / 2020-06-11
|
3
18
|
===================
|
4
19
|
|
data/Rakefile
CHANGED
@@ -1,55 +1,13 @@
|
|
1
1
|
require 'bundler'
|
2
2
|
require 'fileutils'
|
3
|
-
require 'tmpdir'
|
4
|
-
require 'rest_client'
|
5
|
-
require 'json'
|
6
|
-
require 'rubygems/package'
|
7
|
-
|
8
3
|
require 'rspec/core/rake_task'
|
4
|
+
|
9
5
|
RSpec::Core::RakeTask.new(:spec)
|
10
6
|
task :default => :spec
|
11
7
|
|
12
8
|
Bundler::GemHelper.install_tasks
|
13
9
|
|
14
|
-
|
15
|
-
|
16
|
-
task :fetch_assets do
|
17
|
-
index_files = %w[jquery.ui.widget.js jquery.iframe-transport.js jquery.fileupload.js jquery.cloudinary.js]
|
18
|
-
processing_files = %w[canvas-to-blob.min.js load-image.all.min.js jquery.fileupload-process.js jquery.fileupload-image.js jquery.fileupload-validate.js]
|
19
|
-
files = index_files + processing_files
|
20
|
-
|
21
|
-
release = JSON(RestClient.get("https://api.github.com/repos/cloudinary/cloudinary_js/releases/latest"))
|
22
|
-
|
23
|
-
FileUtils.rm_rf 'vendor/assets'
|
24
|
-
html_folder = 'vendor/assets/html'
|
25
|
-
FileUtils.mkdir_p html_folder
|
26
|
-
js_folder = 'vendor/assets/javascripts/cloudinary'
|
27
|
-
FileUtils.mkdir_p js_folder
|
28
|
-
|
29
|
-
puts "Fetching cloudinary_js version #{release["tag_name"]}\n\n"
|
30
|
-
sio = StringIO.new(RestClient.get(release["tarball_url"]).body)
|
31
|
-
file =Zlib::GzipReader.new(sio)
|
32
|
-
tar = Gem::Package::TarReader.new(file)
|
33
|
-
tar.each_entry do |entry|
|
34
|
-
name = File.basename(entry.full_name)
|
35
|
-
if files.include? name
|
36
|
-
js_full_name = File.join(js_folder, name)
|
37
|
-
puts "Adding #{js_full_name}"
|
38
|
-
File.write js_full_name, entry.read
|
39
|
-
elsif name == 'cloudinary_cors.html'
|
40
|
-
html_full_name = File.join(html_folder, name)
|
41
|
-
puts "Adding #{html_full_name}"
|
42
|
-
File.write html_full_name, entry.read
|
43
|
-
end
|
44
|
-
end
|
45
|
-
puts "Creating 'index.js' and 'processing.js' files"
|
46
|
-
File.open("vendor/assets/javascripts/cloudinary/index.js", "w") do |f|
|
47
|
-
index_files.each { |name| f.puts "//= require ./#{name}" }
|
48
|
-
end
|
49
|
-
File.open("vendor/assets/javascripts/cloudinary/processing.js", "w") do |f|
|
50
|
-
processing_files.each { |name| f.puts "//= require ./#{name}" }
|
51
|
-
end
|
52
|
-
end
|
10
|
+
path = File.expand_path(__dir__)
|
11
|
+
Dir.glob("#{path}/lib/tasks/**/*.rake").each { |f| import f }
|
53
12
|
|
54
|
-
end
|
55
13
|
task :build => "cloudinary:fetch_assets"
|
@@ -9,6 +9,7 @@ module Cloudinary::CarrierWave
|
|
9
9
|
|
10
10
|
def self.included(base)
|
11
11
|
base.storage Cloudinary::CarrierWave::Storage
|
12
|
+
base.cache_storage = :file if base.cache_storage.blank?
|
12
13
|
base.extend ClassMethods
|
13
14
|
base.class_attribute :metadata
|
14
15
|
base.class_attribute :storage_type, instance_reader: false
|
@@ -1,7 +1,8 @@
|
|
1
1
|
class Cloudinary::CarrierWave::Storage < ::CarrierWave::Storage::Abstract
|
2
2
|
|
3
3
|
def store!(file)
|
4
|
-
return
|
4
|
+
return unless uploader.enable_processing
|
5
|
+
|
5
6
|
if uploader.is_main_uploader?
|
6
7
|
case file
|
7
8
|
when Cloudinary::CarrierWave::PreloadedCloudinaryFile
|
data/lib/cloudinary/railtie.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
class Cloudinary::Railtie < Rails::Railtie
|
2
2
|
rake_tasks do
|
3
|
-
Dir[File.join(File.dirname(__FILE__),'../tasks
|
3
|
+
Dir[File.join(File.dirname(__FILE__),'../tasks/**/*.rake')].each { |f| load f }
|
4
4
|
end
|
5
5
|
config.after_initialize do |app|
|
6
6
|
ActionView::Base.send :include, CloudinaryHelper
|
data/lib/cloudinary/uploader.rb
CHANGED
@@ -78,6 +78,9 @@ class Cloudinary::Uploader
|
|
78
78
|
params = build_upload_params(options)
|
79
79
|
if file.is_a?(Pathname)
|
80
80
|
params[:file] = File.open(file, "rb")
|
81
|
+
elsif file.is_a?(StringIO)
|
82
|
+
file.rewind
|
83
|
+
params[:file] = Cloudinary::Blob.new(file.read, options)
|
81
84
|
elsif file.respond_to?(:read) || Cloudinary::Utils.is_remote?(file)
|
82
85
|
params[:file] = file
|
83
86
|
else
|
data/lib/cloudinary/utils.rb
CHANGED
@@ -306,7 +306,7 @@ class Cloudinary::Utils
|
|
306
306
|
"if_" + normalize_expression(if_value) unless if_value.to_s.empty?
|
307
307
|
end
|
308
308
|
|
309
|
-
EXP_REGEXP = Regexp.new(PREDEFINED_VARS.keys.join("|")+'|('+CONDITIONAL_OPERATORS.keys.reverse.map { |k| Regexp.escape(k) }.join('|')+')(?=[ _])')
|
309
|
+
EXP_REGEXP = Regexp.new('(?<!\$)('+PREDEFINED_VARS.keys.join("|")+')'+'|('+CONDITIONAL_OPERATORS.keys.reverse.map { |k| Regexp.escape(k) }.join('|')+')(?=[ _])')
|
310
310
|
EXP_REPLACEMENT = PREDEFINED_VARS.merge(CONDITIONAL_OPERATORS)
|
311
311
|
|
312
312
|
def self.normalize_expression(expression)
|
data/lib/cloudinary/version.rb
CHANGED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'tmpdir'
|
2
|
+
require 'rest_client'
|
3
|
+
require 'json'
|
4
|
+
require 'rubygems/package'
|
5
|
+
|
6
|
+
unless Rake::Task.task_defined?('cloudinary:fetch_assets') # prevent double-loading/execution
|
7
|
+
namespace :cloudinary do
|
8
|
+
desc "Fetch the latest JavaScript library files and create the JavaScript index files"
|
9
|
+
task :fetch_assets do
|
10
|
+
index_files = %w[jquery.ui.widget.js jquery.iframe-transport.js jquery.fileupload.js jquery.cloudinary.js]
|
11
|
+
processing_files = %w[canvas-to-blob.min.js load-image.all.min.js jquery.fileupload-process.js jquery.fileupload-image.js jquery.fileupload-validate.js]
|
12
|
+
files = index_files + processing_files
|
13
|
+
|
14
|
+
release = JSON(RestClient.get("https://api.github.com/repos/cloudinary/cloudinary_js/releases/latest"))
|
15
|
+
|
16
|
+
FileUtils.rm_rf 'vendor/assets'
|
17
|
+
html_folder = 'vendor/assets/html'
|
18
|
+
FileUtils.mkdir_p html_folder
|
19
|
+
js_folder = 'vendor/assets/javascripts/cloudinary'
|
20
|
+
FileUtils.mkdir_p js_folder
|
21
|
+
|
22
|
+
puts "Fetching cloudinary_js version #{release["tag_name"]}\n\n"
|
23
|
+
sio = StringIO.new(RestClient.get(release["tarball_url"]).body)
|
24
|
+
file = Zlib::GzipReader.new(sio)
|
25
|
+
tar = Gem::Package::TarReader.new(file)
|
26
|
+
tar.each_entry do |entry|
|
27
|
+
name = File.basename(entry.full_name)
|
28
|
+
if files.include? name
|
29
|
+
js_full_name = File.join(js_folder, name)
|
30
|
+
puts "Adding #{js_full_name}"
|
31
|
+
File.write js_full_name, entry.read
|
32
|
+
elsif name == 'cloudinary_cors.html'
|
33
|
+
html_full_name = File.join(html_folder, name)
|
34
|
+
puts "Adding #{html_full_name}"
|
35
|
+
File.write html_full_name, entry.read
|
36
|
+
end
|
37
|
+
end
|
38
|
+
puts "Creating 'index.js' and 'processing.js' files"
|
39
|
+
File.open("vendor/assets/javascripts/cloudinary/index.js", "w") do |f|
|
40
|
+
index_files.each { |name| f.puts "//= require ./#{name}" }
|
41
|
+
end
|
42
|
+
File.open("vendor/assets/javascripts/cloudinary/processing.js", "w") do |f|
|
43
|
+
processing_files.each { |name| f.puts "//= require ./#{name}" }
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
File without changes
|
@@ -1403,7 +1403,8 @@ var slice = [].slice,
|
|
1403
1403
|
"*": "mul",
|
1404
1404
|
"/": "div",
|
1405
1405
|
"+": "add",
|
1406
|
-
"-": "sub"
|
1406
|
+
"-": "sub",
|
1407
|
+
"^": "pow",
|
1407
1408
|
};
|
1408
1409
|
|
1409
1410
|
|
@@ -1486,8 +1487,8 @@ var slice = [].slice,
|
|
1486
1487
|
return expression;
|
1487
1488
|
}
|
1488
1489
|
expression = String(expression);
|
1489
|
-
operators = "
|
1490
|
-
pattern = "((" + operators + ")(?=[ _])|" + Object.keys(Expression.PREDEFINED_VARS).join("|") + ")";
|
1490
|
+
operators = "\\|\\||>=|<=|&&|!=|>|=|<|/|-|\\+|\\*|\\^";
|
1491
|
+
pattern = "((" + operators + ")(?=[ _])|(?<!\$)(" + Object.keys(Expression.PREDEFINED_VARS).join("|") + "))";
|
1491
1492
|
replaceRE = new RegExp(pattern, "g");
|
1492
1493
|
expression = expression.replace(replaceRE, function(match) {
|
1493
1494
|
return Expression.OPERATORS[match] || Expression.PREDEFINED_VARS[match];
|
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.
|
4
|
+
version: 1.16.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: 2020-06-
|
13
|
+
date: 2020-06-29 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: aws_cf_signer
|
@@ -220,7 +220,8 @@ files:
|
|
220
220
|
- lib/cloudinary/utils.rb
|
221
221
|
- lib/cloudinary/version.rb
|
222
222
|
- lib/cloudinary/video_helper.rb
|
223
|
-
- lib/tasks/cloudinary.rake
|
223
|
+
- lib/tasks/cloudinary/fetch_assets.rake
|
224
|
+
- lib/tasks/cloudinary/sync_static.rake
|
224
225
|
- tools/update_version
|
225
226
|
- vendor/assets/html/cloudinary_cors.html
|
226
227
|
- vendor/assets/javascripts/cloudinary/canvas-to-blob.min.js
|
@@ -253,7 +254,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
253
254
|
- !ruby/object:Gem::Version
|
254
255
|
version: '0'
|
255
256
|
requirements: []
|
256
|
-
rubygems_version: 3.
|
257
|
+
rubygems_version: 3.0.6
|
257
258
|
signing_key:
|
258
259
|
specification_version: 4
|
259
260
|
summary: Client library for easily using the Cloudinary service
|