Module: Cloudinary

Defined in:
lib/cloudinary/version.rb,
lib/cloudinary.rb

Overview

Copyright Cloudinary

Defined Under Namespace

Modules: CarrierWave, FormBuilder Classes: Api, Blob, Downloader, Engine, Migrator, PreloadedFile, Railtie, Static, Uploader, Utils

Constant Summary collapse

CF_SHARED_CDN =
"d3jpl91pxevbkh.cloudfront.net"
AKAMAI_SHARED_CDN =
"res.cloudinary.com"
OLD_AKAMAI_SHARED_CDN =
"cloudinary-a.akamaihd.net"
SHARED_CDN =
AKAMAI_SHARED_CDN
USER_AGENT =
"CloudinaryRuby/" + VERSION
FORMAT_ALIASES =
{
  "jpeg" => "jpg",
  "jpe" => "jpg",
  "tif" => "tiff",
  "ps" => "eps",
  "ept" => "eps"
}
VERSION =
"1.1.6"
@@user_platform =
""
@@config =
nil

Class Method Summary collapse

Class Method Details

.app_rootObject



98
99
100
101
102
103
104
105
# File 'lib/cloudinary.rb', line 98

def self.app_root
  if defined? Rails::root
    # Rails 2.2 return String for Rails.root
    Rails.root.is_a?(Pathname) ? Rails.root : Pathname.new(Rails.root)
  else
    Pathname.new(".")
  end
end

.config(new_config = nil) {|@@config| ... } ⇒ Object

Yields:



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/cloudinary.rb', line 57

def self.config(new_config=nil)
  first_time = @@config.nil?
  @@config ||= OpenStruct.new((YAML.load(ERB.new(IO.read(config_dir.join("cloudinary.yml"))).result)[config_env] rescue {}))
      
  # Heroku support
  if first_time && ENV["CLOUDINARY_CLOUD_NAME"]
    set_config(
      "cloud_name" => ENV["CLOUDINARY_CLOUD_NAME"],
      "api_key" => ENV["CLOUDINARY_API_KEY"],
      "api_secret" => ENV["CLOUDINARY_API_SECRET"],
      "secure_distribution" => ENV["CLOUDINARY_SECURE_DISTRIBUTION"],
      "private_cdn" => ENV["CLOUDINARY_PRIVATE_CDN"].to_s == 'true',
      "secure" => ENV["CLOUDINARY_SECURE"].to_s == 'true'
    )
  elsif first_time && ENV["CLOUDINARY_URL"]
    config_from_url(ENV["CLOUDINARY_URL"])
  end

  set_config(new_config) if new_config
  yield(@@config) if block_given?

  @@config    
end

.config_from_url(url) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/cloudinary.rb', line 81

def self.config_from_url(url)
  @@config ||= OpenStruct.new
  uri = URI.parse(url)
  set_config(
    "cloud_name" => uri.host,
    "api_key" => uri.user,
    "api_secret" => uri.password,
    "private_cdn" => !uri.path.blank?,
    "secure_distribution" => uri.path[1..-1]
  )
  uri.query.to_s.split("&").each do
    |param|
    key, value = param.split("=")
    set_config(key=>URI.decode(value))
  end    
end

.USER_AGENTObject



39
40
41
42
43
44
45
# File 'lib/cloudinary.rb', line 39

def self.USER_AGENT
  if @@user_platform.empty?
    "#{USER_AGENT}"
  else
    "#{@@user_platform} #{USER_AGENT}"
  end
end

.user_platformObject



35
36
37
# File 'lib/cloudinary.rb', line 35

def self.user_platform
  @@user_platform
end

.user_platform=(value) ⇒ Object

Add platform information to the USER_AGENT header This is intended for platform information and not individual applications!



31
32
33
# File 'lib/cloudinary.rb', line 31

def self.user_platform=(value)
  @@user_platform= value
end