Class: Cloudinary::Uploader
Constant Summary collapse
- TEXT_PARAMS =
[:public_id, :font_family, :font_size, :font_color, :text_align, :font_weight, :font_style, :background, :opacity, :text_decoration]
Class Method Summary collapse
-
.add_tag(tag, public_ids = [], options = {}) ⇒ Object
options may include ‘exclusive’ (boolean) which causes clearing this tag from all other resources.
- .build_eager(eager) ⇒ Object
- .build_upload_params(options) ⇒ Object
- .destroy(public_id, options = {}) ⇒ Object
- .exists?(public_id, options = {}) ⇒ Boolean
- .explicit(public_id, options = {}) ⇒ Object
- .explode(public_id, options = {}) ⇒ Object
- .generate_sprite(tag, options = {}) ⇒ Object
- .multi(tag, options = {}) ⇒ Object
- .remove_tag(tag, public_ids = [], options = {}) ⇒ Object
- .rename(from_public_id, to_public_id, options = {}) ⇒ Object
- .replace_tag(tag, public_ids = [], options = {}) ⇒ Object
- .text(text, options = {}) ⇒ Object
- .upload(file, options = {}) ⇒ Object
Class Method Details
.add_tag(tag, public_ids = [], options = {}) ⇒ Object
options may include ‘exclusive’ (boolean) which causes clearing this tag from all other resources
157 158 159 160 161 |
# File 'lib/cloudinary/uploader.rb', line 157 def self.add_tag(tag, public_ids = [], = {}) exclusive = .delete(:exclusive) command = exclusive ? "set_exclusive" : "add" return self.(tag, command, public_ids, ) end |
.build_eager(eager) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/cloudinary/uploader.rb', line 7 def self.build_eager(eager) return nil if eager.nil? Cloudinary::Utils.build_array(eager).map do |transformation, format| transformation = transformation.clone format = transformation.delete(:format) || format [Cloudinary::Utils.generate_transformation_string(transformation), format].compact.join("/") end.join("|") end |
.build_upload_params(options) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/cloudinary/uploader.rb', line 17 def self.build_upload_params() params = {:timestamp=>Time.now.to_i, :transformation => Cloudinary::Utils.generate_transformation_string(.clone), :public_id=> [:public_id], :callback=> [:callback], :format=>[:format], :type=>[:type], :backup=>Cloudinary::Utils.as_safe_bool([:backup]), :faces=>Cloudinary::Utils.as_safe_bool([:faces]), :exif=>Cloudinary::Utils.as_safe_bool([:exif]), :colors=>Cloudinary::Utils.as_safe_bool([:colors]), :image_metadata=>Cloudinary::Utils.as_safe_bool([:image_metadata]), :invalidate=>Cloudinary::Utils.as_safe_bool([:invalidate]), :eager=>build_eager([:eager]), :headers=>build_custom_headers([:headers]), :use_filename=>Cloudinary::Utils.as_safe_bool([:use_filename]), :notification_url=>[:notification_url], :eager_notification_url=>[:eager_notification_url], :eager_async=>Cloudinary::Utils.as_safe_bool([:eager_async]), :tags=>[:tags] && Cloudinary::Utils.build_array([:tags]).join(",")} params end |
.destroy(public_id, options = {}) ⇒ Object
52 53 54 55 56 57 58 59 60 61 |
# File 'lib/cloudinary/uploader.rb', line 52 def self.destroy(public_id, ={}) call_api("destroy", ) do { :timestamp=>Time.now.to_i, :type=>[:type], :public_id=> public_id, :invalidate=>[:invalidate], } end end |
.exists?(public_id, options = {}) ⇒ Boolean
75 76 77 78 79 80 81 82 83 |
# File 'lib/cloudinary/uploader.rb', line 75 def self.exists?(public_id, ={}) cloudinary_url = Cloudinary::Utils.cloudinary_url(public_id, ) begin RestClient::Request.execute(:method => :head, :url => cloudinary_url, :timeout=>5).code.to_s =~ /2\d{2}/ rescue RestClient::ResourceNotFound => e return false end end |
.explicit(public_id, options = {}) ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/cloudinary/uploader.rb', line 85 def self.explicit(public_id, ={}) call_api("explicit", ) do { :timestamp=>Time.now.to_i, :type=>[:type], :public_id=> public_id, :callback=> [:callback], :eager=>build_eager([:eager]), :headers=>build_custom_headers([:headers]), :tags=>[:tags] && Cloudinary::Utils.build_array([:tags]).join(",") } end end |
.explode(public_id, options = {}) ⇒ Object
143 144 145 146 147 148 149 150 151 152 153 154 |
# File 'lib/cloudinary/uploader.rb', line 143 def self.explode(public_id, ={}) call_api("explode", ) do { :timestamp=>Time.now.to_i, :public_id=>public_id, :type=>[:type], :format=>[:format], :notification_url=>[:notification_url], :transformation => Cloudinary::Utils.generate_transformation_string(.clone) } end end |
.generate_sprite(tag, options = {}) ⇒ Object
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/cloudinary/uploader.rb', line 108 def self.generate_sprite(tag, ={}) version_store = .delete(:version_store) result = call_api("sprite", ) do { :timestamp=>Time.now.to_i, :tag=>tag, :async=>[:async], :notification_url=>[:notification_url], :transformation => Cloudinary::Utils.generate_transformation_string(.merge(:fetch_format=>[:format])) } end if version_store == :file && result && result["version"] if defined?(Rails) && defined?(Rails.root) FileUtils.mkdir_p("#{Rails.root}/tmp/cloudinary") File.open("#{Rails.root}/tmp/cloudinary/cloudinary_sprite_#{tag}.version", "w"){|file| file.print result["version"].to_s} end end return result end |
.multi(tag, options = {}) ⇒ Object
130 131 132 133 134 135 136 137 138 139 140 141 |
# File 'lib/cloudinary/uploader.rb', line 130 def self.multi(tag, ={}) call_api("multi", ) do { :timestamp=>Time.now.to_i, :tag=>tag, :format=>[:format], :async=>[:async], :notification_url=>[:notification_url], :transformation => Cloudinary::Utils.generate_transformation_string(.clone) } end end |
.remove_tag(tag, public_ids = [], options = {}) ⇒ Object
163 164 165 |
# File 'lib/cloudinary/uploader.rb', line 163 def self.remove_tag(tag, public_ids = [], = {}) return self.(tag, "remove", public_ids, ) end |
.rename(from_public_id, to_public_id, options = {}) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/cloudinary/uploader.rb', line 63 def self.rename(from_public_id, to_public_id, ={}) call_api("rename", ) do { :timestamp=>Time.now.to_i, :type=>[:type], :overwrite=>[:overwrite], :from_public_id=>from_public_id, :to_public_id=>to_public_id, } end end |
.replace_tag(tag, public_ids = [], options = {}) ⇒ Object
167 168 169 |
# File 'lib/cloudinary/uploader.rb', line 167 def self.replace_tag(tag, public_ids = [], = {}) return self.(tag, "replace", public_ids, ) end |
.text(text, options = {}) ⇒ Object
100 101 102 103 104 105 106 |
# File 'lib/cloudinary/uploader.rb', line 100 def self.text(text, ={}) call_api("text", ) do params = {:timestamp => Time.now.to_i, :text=>text} TEXT_PARAMS.each{|k| params[k] = [k] if ![k].nil?} params end end |
.upload(file, options = {}) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/cloudinary/uploader.rb', line 40 def self.upload(file, ={}) call_api("upload", ) do params = build_upload_params() if file.respond_to?(:read) || file =~ /^https?:/ || file =~ /^data:image\/\w*;base64,([a-zA-Z0-9\/+\n=]+)$/ params[:file] = file else params[:file] = File.open(file, "rb") end [params, [:file]] end end |