module Charcoal::JSONP

Public Class Methods

included(klass) click to toggle source
# File lib/charcoal/jsonp.rb, line 5
def self.included(klass)
  klass.extend(ClassMethods)
  if klass.respond_to?(:prepend_around_action)
    klass.prepend_around_action :add_jsonp_callback
  else
    klass.prepend_around_filter :add_jsonp_callback
  end
end

Protected Instance Methods

add_jsonp_callback() { || ... } click to toggle source
# File lib/charcoal/jsonp.rb, line 41
def add_jsonp_callback
  yield

  if response.status.to_s.starts_with?("200") && jsonp_request?
    response.content_type = "application/javascript"
    response.body = "#{params[:callback]}(#{response.body})"
  end
end
jsonp_allowed?() click to toggle source
# File lib/charcoal/jsonp.rb, line 33
def jsonp_allowed?
  self.class.jsonp_allowed?(self, params[:action])
end
jsonp_request?() click to toggle source
# File lib/charcoal/jsonp.rb, line 37
def jsonp_request?
  params[:callback].present? && jsonp_allowed?
end