aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/application.rb
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib/rails/application.rb')
-rw-r--r--railties/lib/rails/application.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb
new file mode 100644
index 0000000000..7b50d2622e
--- /dev/null
+++ b/railties/lib/rails/application.rb
@@ -0,0 +1,29 @@
+require 'action_controller'
+
+module Rails
+ class Application
+ def self.load(path, options = {})
+ config = options[:config] || 'config.ru'
+ config = File.join(path, config)
+
+ if config =~ /\.ru$/
+ cfgfile = File.read(config)
+ if cfgfile[/^#\\(.*)/]
+ opts.parse!($1.split(/\s+/))
+ end
+ inner_app = eval("::Rack::Builder.new {( " + cfgfile + "\n )}.to_app", nil, config)
+ else
+ require config
+ inner_app = Object.const_get(File.basename(config, '.rb').capitalize)
+ end
+ end
+
+ def initialize
+ @app = ActionController::Dispatcher.new
+ end
+
+ def call(env)
+ @app.call(env)
+ end
+ end
+end