aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/generators
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #23528 from bensheldon/patch-1Richard Schneeman2016-02-101-1/+1
|\ | | | | Set database poolsize via rails_max_threads
| * Set postgresql poolsize via RAILS_MAX_THREADSBen Sheldon2016-02-101-1/+1
| |
* | Merge pull request #23512 from y-yagi/set_association_name_to_fixtureDavid Heinemeier Hansson2016-02-101-1/+1
|\ \ | | | | | | set association name to generated fixtures if attribute is reference
| * | set association name to generated fixtures if attribute is referenceyuuji.yaginuma2016-02-061-1/+1
| |/ | | | | | | | | | | | | It has been changed to require `belongs_to` by default in Rails 5. Therefore in order to pass the controller test, have association of set to fixtures. Fixes #23384
* | include spring-watcher-listen in the Gemfile of new applicationsXavier Noria2016-02-101-0/+3
| |
* | enables the evented monitor in new applicationsXavier Noria2016-02-103-1/+8
|/
* - app generate option --skip-sprockets leaves jquery-rails gem, which relies ↵Vipul A M2016-02-041-1/+1
| | | | | | | | on sprockets environment - Remove jquery-rails if --skip-sprockets is true Fixes #23431
* Turbolinks has moved outDavid Heinemeier Hansson2016-02-041-1/+1
| | | | All grown up and shit!
* Redis is now only needed if you want to use Action Cable in productionDavid Heinemeier Hansson2016-02-041-2/+2
| | | | So no need to have it on by default in the Gemfile.
* Active Record supports MySQL >= 5.0Ryuta Kamizono2016-02-042-2/+2
| | | | | Currently some features uses `information_schema` (e.g. foreign key support). `information_schema` introduced since MySQL 5.0.
* Add dummy apple icon filesAlexey Zabelin2016-02-032-0/+0
| | | | | | | | Previously Safari would try to load these files when you visit localhost:3000. That created two exceptions in the log. It also caused the exception notifier to send them out. In response to #23427
* update supported version of PostgreSQL in docs [ci skip]yuuji.yaginuma2016-02-032-2/+2
| | | | Follow up to #23434
* Generated engines should protect from forgeryAaron Patterson2016-02-011-0/+1
| | | | | | Generated engines should call `protect_from_forgery`. If this method isn't called, then the Engine could be susceptible to XSS attacks. Thanks @tomekr for reporting this to us!
* Merge pull request #23057 from schneems/schneems/default-puma-configRichard Schneeman2016-02-014-3/+55
|\ | | | | Add Default Puma Config
| * Add Default Puma Configschneems2016-01-294-3/+55
| | | | | | | | | | | | | | | | | | | | | | When the `puma` command is run without any configuration options it will detect presence of a `config/puma.rb` file and use that. Currently there is discrepancy between `puma` command and `rails server` but Evan said it would be reasonable to add in reading in config from the default location. I am working on that right now as a feature in puma/puma. Why do we need this? By default Puma uses 16 threads, and by default ActiveRecord only has 5 threads. Due to the architecture of AR it is guaranteed that if you're running with fewer DB connections than your server has threads you will hit `ActiveRecord::ConnectionTimeoutError ` eventually if your app gets modest amounts of traffic. Since we are providing a default webserver, we should provide reasonable configuration for that webserver. This PR does a few things, first it sets the default Puma thread count to 5 to mach ActiveRecord's default. It sets the default environment to `"development"` and the default port to 300 so that booting the server with `$ puma` will give you the same default port as `rails server`. It is worth mentioning that by reading in from `PORT` environment variable this config can work with containerized deployments, such as on Heroku. We are not using worker processes by default, that way JRuby and windows devs can use this configuration without modification. I went ahead and included a default `on_worker_boot`. It won't be used unless a worker count is specified, that means this config will not use it. Even though it's not being used now It will make someone who wants to try modifying their config to run extra workers easier. cc/ @pixeltrix
* | Merge pull request #23385 from matthewd/default-subscription-adapterMatthew Draper2016-02-021-4/+2
|\ \ | | | | | | Change default ACa adapter for development & test
| * | Use the in-process subscription adapter for development & testMatthew Draper2016-02-011-4/+2
| | |
* | | Merge pull request #23381 from matthewd/uneventful-redisMatthew Draper2016-02-021-1/+0
|\ \ \ | |/ / |/| | Redis sans EventMachine
| * | Switch the default redis adapter to a single-stream modelMatthew Draper2016-02-011-1/+0
| | | | | | | | | | | | | | | | | | This new adapter does get a little more intimate with the redis-rb gem's implementation than I would like, but it's the least bad of the approaches I've come up with.
* | | remove unnecessary gsub for `action_cable_meta_tag`yuuji.yaginuma2016-01-301-1/+0
|/ / | | | | | | | | | | | | If the specified `skip_action_cable` option, so as not to output the `action_cable_meta_tag` in template, gsub is unnecessary. ref: https://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt#L6..L8
* | Merge pull request #23317 from rfmanuel/after-bundle-in-rails-plugin-templateRafael França2016-01-291-0/+6
|\ \ | | | | | | Add an after_bundle callback in Rails plugin templates
| * | Add an after_bundle callback in Rails plugin templatesRyan Manuel2016-01-281-0/+6
| | |
* | | Revert "Revert "Eliminate the EventMachine dependency""Matthew Draper2016-01-301-2/+1
|/ /
* | Revert "Eliminate the EventMachine dependency"David Heinemeier Hansson2016-01-271-1/+2
| |
* | [ci skip] Don’t explicitly mention EventMachineclaudiob2016-01-252-2/+2
| | | | | | | | | | | | | | | | | | | | Since #23152 eliminated the EventMachine dependency, we don’t need to explicitly mention EventMachine. Nevertheless, I'm not 100% sure about saying "the websocket-driver loop" driver… any suggestions, @matthewd or @pixeltrix ? :sweat_smile: [ci skip]
* | Merge pull request #23152 from matthewd/actioncable-concurrentDavid Heinemeier Hansson2016-01-241-2/+1
|\ \ | | | | | | Eliminate the EventMachine dependency
| * | Ditch the EM error logging helperMatthew Draper2016-01-241-2/+1
| | | | | | | | | | | | | | | | | | We're no longer doing our work in the EM event loop, so errors are quite unlikely, and if they do occur, they're not really our responsibility to handle.
* | | Pare back default `index` option for the migration generatorPrathamesh Sonpatki2016-01-241-2/+3
|/ / | | | | | | | | | | | | | | | | | | - Using `references` or `belongs_to` in migrations will always add index for the referenced column by default, without adding `index:true` option to generated migration file. - Users can opt out of this by passing `index: false`. - Legacy migrations won't be affected by this change. They will continue to run as they were before. - Fixes #18146
* | Rails::Generators::Actions#gem should work even if frozen string is passed ↵Prathamesh Sonpatki2016-01-241-1/+1
| | | | | | | | | | | | as argument - Fixes #23137.
* | prevent --skip-action-cable from erroring when --api option is usedDave Riddle2016-01-221-1/+1
|/
* remove `per_form_csrf_tokens` initializer from Rails APIyuuji.yaginuma2016-01-221-0/+1
| | | | | Because the form is not in the Rails API, `per_form_csrf_tokens` initializer I think unnecessary.
* Remove action_cable_meta_tag when skip action_cableJuanitoFatas2016-01-221-0/+1
|
* Merge pull request #23078 from ↵Rafael França2016-01-213-1/+8
|\ | | | | | | | | y-yagi/add_application_mailer_rb_to_mountable_engine add application_mailer.rb to template of mountable engine
| * allow symbol to end of string in `wrap_in_modules`yuuji.yaginuma2016-01-161-1/+1
| |
| * add application_mailer.rb to template of mountable engineyuuji.yaginuma2016-01-152-0/+7
| | | | | | | | | | since 9446e38ba47c9ca3be2ad668d8a8bea0141be6fc, generated mailer inherents from ApplicationMailer, ApplicationMailer is required in the mountable engine.
* | updating secrets.yml template to use rails command instead of rakeDiego Plentz2016-01-211-1/+1
| |
* | Add em-hiredis and redis as default Gems for new applicationsJon Moss2016-01-181-0/+10
| |
* | Adapterize ActionCable storage and extract behaviorJon Moss2016-01-183-11/+14
|/
* Improve generated config initializer filesJon Atack2016-01-132-4/+6
| | | | | | | | - Fix grammar. - Improve readability/understanding. - Wrap lines at 80 characters. [skip ci]
* Default new apps to tag logs with `request_id`schneems2016-01-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In high volume applications it can be very difficult to figure out what is happening in logs because each request is not easily identified. For example 3 requests could look something like this: ``` Started GET "/" for 72.48.77.213 at 2016-01-06 20:30:21 +0000 Rendered welcome/index.html.erb within layouts/application (0.1ms) Started GET "/" for 72.48.77.213 at 2016-01-06 20:30:22 +0000 Started GET "/" for 72.48.77.213 at 2016-01-06 20:30:23 +0000 Rendered welcome/index.html.erb within layouts/application (0.1ms) Processing by WelcomeController#index as HTML Completed 200 OK in 5ms (Views: 3.8ms | ActiveRecord: 0.0ms) Processing by WelcomeController#index as HTML Rendered welcome/index.html.erb within layouts/application (0.1ms) Completed 200 OK in 5ms (Views: 3.8ms | ActiveRecord: 0.0ms) Processing by WelcomeController#index as HTML Completed 200 OK in 5ms (Views: 3.8ms | ActiveRecord: 0.0ms) ``` The `:request_id` log tag ensures that each request is tagged with a unique identifier. While they are still interleaved it is possible to figure out which lines belong to which requests. Like: ``` [c6034478-4026-4ded-9e3c-088c76d056f1] Started GET "/" for 72.48.77.213 at 2016-01-06 20:30:21 +0000 [c6034478-4026-4ded-9e3c-088c76d056f1] Rendered welcome/index.html.erb within layouts/application (0.1ms) [abuqw781-5026-6ded-7e2v-788c7md0L6fQ] Started GET "/" for 72.48.77.213 at 2016-01-06 20:30:22 +0000 [acfab2a7-f1b7-4e15-8bf6-cdaa008d102c] Started GET "/" for 72.48.77.213 at 2016-01-06 20:30:23 +0000 [abuqw781-5026-6ded-7e2v-788c7md0L6fQ] Rendered welcome/index.html.erb within layouts/application (0.1ms) [c6034478-4026-4ded-9e3c-088c76d056f1] Processing by WelcomeController#index as HTML [c6034478-4026-4ded-9e3c-088c76d056f1] Completed 200 OK in 5ms (Views: 3.8ms | ActiveRecord: 0.0ms) [abuqw781-5026-6ded-7e2v-788c7md0L6fQ] Processing by WelcomeController#index as HTML [abuqw781-5026-6ded-7e2v-788c7md0L6fQ] Rendered welcome/index.html.erb within layouts/application (0.1ms) [abuqw781-5026-6ded-7e2v-788c7md0L6fQ] Completed 200 OK in 5ms (Views: 3.8ms | ActiveRecord: 0.0ms) [acfab2a7-f1b7-4e15-8bf6-cdaa008d102c] Processing by WelcomeController#index as HTML [acfab2a7-f1b7-4e15-8bf6-cdaa008d102c] Completed 200 OK in 5ms (Views: 3.8ms | ActiveRecord: 0.0ms) ``` Now if you have the logs and you find this unique ID you can filter to only look at information from that request. So a filtered log output would be very clear: ``` [c6034478-4026-4ded-9e3c-088c76d056f1] Started GET "/" for 72.48.77.213 at 2016-01-06 20:30:21 +0000 [c6034478-4026-4ded-9e3c-088c76d056f1] Rendered welcome/index.html.erb within layouts/application (0.1ms) [c6034478-4026-4ded-9e3c-088c76d056f1] Processing by WelcomeController#index as HTML [c6034478-4026-4ded-9e3c-088c76d056f1] Completed 200 OK in 5ms (Views: 3.8ms | ActiveRecord: 0.0ms) ``` In addition to this benefit the `:request_id` can be set via the `X-Request-ID` header so that the same request could be traced between multiple components. For example a request comes in Nginx (or another load balancer) could assign a request id. As the load balancer processes the request I can log using that id, then when the request is passed on to Rails, the same id is used. That way if a problem is determined to be not caused in Rails it could be traced back to other components with the same ID. You can set a value in nginx for example using something like this: ``` location / { proxy_pass http://upstream; proxy_set_header X-Request-Id $pid-$msec-$remote_addr-$request_length; } # http://stackoverflow.com/questions/17748735/setting-a-trace-id-in-nginx-load-balancer ``` Heroku sets this header value so problems like timeouts that are logged by like router can be traced back to specific request within the application. Whether you are using components that are setting request ID or not, all production applications can benefit from the additional debugging information of having a unique identifier for all requests. This change will only affect new applications, anyone can opt out by commenting or removing the line in `config/production.rb`.
* Merge pull request #22939 from ↵Rafael França2016-01-062-1/+5
|\ | | | | | | | | y-yagi/make_generated_controller_test_file_work_correctly make generated controller test work correctly
| * make generated controller test work correctlyyuuji.yaginuma2016-01-062-1/+5
| | | | | | | | | | | | | | Since the `#file_name` that not consideration for the namespace, if generate a controller with a namespace, not the correct url helper generation, it had become an error to run the test. Modified to generate the correct url helper, even if it is produced a namespace with controller.
* | Merge pull request #22275 from mastahyeti/per-form-csrfRafael França2016-01-061-0/+4
|\ \ | |/ |/| Per-form CSRF tokens
| * add option for per-form CSRF tokensBen Toews2016-01-041-0/+4
| |
* | :scissors: Unnecessary spacing in the generated codeAkira Matsuda2016-01-051-1/+1
|/
* Merge pull request #22874 from ↵Rafael França2016-01-012-0/+0
|\ | | | | | | | | prathamesh-sonpatki/create-application-model-under-namespaced-dir-in-plugin Create application_record.rb under namespaced directory in plugin
| * Create application_record under namespaced directory in pluginPrathamesh Sonpatki2016-01-012-0/+0
| | | | | | | | | | | | - Earlier it was creating application_record.rb under `app/models`, after this change, it will create application_record.rb under `app/models/plugin_name` similar to other application classes.
* | Remove a wasted spaceShota Iguchi2016-01-011-1/+1
|/
* [ci skip] Space out framework names in USAGEKasper Timm Hansen2015-12-302-5/+5
| | | | | | Two USAGE files were referring to Active Record and Active Model without a space, which is incorrect because we're referring to the framework name and not the constants.
* Add sass-rails back to the default GemfileRafael Mendonça França2015-12-301-0/+2
| | | | It was removed by mistake at 877a411d0c16baa4e670dae9a28f5cfcc201adc1