Class: Rack::AMF::Middleware::Rails

Inherits:
Object
  • Object
show all
Includes:
Rack::AMF::Middleware
Defined in:
lib/rack/amf/middleware/rails.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app, options = {}) ⇒ Rails

Returns a new instance of Rails.



7
8
9
10
11
12
# File 'lib/rack/amf/middleware/rails.rb', line 7

def initialize app, options={}
  @app = app

  options.delete(:url) # Too late to modify the URL
  Rack::AMF::Environment.populate options
end

Class Method Details

.install_environmentObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/rack/amf/middleware/rails.rb', line 18

def self.install_environment
  return if @installed
  @installed = true

  # Load in files
  extras_dir = File.dirname(__FILE__)+'/../rails'
  Dir["#{extras_dir}/*.rb"].each {|f| require f}

  # Install route
  ActionController::Routing::RouteSet.class_eval do
    next if self.instance_methods.include? 'draw_with_rackamf'
    def draw_with_rackamf
      draw_without_rackamf do |map|
        map.rack_amf Rack::AMF::Environment.url, :controller => 'rack_amf', :action => 'handle'
        yield map
      end
    end
    alias_method_chain :draw, :rackamf
  end
end

Instance Method Details

#handle(env) ⇒ Object



14
15
16
# File 'lib/rack/amf/middleware/rails.rb', line 14

def handle env
  @app.call env
end