Module RubyAMF::Rails::Routing
In: lib/rubyamf/rails/routing.rb

The prefered method for parameter mapping in Rails is through the routing file. RubyAMF supports namespacing for controllers and several different syntax styles for better integration into Rails 2 or Rails 3. This module can also be used outside of Rails by including it wherever you want.

Methods

amf   map_amf  

Public Instance methods

amf(*args)

Alias for map_amf

Define a parameter mapping

Rails 2

  ActionController::Routing::Routes.draw do |map|
    map.amf :controller => "controller", :action => "action", :params => [:param1, :param2]
    map.namespace :admin do |admin|
      admin.amf "controller#action", [:param1, :param2]
    end
  end

Rails 3

  AmfApplication::Application.routes.draw do |map|
    map_amf "controller#action", [:param1, :param2]
    namespace :admin do
      map_amf "controller#action", [:param1, :param2]
    end
  end

Generic Framework

  include Routing
  # Namespace is WillBe::Camelized
  map_amf "controller#action", [:param1, :param2]
  map_amf "controller#action", [:param1, :param2], {:namespace => "will_be/camelized"}
  map_amf :controller => "controller", :action => "action", :params => [:param1, :param2], :namespace => "will_be/camelized"

[Source]

    # File lib/rubyamf/rails/routing.rb, line 34
34:     def map_amf *args
35:       # Rails 2 namespace uses ActiveSupport::OptionMerger, which adds namespace
36:       # options to last hash, or passes it as an additional parameter
37:       # Rails 3 stores current namespace info in @scope variable
38: 
39:       # Process args
40:       if args[0].is_a?(String)
41:         (controller, action) = args[0].split("#")
42:         params = args[1]
43:         rails2_with_options = args[2] || {}
44:       else
45:         controller = args[0].delete(:controller)
46:         action = args[0].delete(:action)
47:         params = args[0].delete(:params)
48:         rails2_with_options = args[0]
49:       end
50: 
51:       # Convert controller name to actual controller class name
52:       controller = controller.camelize(:upper)+"Controller" unless controller =~ /Controller$/
53: 
54:       # Namespace controller name if used
55:       modules = if @scope && @scope[:module]
56:         # Rails 3 code path
57:         @scope[:module].split("/").map {|n| n.camelize(:upper)}
58:       elsif rails2_with_options[:namespace]
59:         # Rails 2 code path
60:         namespaces = rails2_with_options[:namespace].split("/")
61:         namespaces.map {|n| n.camelize(:upper)}
62:       else
63:         []
64:       end
65:       modules << controller
66:       controller = modules.join("::")
67: 
68:       RubyAMF.configuration.map_params controller, action, params
69:     end

[Validate]