cloudinary 1.0.40 → 1.0.41

Sign up to get free protection for your applications and to get access to all the features.
@@ -19,6 +19,14 @@ require "cloudinary/railtie" if defined?(Rails) && defined?(Rails::Railtie)
19
19
  require "cloudinary/engine" if defined?(Rails) && defined?(Rails::Engine)
20
20
 
21
21
  module Cloudinary
22
+ FORMAT_ALIASES = {
23
+ "jpeg" => "jpg",
24
+ "jpe" => "jpg",
25
+ "tif" => "tiff",
26
+ "ps" => "eps",
27
+ "ept" => "eps"
28
+ }
29
+
22
30
  @@config = nil
23
31
 
24
32
  def self.config(new_config=nil)
@@ -45,6 +53,7 @@ module Cloudinary
45
53
  end
46
54
 
47
55
  def self.config_from_url(url)
56
+ @@config ||= OpenStruct.new
48
57
  uri = URI.parse(url)
49
58
  set_config(
50
59
  "cloud_name" => uri.host,
@@ -47,14 +47,20 @@ class Cloudinary::Api
47
47
  resource_type = options[:resource_type] || "image"
48
48
  type = options[:type] || "upload"
49
49
  uri = "resources/#{resource_type}/#{type}"
50
- call_api(:delete, uri, {:public_ids=>public_ids}, options)
50
+ call_api(:delete, uri, {:public_ids=>public_ids}.merge(only(options, :keep_original)), options)
51
51
  end
52
52
 
53
53
  def self.delete_resources_by_prefix(prefix, options={})
54
54
  resource_type = options[:resource_type] || "image"
55
55
  type = options[:type] || "upload"
56
56
  uri = "resources/#{resource_type}/#{type}"
57
- call_api(:delete, uri, {:prefix=>prefix}, options)
57
+ call_api(:delete, uri, {:prefix=>prefix}.merge(only(options, :keep_original)), options)
58
+ end
59
+
60
+ def self.delete_resources_by_tag(tag, options={})
61
+ resource_type = options[:resource_type] || "image"
62
+ uri = "resources/#{resource_type}/tags/#{tag}"
63
+ call_api(:delete, uri, only(options, :keep_original), options)
58
64
  end
59
65
 
60
66
  def self.delete_derived_resources(derived_resource_ids, options={})
@@ -141,6 +141,7 @@ module Cloudinary::CarrierWave
141
141
  format = Cloudinary::CarrierWave.split_format(original_filename || "").last
142
142
  format ||= "png" # TODO Default format?
143
143
  end
144
- format.to_s.downcase
144
+ format = format.to_s.downcase
145
+ Cloudinary::FORMAT_ALIASES[format] || format
145
146
  end
146
147
  end
@@ -52,8 +52,9 @@ class Cloudinary::Utils
52
52
  if border.is_a?(Hash)
53
53
  border = "#{border[:width] || 2}px_solid_#{(border[:color] || "black").sub(/^#/, 'rgb:')}"
54
54
  end
55
+ flags = build_array(options.delete(:flags)).join(".")
55
56
 
56
- params = {:w=>width, :h=>height, :t=>named_transformation, :c=>crop, :b=>background, :e=>effect, :a=>angle, :bo=>border}
57
+ params = {:w=>width, :h=>height, :t=>named_transformation, :c=>crop, :b=>background, :e=>effect, :a=>angle, :bo=>border, :fl=>flags}
57
58
  { :x=>:x, :y=>:y, :r=>:radius, :d=>:default_image, :g=>:gravity, :q=>:quality, :cs=>:color_space,
58
59
  :p=>:prefix, :l=>:overlay, :u=>:underlay, :f=>:fetch_format, :dn=>:density, :pg=>:page, :dl=>:delay
59
60
  }.each do
@@ -1,4 +1,4 @@
1
1
  # Copyright Cloudinary
2
2
  module Cloudinary
3
- VERSION = "1.0.40"
3
+ VERSION = "1.0.41"
4
4
  end
@@ -78,6 +78,22 @@ describe Cloudinary::Api do
78
78
  lambda{@api.resource("api_test3")}.should raise_error(Cloudinary::Api::NotFound)
79
79
  end
80
80
 
81
+ it "should allow deleting resources by prefix" do
82
+ Cloudinary::Uploader.upload("spec/logo.png", :public_id=>"api_test_by_prefix")
83
+ resource = @api.resource("api_test_by_prefix")
84
+ resource.should_not be_blank
85
+ @api.delete_resources_by_prefix("api_test_by")
86
+ lambda{@api.resource("api_test_by_prefix")}.should raise_error(Cloudinary::Api::NotFound)
87
+ end
88
+
89
+ it "should allow deleting resources by tags" do
90
+ Cloudinary::Uploader.upload("spec/logo.png", :public_id=>"api_test4", :tags=>["api_test_tag_for_delete"])
91
+ resource = @api.resource("api_test4")
92
+ resource.should_not be_blank
93
+ @api.delete_resources_by_tag("api_test_tag_for_delete")
94
+ lambda{@api.resource("api_test4")}.should raise_error(Cloudinary::Api::NotFound)
95
+ end
96
+
81
97
  it "should allow listing tags" do
82
98
  tags = @api.tags()["tags"]
83
99
  tags.should include('api_test_tag')
@@ -324,4 +324,15 @@ describe Cloudinary::Utils do
324
324
  options.should == {}
325
325
  result.should == "http://res.cloudinary.com/test123/image/upload/bo_1px_solid_blue/test"
326
326
  end
327
+
328
+ it "should support flags" do
329
+ options = {"flags"=>"abc"}
330
+ result = Cloudinary::Utils.cloudinary_url("test", options)
331
+ options.should == {}
332
+ result.should == "http://res.cloudinary.com/test123/image/upload/fl_abc/test"
333
+ options = {"flags"=>["abc", "def"]}
334
+ result = Cloudinary::Utils.cloudinary_url("test", options)
335
+ options.should == {}
336
+ result.should == "http://res.cloudinary.com/test123/image/upload/fl_abc.def/test"
337
+ end
327
338
  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.0.40
4
+ version: 1.0.41
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-10-10 00:00:00.000000000 Z
14
+ date: 2012-10-28 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rest-client