Skip to content

Instantly share code, notes, and snippets.

@spastorino
Created May 13, 2015 19:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save spastorino/7989a586151e8da13351 to your computer and use it in GitHub Desktop.
Save spastorino/7989a586151e8da13351 to your computer and use it in GitHub Desktop.
diff --git a/railties/lib/rails/generators/app_base.rb b/railties/lib/rails/generators/app_base.rb
index 713e677..b12ceba 100644
--- a/railties/lib/rails/generators/app_base.rb
+++ b/railties/lib/rails/generators/app_base.rb
@@ -167,11 +167,16 @@ module Rails
end
def include_all_railties?
- options.values_at(:skip_active_record, :skip_action_mailer, :skip_test, :skip_sprockets).none?
+ options.values_at(:skip_active_record, :skip_action_mailer, :skip_test, :skip_sprockets, :api).none?
end
def comment_if(value)
- options[value] ? '# ' : ''
+ method = "#{value}?"
+ if respond_to?(method) && public_send(method) || options[value]
+ '# '
+ else
+ ''
+ end
end
def sqlite3?
@@ -246,7 +251,7 @@ module Rails
end
def assets_gemfile_entry
- return [] if options[:skip_sprockets]
+ return [] if skip_sprockets?
gems = []
gems << GemfileEntry.version('sass-rails', '~> 5.0',
@@ -276,7 +281,7 @@ module Rails
end
def javascript_gemfile_entry
- if options[:skip_javascript]
+ if skip_javascript?
[]
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 5414f34..eabc288 100644
--- a/railties/lib/rails/generators/rails/app/app_generator.rb
+++ b/railties/lib/rails/generators/rails/app/app_generator.rb
@@ -187,10 +187,14 @@ module Rails
if !options[:skip_active_record] && !DATABASES.include?(options[:database])
raise Error, "Invalid value for --database option. Supported for preconfiguration are: #{DATABASES.join(", ")}."
end
+ end
+
+ def skip_sprockets?
+ options[:skip_sprockets] || options[:api]
+ end
- # Force sprockets to be skipped when generating http only app.
- # Can't modify options hash as it's frozen by default.
- self.options = options.merge(skip_sprockets: true, skip_javascript: true).freeze if options[:api]
+ def skip_javascript?
+ options[:skip_javascript] || options[:api]
end
public_task :set_default_accessors!
@@ -281,13 +285,13 @@ module Rails
end
def delete_js_folder_skipping_javascript
- if options[:skip_javascript]
+ if skip_javascript?
remove_dir 'app/assets/javascripts'
end
end
def delete_assets_initializer_skipping_sprockets
- if options[:skip_sprockets]
+ if skip_sprockets?
remove_file 'config/initializers/assets.rb'
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment