Sha256: 6a4851266e7567fd833781c990992fdfc9fd0d58b49cef308d9c7d579e0e1500

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

module ResourceControllerExtensions
  module XML
    def self.included(base)
      base.extend ClassMethods
      base.class_eval do
        class << self
          alias_method_chain :init_default_actions, :xml
        end
      end
    end

    module ClassMethods
      def init_default_actions_with_xml(klass)
        init_default_actions_without_xml(klass)
        klass.class_eval do
          index.wants.xml { render :xml => collection.to_xml, :status => :ok }
          show.wants.xml { render :xml => object}
          edit.wants.xml { render :xml => object}
          new_action.wants.xml { render :xml => object }

          create.wants.xml { render :xml => object, :status => :created, :location => object }
          create.failure.wants.xml { render :xml => object.errors, :status => :unprocessable_entity }
          destroy.wants.xml { head :ok }
          update.wants.xml { head :ok }
          update.failure.wants.xml { render :xml => object.errors, :status => :unprocessable_entity }
        end
      end
    end
  end
end

ResourceController::Controller.send :include, ResourceControllerExtensions::XML

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
Objective3-resource_controller_extensions-0.0.2 lib/resource_controller_extensions/xml.rb