lib/jelly/jelly_controller.rb in honkster-jelly-0.12.0 vs lib/jelly/jelly_controller.rb in honkster-jelly-0.13.0

- old
+ new

@@ -1,41 +1,62 @@ module JellyController protected include Jelly::Common - def jelly_callback(callback_base_name = @action_name, options = {}, &block) - raw_jelly_callback(options) do - arguments = block ? instance_eval(&block) : [] - arguments = [arguments] unless arguments.is_a?(Array) - jelly_notify_hash("on_#{callback_base_name}", *arguments).merge(options) - end - end - - def raw_jelly_callback(options={}, &block) + def render_jelly_ops(options={}, &block) options.symbolize_keys! options[:format] ||= if params[:callback] :jsonp elsif request.xhr? :json else :iframe end - render :inline => jelly_callback_erb(options, &block) + render :inline => render_jelly_ops_erb(options, &block) end - def jelly_callback_erb(options={}, &block) + def render_jelly_ops_erb(options={}, &block) options[:format] ||= :json @jelly_block = block case options[:format].to_sym when :iframe - "<textarea>#{jelly_callback_erb_template}</textarea>" + <<-ERB + <textarea>#{render_jelly_ops_erb_template}</textarea> + ERB when :jsonp - "#{params[:callback]}(#{jelly_callback_erb_template});" + <<-ERB + #{params[:callback]}(#{render_jelly_ops_erb_template}); + ERB else - jelly_callback_erb_template + <<-ERB + #{render_jelly_ops_erb_template} + ERB end end + def render_jelly_ops_erb_template + <<-ERB + <%=begin + instance_eval(&controller.instance_variable_get(:@jelly_block)) + jelly_ops.to_json.html_safe + end -%> + ERB + end + + ### Old Methods ### + + def jelly_callback(callback_base_name = @action_name, options = {}, &block) + raise Jelly::OldMethodError + end + + def raw_jelly_callback(options={}, &block) + raise Jelly::OldMethodError + end + + def jelly_callback_erb(options={}, &block) + raise Jelly::OldMethodError + end + def jelly_callback_erb_template - %Q{<%= instance_eval(&controller.instance_variable_get(:@jelly_block)).to_json.html_safe %>} + raise Jelly::OldMethodError end end