aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/generators/rails/metal
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib/generators/rails/metal')
-rw-r--r--railties/lib/generators/rails/metal/USAGE8
-rw-r--r--railties/lib/generators/rails/metal/metal_generator.rb11
-rw-r--r--railties/lib/generators/rails/metal/templates/metal.rb12
3 files changed, 31 insertions, 0 deletions
diff --git a/railties/lib/generators/rails/metal/USAGE b/railties/lib/generators/rails/metal/USAGE
new file mode 100644
index 0000000000..123ec6c03f
--- /dev/null
+++ b/railties/lib/generators/rails/metal/USAGE
@@ -0,0 +1,8 @@
+Description:
+ Cast some metal!
+
+Examples:
+ `./script/generate metal poller`
+
+ This will create:
+ Metal: app/metal/poller.rb
diff --git a/railties/lib/generators/rails/metal/metal_generator.rb b/railties/lib/generators/rails/metal/metal_generator.rb
new file mode 100644
index 0000000000..fe4f945cad
--- /dev/null
+++ b/railties/lib/generators/rails/metal/metal_generator.rb
@@ -0,0 +1,11 @@
+module Rails
+ module Generators
+ class MetalGenerator < NamedBase
+ check_class_collision
+
+ def create_metal_file
+ template "metal.rb", "app/metal/#{file_name}.rb"
+ end
+ end
+ end
+end
diff --git a/railties/lib/generators/rails/metal/templates/metal.rb b/railties/lib/generators/rails/metal/templates/metal.rb
new file mode 100644
index 0000000000..e94982b69a
--- /dev/null
+++ b/railties/lib/generators/rails/metal/templates/metal.rb
@@ -0,0 +1,12 @@
+# Allow the metal piece to run in isolation
+require(File.dirname(__FILE__) + "/../../config/environment") unless defined?(Rails)
+
+class <%= class_name %>
+ def self.call(env)
+ if env["PATH_INFO"] =~ /^\/<%= file_name %>/
+ [200, {"Content-Type" => "text/html"}, ["Hello, World!"]]
+ else
+ [404, {"Content-Type" => "text/html"}, ["Not Found"]]
+ end
+ end
+end