Sha256: 4b1a79ea7c02e7d4c7178513e97981fd3789d81ca980ac4d68bdfa8c01945145

Contents?: true

Size: 649 Bytes

Versions: 7

Compression:

Stored size: 649 Bytes

Contents

module JellyController
  protected

  def jelly_callback(callback_base_name = @action_name, options = {}, &block)
    render :inline => jelly_callback_erb("on_#{callback_base_name}", options, block)
  end

  def jelly_callback_erb(callback_name, options, block)
    @callback_name = callback_name
    @options = options
    @block = block
    erb = <<-ERB
      <%= begin
        args = @block ? instance_eval(&@block) : []
        args = [args] unless args.is_a?(Array)
        {"method" => @callback_name, "arguments" => args}.reverse_merge(@options).to_json
      end %>
    ERB
    request.xhr? ? erb : "<textarea>#{erb}</textarea>"
  end


end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
btakita-jelly-0.6.1 lib/jelly/jelly_controller.rb
btakita-jelly-0.6.0 lib/jelly/jelly_controller.rb
jelly-0.5.9 lib/jelly/jelly_controller.rb
jelly-0.5.8 lib/jelly/jelly_controller.rb
jelly-0.5.7 lib/jelly/jelly_controller.rb
jelly-0.5.5 lib/jelly/jelly_controller.rb
jelly-0.5.4 lib/jelly/jelly_controller.rb