class Ckeditor::AssetResponse

Constants

FUNCTION
JSON_TYPE

Attributes

asset[R]
params[R]
request[R]

Public Class Methods

new(asset, request) click to toggle source
# File lib/ckeditor/asset_response.rb, line 16
def initialize(asset, request)
  @asset = asset
  @request = request
  @params = request.params
end

Public Instance Methods

ckeditor?() click to toggle source
# File lib/ckeditor/asset_response.rb, line 30
def ckeditor?
  !params[:CKEditor].blank?
end
current_mode() click to toggle source
# File lib/ckeditor/asset_response.rb, line 38
def current_mode
  @current_mode ||= extract_mode
end
data() click to toggle source
# File lib/ckeditor/asset_response.rb, line 22
def data
  @data ||= read_data
end
errors() click to toggle source
# File lib/ckeditor/asset_response.rb, line 46
def errors
  send("errors_#{current_mode}")
end
file() click to toggle source
# File lib/ckeditor/asset_response.rb, line 34
def file
  !(ckeditor? || json?) ? params[:qqfile] : params[:upload]
end
json?() click to toggle source
# File lib/ckeditor/asset_response.rb, line 26
def json?
  params[:responseType] == JSON_TYPE
end
success(relative_url_root = nil) click to toggle source
# File lib/ckeditor/asset_response.rb, line 42
def success(relative_url_root = nil)
  send("success_#{current_mode}", relative_url_root)
end

Private Instance Methods

asset_url(relative_url_root) click to toggle source
# File lib/ckeditor/asset_response.rb, line 92
def asset_url(relative_url_root)
  url = Ckeditor::Utils.escape_single_quotes(asset.url_content)

  if URI(url).relative?
    "#{relative_url_root}#{url}"
  else
    url
  end
end
error_message() click to toggle source
# File lib/ckeditor/asset_response.rb, line 88
def error_message
  Ckeditor::Utils.escape_single_quotes(asset.errors.full_messages.first)
end
errors_ckeditor() click to toggle source
# File lib/ckeditor/asset_response.rb, line 76
def errors_ckeditor
  {
    html: javascript_tag("#{FUNCTION}(#{params[:CKEditorFuncNum]}, null, '#{error_message}');")
  }
end
errors_default() click to toggle source
# File lib/ckeditor/asset_response.rb, line 82
def errors_default
  {
    json: { message: error_message }.to_json
  }
end
errors_json() click to toggle source
# File lib/ckeditor/asset_response.rb, line 70
def errors_json
  {
    json: { uploaded: 0, error: { message: error_message } }.to_json
  }
end
extract_mode() click to toggle source
# File lib/ckeditor/asset_response.rb, line 102
def extract_mode
  if json?
    :json
  elsif ckeditor?
    :ckeditor
  else
    :default
  end
end
read_data() click to toggle source
# File lib/ckeditor/asset_response.rb, line 112
def read_data
  data = Ckeditor::Http.normalize_param(file, request)
  return if data.size.zero? || data.original_filename.blank?

  data
end
success_ckeditor(relative_url_root = nil) click to toggle source
# File lib/ckeditor/asset_response.rb, line 58
def success_ckeditor(relative_url_root = nil)
  {
    html: javascript_tag("#{FUNCTION}(#{params[:CKEditorFuncNum]}, '#{asset_url(relative_url_root)}');")
  }
end
success_default(_relative_url_root = nil) click to toggle source
# File lib/ckeditor/asset_response.rb, line 64
def success_default(_relative_url_root = nil)
  {
    json: asset.to_json(only: [:id, :type])
  }
end
success_json(_relative_url_root = nil) click to toggle source
# File lib/ckeditor/asset_response.rb, line 52
def success_json(_relative_url_root = nil)
  {
    json: { uploaded: 1, fileName: asset.filename, url: asset.url }.to_json
  }
end