cloudinary 1.9.1 → 1.10.0
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 +15 -5
- data/.gitignore +1 -0
- data/CHANGELOG.md +32 -0
- data/cloudinary.gemspec +2 -1
- data/lib/cloudinary/api.rb +28 -13
- data/lib/cloudinary/cache.rb +38 -0
- data/lib/cloudinary/cache/breakpoints_cache.rb +31 -0
- data/lib/cloudinary/cache/key_value_cache_adapter.rb +25 -0
- data/lib/cloudinary/cache/rails_cache_adapter.rb +34 -0
- data/lib/cloudinary/cache/storage/rails_cache_storage.rb +5 -0
- data/lib/cloudinary/helper.rb +47 -4
- data/lib/cloudinary/responsive.rb +111 -0
- data/lib/cloudinary/uploader.rb +22 -4
- data/lib/cloudinary/utils.rb +122 -5
- data/lib/cloudinary/version.rb +1 -1
- data/spec/access_control_spec.rb +3 -0
- data/spec/api_spec.rb +19 -13
- data/spec/auth_token_spec.rb +8 -10
- data/spec/cache_spec.rb +109 -0
- data/spec/cloudinary_helper_spec.rb +147 -12
- data/spec/image_spec.rb +107 -0
- data/spec/spec_helper.rb +38 -17
- data/spec/uploader_spec.rb +23 -8
- data/spec/utils_spec.rb +46 -3
- data/spec/video_tag_spec.rb +7 -5
- data/spec/video_url_spec.rb +4 -2
- data/tools/update_version +202 -0
- metadata +83 -30
data/spec/utils_spec.rb
CHANGED
@@ -3,7 +3,9 @@ require 'cloudinary'
|
|
3
3
|
|
4
4
|
describe Cloudinary::Utils do
|
5
5
|
|
6
|
+
|
6
7
|
before :each do
|
8
|
+
Cloudinary.reset_config
|
7
9
|
Cloudinary.config do |config|
|
8
10
|
# config.cloud_name = "demo"
|
9
11
|
config.secure_distribution = nil
|
@@ -450,6 +452,12 @@ describe Cloudinary::Utils do
|
|
450
452
|
.and empty_options
|
451
453
|
end
|
452
454
|
|
455
|
+
it "should support blur effect with ocr gravity" do
|
456
|
+
expect(["test", { :effect => ["blur_region", 5000], :gravity => "ocr_text" }])
|
457
|
+
.to produce_url("#{upload_path}/e_blur_region:5000,g_ocr_text/test")
|
458
|
+
.and empty_options
|
459
|
+
end
|
460
|
+
|
453
461
|
it "should support keyframe_interval" do
|
454
462
|
expect(["test", { :keyframe_interval => 10 }])
|
455
463
|
.to produce_url("#{upload_path}/ki_10/test")
|
@@ -565,7 +573,8 @@ describe Cloudinary::Utils do
|
|
565
573
|
["text with font family and size parameters", { :text => text_layer, :font_family => "Arial", :font_size => "18" }, "text:Arial_18:#{text_encoded}"],
|
566
574
|
["text with text style parameter", { :text => text_layer, :font_family => "Arial", :font_size => "18", :font_weight => "bold", :font_style => "italic", :letter_spacing => 4, :line_spacing => 2 }, "text:Arial_18_bold_italic_letter_spacing_4_line_spacing_2:#{text_encoded}"],
|
567
575
|
["subtitles", { :resource_type => "subtitles", :public_id => "subtitles.srt" }, "subtitles:subtitles.srt"],
|
568
|
-
["subtitles with font family and size", { :resource_type => "subtitles", :public_id => "subtitles.srt", :font_family => "Arial", :font_size => "40" }, "subtitles:Arial_40:subtitles.srt"]
|
576
|
+
["subtitles with font family and size", { :resource_type => "subtitles", :public_id => "subtitles.srt", :font_family => "Arial", :font_size => "40" }, "subtitles:Arial_40:subtitles.srt"],
|
577
|
+
["image of type fetch", { :public_id => "http://res.cloudinary.com/demo/image/upload/ci", :type => "fetch" }, "fetch:aHR0cDovL3Jlcy5jbG91ZGluYXJ5LmNvbS9kZW1vL2ltYWdlL3VwbG9hZC9jaQ=="]
|
569
578
|
]
|
570
579
|
layers_options.each do |name, options, result|
|
571
580
|
it "should support #{name}" do
|
@@ -617,8 +626,8 @@ describe Cloudinary::Utils do
|
|
617
626
|
end
|
618
627
|
|
619
628
|
it "should support extenal cname with cdn_subdomain on" do
|
620
|
-
expect(["test", { :cname => "hello.com", :cdn_subdomain => true
|
621
|
-
.to produce_url("http://a2.hello.com
|
629
|
+
expect(["test", { :cname => "hello.com", :private_cdn => true, :cdn_subdomain => true}])
|
630
|
+
.to produce_url("http://a2.hello.com/image/upload/test")
|
622
631
|
.and empty_options
|
623
632
|
end
|
624
633
|
|
@@ -807,6 +816,12 @@ describe Cloudinary::Utils do
|
|
807
816
|
{ effect: "sepia" }]])
|
808
817
|
.to produce_url("#{upload_path}/if_w_lt_200,c_fill,h_120,w_80/if_w_gt_400,c_fit,h_150,w_150/e_sepia/sample")
|
809
818
|
end
|
819
|
+
it "should allow multiple tags condition" do
|
820
|
+
expect(["sample", transformation: [{ if: "!tag1:tag2:tag3!_in_tags", crop: "fill", height: 120, width: 80 },
|
821
|
+
{ if: "else", crop: "fit", width: 150, height: 150 },
|
822
|
+
{ effect: "sepia" }]])
|
823
|
+
.to produce_url("#{upload_path}/if_!tag1:tag2:tag3!_in_tags,c_fill,h_120,w_80/if_else,c_fit,h_150,w_150/e_sepia/sample")
|
824
|
+
end
|
810
825
|
|
811
826
|
describe "including spaces and operators" do
|
812
827
|
it "should translate operators" do
|
@@ -903,4 +918,32 @@ describe Cloudinary::Utils do
|
|
903
918
|
.or eq("symbol_key=string_value|string_key=symbol_value")
|
904
919
|
end
|
905
920
|
end
|
921
|
+
|
922
|
+
describe "customFunction" do
|
923
|
+
custom_function_wasm = {
|
924
|
+
:function_type => 'wasm',
|
925
|
+
:source => 'blur.wasm'
|
926
|
+
}
|
927
|
+
custom_function_wasm_str = 'wasm:blur.wasm'
|
928
|
+
|
929
|
+
custom_function_remote = {
|
930
|
+
:function_type => 'remote',
|
931
|
+
:source => 'https://df34ra4a.execute-api.us-west-2.amazonaws.com/default/cloudinaryFunction'
|
932
|
+
}
|
933
|
+
custom_function_remote_str = 'remote:aHR0cHM6Ly9kZjM0cmE0YS5leGVjdXRlLWFwaS51cy13ZXN0LTIuYW1hem9uYXdzLmNvbS9kZWZhdWx0L2Nsb3VkaW5hcnlGdW5jdGlvbg=='
|
934
|
+
|
935
|
+
it 'should accept a string value' do
|
936
|
+
actual = Cloudinary::Utils.generate_transformation_string :custom_function => custom_function_wasm_str
|
937
|
+
expect( actual).to eq("fn_#{custom_function_wasm_str}")
|
938
|
+
end
|
939
|
+
it 'should accept a hash of options' do
|
940
|
+
actual = Cloudinary::Utils.generate_transformation_string :custom_function => custom_function_wasm
|
941
|
+
expect( actual).to eq("fn_#{custom_function_wasm_str}")
|
942
|
+
end
|
943
|
+
it 'should base64 encoded URL for a remote function' do
|
944
|
+
actual = Cloudinary::Utils.generate_transformation_string :custom_function => custom_function_remote
|
945
|
+
expect( actual).to eq("fn_#{custom_function_remote_str}")
|
946
|
+
|
947
|
+
end
|
948
|
+
end
|
906
949
|
end
|
data/spec/video_tag_spec.rb
CHANGED
@@ -14,14 +14,16 @@ if ::Rails::VERSION::MAJOR < 4
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
describe CloudinaryHelper do
|
17
|
+
|
17
18
|
before :all do
|
18
19
|
# Test the helper in the context it runs in in production
|
19
20
|
ActionView::Base.send :include, CloudinaryHelper
|
20
21
|
|
21
22
|
end
|
22
23
|
before(:each) do
|
24
|
+
Cloudinary.reset_config
|
23
25
|
Cloudinary.config do |config|
|
24
|
-
config.cloud_name =
|
26
|
+
config.cloud_name = DUMMY_CLOUD
|
25
27
|
config.secure_distribution = nil
|
26
28
|
config.private_cdn = false
|
27
29
|
config.secure = false
|
@@ -35,11 +37,11 @@ describe CloudinaryHelper do
|
|
35
37
|
let(:helper) {
|
36
38
|
ActionView::Base.new
|
37
39
|
}
|
38
|
-
let(:root_path) { "http://res.cloudinary.com
|
40
|
+
let(:root_path) { "http://res.cloudinary.com/#{DUMMY_CLOUD}" }
|
39
41
|
let(:upload_path) { "#{root_path}/video/upload" }
|
40
42
|
|
41
43
|
describe 'cl_video_tag' do
|
42
|
-
let(:basic_options) { { :cloud_name =>
|
44
|
+
let(:basic_options) { { :cloud_name => DUMMY_CLOUD} }
|
43
45
|
let(:options) { basic_options }
|
44
46
|
let(:test_tag) { TestTag.new helper.cl_video_tag("movie", options) }
|
45
47
|
context "when options include video tag attributes" do
|
@@ -170,7 +172,7 @@ describe CloudinaryHelper do
|
|
170
172
|
let(:fallback) { "<span id=\"spanid\">Cannot display video</span>" }
|
171
173
|
let(:options) { basic_options.merge(:fallback_content => fallback) }
|
172
174
|
it "should include fallback content in the tag" do
|
173
|
-
expect(test_tag.children).to include(TestTag.new(fallback))
|
175
|
+
expect(test_tag.children.map(&:to_html)).to include(TestTag.new(fallback).element.to_html)
|
174
176
|
end
|
175
177
|
end
|
176
178
|
|
@@ -184,7 +186,7 @@ describe CloudinaryHelper do
|
|
184
186
|
TestTag.new(html)
|
185
187
|
end
|
186
188
|
it 'should treat the block return value as fallback content' do
|
187
|
-
expect(test_tag.children).to include("Cannot display video!")
|
189
|
+
expect(test_tag.children.map(&:to_html)).to include("Cannot display video!")
|
188
190
|
end
|
189
191
|
end
|
190
192
|
describe "dimensions" do
|
data/spec/video_url_spec.rb
CHANGED
@@ -6,9 +6,11 @@ require 'cloudinary/helper'
|
|
6
6
|
require 'action_view/test_case'
|
7
7
|
|
8
8
|
describe Cloudinary::Utils do
|
9
|
+
|
9
10
|
before(:each) do
|
11
|
+
Cloudinary.reset_config
|
10
12
|
Cloudinary.config do |config|
|
11
|
-
config.cloud_name =
|
13
|
+
config.cloud_name = DUMMY_CLOUD
|
12
14
|
config.secure_distribution = nil
|
13
15
|
config.private_cdn = false
|
14
16
|
config.secure = false
|
@@ -18,7 +20,7 @@ describe Cloudinary::Utils do
|
|
18
20
|
config.api_secret = "b"
|
19
21
|
end
|
20
22
|
end
|
21
|
-
let(:root_path) { "http://res.cloudinary.com
|
23
|
+
let(:root_path) { "http://res.cloudinary.com/#{DUMMY_CLOUD}" }
|
22
24
|
let(:upload_path) { "#{root_path}/video/upload" }
|
23
25
|
|
24
26
|
describe "cloudinary_url" do
|
@@ -0,0 +1,202 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
# Update version number and prepare for publishing the new version
|
4
|
+
|
5
|
+
set -e
|
6
|
+
|
7
|
+
# Empty to run the rest of the line and "echo" for a dry run
|
8
|
+
CMD_PREFIX=
|
9
|
+
|
10
|
+
# Add a quote if this is a dry run
|
11
|
+
QUOTE=
|
12
|
+
|
13
|
+
NEW_VERSION=
|
14
|
+
|
15
|
+
function echo_err
|
16
|
+
{
|
17
|
+
echo "$@" 1>&2;
|
18
|
+
}
|
19
|
+
|
20
|
+
function usage
|
21
|
+
{
|
22
|
+
echo "Usage: $0 [parameters]"
|
23
|
+
echo " -v | --version <version> set a new version"
|
24
|
+
echo " -c | --current show current version"
|
25
|
+
echo " -d | --dry-run print the commands without executing them"
|
26
|
+
echo " -h | --help print this information and exit"
|
27
|
+
echo
|
28
|
+
echo "For example: $0 -v 1.2.3"
|
29
|
+
}
|
30
|
+
|
31
|
+
function process_arguments
|
32
|
+
{
|
33
|
+
while [ "$1" != "" ]; do
|
34
|
+
case $1 in
|
35
|
+
-v | --version )
|
36
|
+
shift
|
37
|
+
NEW_VERSION=${1:-}
|
38
|
+
if ! [[ "${NEW_VERSION}" =~ [0-9]+\.[0-9]+\.[0-9]+(\-.+)? ]]; then
|
39
|
+
echo_err "You must supply a new version after -v or --version"
|
40
|
+
echo_err "For example:"
|
41
|
+
echo_err " 1.2.3"
|
42
|
+
echo_err " 1.2.3-rc1"
|
43
|
+
echo_err ""
|
44
|
+
usage; return 1
|
45
|
+
fi
|
46
|
+
;;
|
47
|
+
-c | --current )
|
48
|
+
echo `current_version`
|
49
|
+
exit
|
50
|
+
;;
|
51
|
+
-d | --dry-run )
|
52
|
+
CMD_PREFIX=echo
|
53
|
+
echo "Dry Run"
|
54
|
+
echo ""
|
55
|
+
;;
|
56
|
+
-h | --help )
|
57
|
+
usage; return 0
|
58
|
+
;;
|
59
|
+
* )
|
60
|
+
usage; return 1
|
61
|
+
esac
|
62
|
+
shift || true
|
63
|
+
done
|
64
|
+
}
|
65
|
+
|
66
|
+
# Intentionally make pushd silent
|
67
|
+
function pushd
|
68
|
+
{
|
69
|
+
command pushd "$@" > /dev/null
|
70
|
+
}
|
71
|
+
|
72
|
+
# Intentionally make popd silent
|
73
|
+
function popd
|
74
|
+
{
|
75
|
+
command popd "$@" > /dev/null
|
76
|
+
}
|
77
|
+
|
78
|
+
# Check if one version is less than or equal than other
|
79
|
+
# Example:
|
80
|
+
# ver_lte 1.2.3 1.2.3 && echo "yes" || echo "no" # yes
|
81
|
+
# ver_lte 1.2.3 1.2.4 && echo "yes" || echo "no" # yes
|
82
|
+
# ver_lte 1.2.4 1.2.3 && echo "yes" || echo "no" # no
|
83
|
+
function ver_lte
|
84
|
+
{
|
85
|
+
[ "$1" = "`echo -e "$1\n$2" | sort -V | head -n1`" ]
|
86
|
+
}
|
87
|
+
|
88
|
+
# Extract the last entry or entry for a given version
|
89
|
+
# The function is not currently used in this file.
|
90
|
+
# Examples:
|
91
|
+
# changelog_last_entry
|
92
|
+
# changelog_last_entry 1.10.0
|
93
|
+
#
|
94
|
+
function changelog_last_entry
|
95
|
+
{
|
96
|
+
sed -e "1,/^${1}/d" -e '/^=/d' -e '/^$/d' -e '/^[0-9]/,$d' CHANGELOG.md
|
97
|
+
}
|
98
|
+
|
99
|
+
function verify_dependencies
|
100
|
+
{
|
101
|
+
# Test if the gnu grep is installed
|
102
|
+
if ! grep --version | grep -q GNU
|
103
|
+
then
|
104
|
+
echo_err "GNU grep is required for this script"
|
105
|
+
echo_err "You can install it using the following command:"
|
106
|
+
echo_err ""
|
107
|
+
echo_err "brew install grep --with-default-names"
|
108
|
+
return 1
|
109
|
+
fi
|
110
|
+
|
111
|
+
if [[ -z "$(type -t git-changelog)" ]]
|
112
|
+
then
|
113
|
+
echo_err "git-extras packages is not installed."
|
114
|
+
echo_err "You can install it using the following command:"
|
115
|
+
echo_err ""
|
116
|
+
echo_err "brew install git-extras"
|
117
|
+
return 1
|
118
|
+
fi
|
119
|
+
}
|
120
|
+
|
121
|
+
# Replace old string only if it is present in the file, otherwise return 1
|
122
|
+
function safe_replace
|
123
|
+
{
|
124
|
+
local old=$1
|
125
|
+
local new=$2
|
126
|
+
local file=$3
|
127
|
+
|
128
|
+
grep -q "${old}" "${file}" || { echo_err "${old} was not found in ${file}"; return 1; }
|
129
|
+
|
130
|
+
${CMD_PREFIX} sed -E -i '.bak' "${QUOTE}s/${old}/${new}/${QUOTE}" "${file}"
|
131
|
+
}
|
132
|
+
|
133
|
+
function current_version
|
134
|
+
{
|
135
|
+
grep -oiP '(?<=VERSION = ")([0-9.]+)(?=")' lib/cloudinary/version.rb
|
136
|
+
}
|
137
|
+
|
138
|
+
function update_version
|
139
|
+
{
|
140
|
+
if [ -z "${NEW_VERSION}" ]; then
|
141
|
+
usage; return 1
|
142
|
+
fi
|
143
|
+
|
144
|
+
# Enter git root
|
145
|
+
pushd $(git rev-parse --show-toplevel)
|
146
|
+
local current_version=$(current_version)
|
147
|
+
|
148
|
+
if [ -z "${current_version}" ]; then
|
149
|
+
echo_err "Failed getting current version, please check directory structure and/or contact developer"
|
150
|
+
return 1
|
151
|
+
fi
|
152
|
+
|
153
|
+
# Use literal dot character in regular expression
|
154
|
+
local current_version_re=${current_version//./\\.}
|
155
|
+
|
156
|
+
echo "# Current version is: ${current_version}"
|
157
|
+
echo "# New version is: ${NEW_VERSION}"
|
158
|
+
|
159
|
+
ver_lte "${NEW_VERSION}" "${current_version}" && { echo_err "New version is not greater than current version"; return 1; }
|
160
|
+
|
161
|
+
# Add a quote if this is a dry run
|
162
|
+
QUOTE=${CMD_PREFIX:+"'"}
|
163
|
+
|
164
|
+
safe_replace "VERSION = \"${current_version_re}\""\
|
165
|
+
"VERSION = \"${NEW_VERSION}\""\
|
166
|
+
lib/cloudinary/version.rb\
|
167
|
+
|| return 1
|
168
|
+
|
169
|
+
${CMD_PREFIX} git changelog -t ${NEW_VERSION} || true
|
170
|
+
|
171
|
+
echo ""
|
172
|
+
echo "# After editing CHANGELOG.md, optionally review changes and issue these commands:"
|
173
|
+
echo git add lib/cloudinary/version.rb CHANGELOG.md
|
174
|
+
echo git commit -m \"Version ${NEW_VERSION}\"
|
175
|
+
echo sed -e "'1,/^${NEW_VERSION//./\\.}/d'" \
|
176
|
+
-e "'/^=/d'" \
|
177
|
+
-e "'/^$/d'" \
|
178
|
+
-e "'/^[0-9]/,\$d'" \
|
179
|
+
CHANGELOG.md \
|
180
|
+
\| git tag -a "'${NEW_VERSION}'" --file=-
|
181
|
+
|
182
|
+
# Don't run those commands on dry run
|
183
|
+
[ -n "${CMD_PREFIX}" ] && { popd; return 0; }
|
184
|
+
|
185
|
+
echo ""
|
186
|
+
read -p "Run the above commands automatically? (y/N): " confirm && [[ ${confirm} == [yY] || ${confirm} == [yY][eE][sS] ]] || { popd; return 0; }
|
187
|
+
|
188
|
+
git add lib/cloudinary/version.rb CHANGELOG.md
|
189
|
+
git commit -m "Version ${NEW_VERSION}"
|
190
|
+
sed -e "1,/^${NEW_VERSION//./\\.}/d" \
|
191
|
+
-e "/^=/d" \
|
192
|
+
-e "/^$/d" \
|
193
|
+
-e "/^[0-9]/,\$d" \
|
194
|
+
CHANGELOG.md \
|
195
|
+
| git tag -a "${NEW_VERSION}" --file=-
|
196
|
+
|
197
|
+
popd
|
198
|
+
}
|
199
|
+
|
200
|
+
verify_dependencies
|
201
|
+
process_arguments $*
|
202
|
+
update_version
|
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.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nadav Soferman
|
@@ -10,120 +10,162 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2018-
|
13
|
+
date: 2018-11-08 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: aws_cf_signer
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- -
|
26
|
+
- - ! '>='
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: '0'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: rspec
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- -
|
33
|
+
- - ! '>='
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: '3.5'
|
36
36
|
type: :development
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- -
|
40
|
+
- - ! '>='
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '3.5'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: rspec-rails
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - ! '>='
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '0'
|
50
50
|
type: :development
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- -
|
54
|
+
- - ! '>='
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: '0'
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: rake
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- -
|
61
|
+
- - ! '>='
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: '0'
|
64
64
|
type: :development
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
|
-
- -
|
68
|
+
- - ! '>='
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '0'
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: rest-client
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - <
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
77
|
+
version: '2.0'
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
|
-
- -
|
82
|
+
- - <
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: '0'
|
84
|
+
version: '2.0'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: json
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ~>
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '1.8'
|
92
|
+
type: :runtime
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ~>
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '1.8'
|
85
99
|
- !ruby/object:Gem::Dependency
|
86
100
|
name: actionpack
|
87
101
|
requirement: !ruby/object:Gem::Requirement
|
88
102
|
requirements:
|
89
|
-
- -
|
103
|
+
- - <
|
90
104
|
- !ruby/object:Gem::Version
|
91
|
-
version: '0'
|
105
|
+
version: '5.0'
|
92
106
|
type: :development
|
93
107
|
prerelease: false
|
94
108
|
version_requirements: !ruby/object:Gem::Requirement
|
95
109
|
requirements:
|
96
|
-
- -
|
110
|
+
- - <
|
97
111
|
- !ruby/object:Gem::Version
|
98
|
-
version: '0'
|
112
|
+
version: '5.0'
|
99
113
|
- !ruby/object:Gem::Dependency
|
100
114
|
name: simplecov
|
101
115
|
requirement: !ruby/object:Gem::Requirement
|
102
116
|
requirements:
|
103
|
-
- -
|
117
|
+
- - ! '>='
|
104
118
|
- !ruby/object:Gem::Version
|
105
119
|
version: '0'
|
106
120
|
type: :development
|
107
121
|
prerelease: false
|
108
122
|
version_requirements: !ruby/object:Gem::Requirement
|
109
123
|
requirements:
|
110
|
-
- -
|
124
|
+
- - ! '>='
|
111
125
|
- !ruby/object:Gem::Version
|
112
126
|
version: '0'
|
127
|
+
- !ruby/object:Gem::Dependency
|
128
|
+
name: nokogiri
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
130
|
+
requirements:
|
131
|
+
- - <
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 1.7.0
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - <
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: 1.7.0
|
113
141
|
- !ruby/object:Gem::Dependency
|
114
142
|
name: rubyzip
|
115
143
|
requirement: !ruby/object:Gem::Requirement
|
116
144
|
requirements:
|
117
|
-
- -
|
145
|
+
- - <
|
118
146
|
- !ruby/object:Gem::Version
|
119
|
-
version:
|
147
|
+
version: 1.2.1
|
120
148
|
type: :development
|
121
149
|
prerelease: false
|
122
150
|
version_requirements: !ruby/object:Gem::Requirement
|
123
151
|
requirements:
|
124
|
-
- -
|
152
|
+
- - <
|
125
153
|
- !ruby/object:Gem::Version
|
126
|
-
version:
|
154
|
+
version: 1.2.1
|
155
|
+
- !ruby/object:Gem::Dependency
|
156
|
+
name: rack
|
157
|
+
requirement: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - <
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: 1.6.5
|
162
|
+
type: :development
|
163
|
+
prerelease: false
|
164
|
+
version_requirements: !ruby/object:Gem::Requirement
|
165
|
+
requirements:
|
166
|
+
- - <
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: 1.6.5
|
127
169
|
description: Client library for easily using the Cloudinary service
|
128
170
|
email:
|
129
171
|
- nadav.soferman@cloudinary.com
|
@@ -133,9 +175,9 @@ executables: []
|
|
133
175
|
extensions: []
|
134
176
|
extra_rdoc_files: []
|
135
177
|
files:
|
136
|
-
-
|
137
|
-
-
|
138
|
-
-
|
178
|
+
- .gitignore
|
179
|
+
- .rspec
|
180
|
+
- .travis.yml
|
139
181
|
- CHANGELOG.md
|
140
182
|
- CONTRIBUTING.md
|
141
183
|
- Gemfile
|
@@ -146,6 +188,11 @@ files:
|
|
146
188
|
- lib/cloudinary/api.rb
|
147
189
|
- lib/cloudinary/auth_token.rb
|
148
190
|
- lib/cloudinary/blob.rb
|
191
|
+
- lib/cloudinary/cache.rb
|
192
|
+
- lib/cloudinary/cache/breakpoints_cache.rb
|
193
|
+
- lib/cloudinary/cache/key_value_cache_adapter.rb
|
194
|
+
- lib/cloudinary/cache/rails_cache_adapter.rb
|
195
|
+
- lib/cloudinary/cache/storage/rails_cache_storage.rb
|
149
196
|
- lib/cloudinary/carrier_wave.rb
|
150
197
|
- lib/cloudinary/carrier_wave/error.rb
|
151
198
|
- lib/cloudinary/carrier_wave/preloaded.rb
|
@@ -162,6 +209,7 @@ files:
|
|
162
209
|
- lib/cloudinary/ostruct2.rb
|
163
210
|
- lib/cloudinary/preloaded_file.rb
|
164
211
|
- lib/cloudinary/railtie.rb
|
212
|
+
- lib/cloudinary/responsive.rb
|
165
213
|
- lib/cloudinary/search.rb
|
166
214
|
- lib/cloudinary/static.rb
|
167
215
|
- lib/cloudinary/uploader.rb
|
@@ -173,6 +221,7 @@ files:
|
|
173
221
|
- spec/api_spec.rb
|
174
222
|
- spec/archive_spec.rb
|
175
223
|
- spec/auth_token_spec.rb
|
224
|
+
- spec/cache_spec.rb
|
176
225
|
- spec/cloudinary_helper_spec.rb
|
177
226
|
- spec/cloudinary_spec.rb
|
178
227
|
- spec/data/sync_static/app/assets/javascripts/1.coffee
|
@@ -180,6 +229,7 @@ files:
|
|
180
229
|
- spec/data/sync_static/app/assets/stylesheets/1.css
|
181
230
|
- spec/docx.docx
|
182
231
|
- spec/favicon.ico
|
232
|
+
- spec/image_spec.rb
|
183
233
|
- spec/logo.png
|
184
234
|
- spec/rake_spec.rb
|
185
235
|
- spec/sample_asset_file.tsv
|
@@ -194,6 +244,7 @@ files:
|
|
194
244
|
- spec/utils_spec.rb
|
195
245
|
- spec/video_tag_spec.rb
|
196
246
|
- spec/video_url_spec.rb
|
247
|
+
- tools/update_version
|
197
248
|
- vendor/assets/html/cloudinary_cors.html
|
198
249
|
- vendor/assets/javascripts/cloudinary/canvas-to-blob.min.js
|
199
250
|
- vendor/assets/javascripts/cloudinary/index.js
|
@@ -216,17 +267,17 @@ require_paths:
|
|
216
267
|
- lib
|
217
268
|
required_ruby_version: !ruby/object:Gem::Requirement
|
218
269
|
requirements:
|
219
|
-
- -
|
270
|
+
- - ! '>='
|
220
271
|
- !ruby/object:Gem::Version
|
221
272
|
version: '0'
|
222
273
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
223
274
|
requirements:
|
224
|
-
- -
|
275
|
+
- - ! '>='
|
225
276
|
- !ruby/object:Gem::Version
|
226
277
|
version: '0'
|
227
278
|
requirements: []
|
228
279
|
rubyforge_project: cloudinary
|
229
|
-
rubygems_version: 2.
|
280
|
+
rubygems_version: 2.7.7
|
230
281
|
signing_key:
|
231
282
|
specification_version: 4
|
232
283
|
summary: Client library for easily using the Cloudinary service
|
@@ -235,6 +286,7 @@ test_files:
|
|
235
286
|
- spec/api_spec.rb
|
236
287
|
- spec/archive_spec.rb
|
237
288
|
- spec/auth_token_spec.rb
|
289
|
+
- spec/cache_spec.rb
|
238
290
|
- spec/cloudinary_helper_spec.rb
|
239
291
|
- spec/cloudinary_spec.rb
|
240
292
|
- spec/data/sync_static/app/assets/javascripts/1.coffee
|
@@ -242,6 +294,7 @@ test_files:
|
|
242
294
|
- spec/data/sync_static/app/assets/stylesheets/1.css
|
243
295
|
- spec/docx.docx
|
244
296
|
- spec/favicon.ico
|
297
|
+
- spec/image_spec.rb
|
245
298
|
- spec/logo.png
|
246
299
|
- spec/rake_spec.rb
|
247
300
|
- spec/sample_asset_file.tsv
|