module ActiveJax module ActionController module Ext def self.included(base) base.extend(ClassMethods) end def active_jax? !params[:active_jax].blank? end def render_active_jax(render_object) return render :json => render_object if render_object.is_a?(String) unless render_object.is_a?(Array) render_object = [render_object] end render_object = render_object.collect do |fix_object| if fix_object.respond_to?("attributes") fix_object._active_jax_attributes else fix_object end end return render :json => render_object.to_json end module ClassMethods @@active_jax_meta = {} def _add_active_jax_meta(*params) @@active_jax_meta[self] = {:actions => params.collect { |action| action.to_s }} end def active_jax_actions _active_jax_meta[self][:actions] end def _active_jax_meta @@active_jax_meta.values.each do |meta| unless meta[:actions].length > 0 meta[:actions] = self.action_methods end end @@active_jax_meta end def active_jax(*params) _add_active_jax_meta(*params) end end end end end