aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/generators
diff options
context:
space:
mode:
authorSantiago Pastorino <santiago@wyeworks.com>2015-04-16 18:28:40 -0300
committerSantiago Pastorino <santiago@wyeworks.com>2015-06-11 16:54:10 -0300
commit2a9cf48a615d39b932f0323d158e935a0300f7c4 (patch)
treebf67f1efd5241a762ec24c4d36419ff56756cc57 /railties/lib/rails/generators
parent3adb5eac3b6d81a0943bebd8dffa25a3b63681eb (diff)
downloadrails-2a9cf48a615d39b932f0323d158e935a0300f7c4.tar.gz
rails-2a9cf48a615d39b932f0323d158e935a0300f7c4.tar.bz2
rails-2a9cf48a615d39b932f0323d158e935a0300f7c4.zip
rails new --api generates an api app skeleton
Diffstat (limited to 'railties/lib/rails/generators')
-rw-r--r--railties/lib/rails/generators/app_base.rb4
-rw-r--r--railties/lib/rails/generators/rails/app/app_generator.rb7
-rw-r--r--railties/lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb.tt4
3 files changed, 10 insertions, 5 deletions
diff --git a/railties/lib/rails/generators/app_base.rb b/railties/lib/rails/generators/app_base.rb
index c02b39d203..b85bf874a6 100644
--- a/railties/lib/rails/generators/app_base.rb
+++ b/railties/lib/rails/generators/app_base.rb
@@ -252,7 +252,7 @@ module Rails
end
def assets_gemfile_entry
- return [] if options[:skip_sprockets]
+ return [] if options[:skip_sprockets] || options[:api]
gems = []
gems << GemfileEntry.version('sass-rails', '~> 5.0',
@@ -280,7 +280,7 @@ module Rails
end
def javascript_gemfile_entry
- if options[:skip_javascript]
+ if options[:skip_javascript] || options[:api]
[]
else
gems = [coffee_gemfile_entry, javascript_runtime_gemfile_entry]
diff --git a/railties/lib/rails/generators/rails/app/app_generator.rb b/railties/lib/rails/generators/rails/app/app_generator.rb
index 152c26860e..6197b85bb6 100644
--- a/railties/lib/rails/generators/rails/app/app_generator.rb
+++ b/railties/lib/rails/generators/rails/app/app_generator.rb
@@ -175,6 +175,9 @@ module Rails
class_option :version, type: :boolean, aliases: "-v", group: :rails,
desc: "Show Rails version number and quit"
+ class_option :api, type: :boolean,
+ desc: "Preconfigure smaller stack for API only apps"
+
def initialize(*args)
super
@@ -245,11 +248,11 @@ module Rails
end
def create_tmp_files
- build(:tmp)
+ build(:tmp) unless options[:api]
end
def create_vendor_files
- build(:vendor)
+ build(:vendor) unless options[:api]
end
def delete_js_folder_skipping_javascript
diff --git a/railties/lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb.tt b/railties/lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb.tt
index d83690e1b9..f726fd6305 100644
--- a/railties/lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb.tt
+++ b/railties/lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb.tt
@@ -1,5 +1,7 @@
-class ApplicationController < ActionController::Base
+class ApplicationController < ActionController::<%= options[:api] ? "API" : "Base" %>
+<%- unless options[:api] -%>
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
+<%- end -%>
end