aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/generators.rb
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib/rails/generators.rb')
-rw-r--r--railties/lib/rails/generators.rb23
1 files changed, 22 insertions, 1 deletions
diff --git a/railties/lib/rails/generators.rb b/railties/lib/rails/generators.rb
index cd277c5097..3965e05823 100644
--- a/railties/lib/rails/generators.rb
+++ b/railties/lib/rails/generators.rb
@@ -46,6 +46,7 @@ module Rails
:assets => true,
:force_plural => false,
:helper => true,
+ :http => false,
:integration_tool => nil,
:javascripts => true,
:javascript_engine => :js,
@@ -61,6 +62,7 @@ module Rails
}
def self.configure!(config) #:nodoc:
+ http_only! if config.http_only?
no_color! unless config.colorize_logging
aliases.deep_merge! config.aliases
options.deep_merge! config.options
@@ -104,6 +106,25 @@ module Rails
Thor::Base.shell = Thor::Shell::Basic
end
+ # Configure generators for http only applications. It basically hides
+ # everything that is usually browser related, such as assets and session
+ # migration generators, and completely disable views, helpers and assets
+ # so generators such as scaffold won't create them.
+ def self.http_only!
+ hide_namespaces "assets", "css", "js", "session_migration"
+
+ options[:rails].merge!(
+ :assets => false,
+ :helper => false,
+ :http => true,
+ :javascripts => false,
+ :javascript_engine => nil,
+ :stylesheets => false,
+ :stylesheet_engine => nil,
+ :template_engine => nil
+ )
+ end
+
# Track all generators subclasses.
def self.subclasses
@subclasses ||= []
@@ -235,7 +256,7 @@ module Rails
rails.delete("plugin_new")
print_list("rails", rails)
- hidden_namespaces.each {|n| groups.delete(n.to_s) }
+ hidden_namespaces.each { |n| groups.delete(n.to_s) }
groups.sort.each { |b, n| print_list(b, n) }
end