aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails
Commit message (Collapse)AuthorAgeFilesLines
* Don't generate yarn's contents in `app:update` task if it's skippedTsukuru Tanimichi2018-05-162-3/+2
|
* Merge pull request #32837 from ttanimichi/app-update-skip-springYuji Yaginuma2018-05-141-0/+1
|\ | | | | Don't generate `config/spring.rb` in `app:update` task when spring isn't loaded
| * Don't generate `config/spring.rb` in `app:update` task when spring isn't loadedTsukuru Tanimichi2018-05-131-0/+1
| |
* | Remove unused `remove_file` methodTsukuru Tanimichi2018-05-081-4/+0
|/ | | | | | In #32780, We have supported the `--skip-sprockets` option in the `app:update` task. When `options[:api]` is truthy, `option[:skip_sprockets]` is also truthy. So we can remove this `remove_file` method. https://github.com/rails/rails/blob/42b9e7e50c084e119a679cf155b70b5efc4d36ff/railties/lib/rails/generators/rails/app/app_generator.rb#L281-L283
* Skip `bootsnap` contents in `app:update` task if `bootsnap` is not usedyuuji.yaginuma2018-05-071-0/+1
|
* Merge pull request #32780 from ttanimichi/tmpYuji Yaginuma2018-05-052-1/+5
|\ | | | | Don't generate assets' initializer in `app:update` task if sprockets is skipped
| * Don't generate assets' initializer in `app:update` task if sprockets is skippedTsukuru Tanimichi2018-05-052-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Execute `rails new myapp -S` and then upgrade the app by using the `app:update` task, `bin/rails c` results in `NoMethodError`. ``` $ bin/rails app:update $ bin/rails c Traceback (most recent call last): 44: from bin/rails:4:in `<main>' (snip) 1: from /Users/tanimichi.tsukuru/ghq/github.com/moneyforward/moneyplus/config/initializers/assets.rb:4:in `<top (required)>' /Users/tanimichi.tsukuru/ghq/github.com/moneyforward/moneyplus/vendor/bundle/ruby/2.5.0/gems/railties-5.2.0/lib/rails/railtie/configuration.rb:97:in `method_missing': undefined method `assets' for #<Rails::Application::Configuration:0x00007fcb8d3697e0> (NoMethodError) Did you mean? asset_host ```
* | Partly revert #32289 to provide Rails' custom fallback in caseutilum2018-05-011-2/+49
|/ | | | | | | | | | | `DidYouMean::SpellChecker` is not defined. `did_you_mean` is bundled in Ruby but can be uninstalled, and is not always available, sometimes even on our CI: https://travis-ci.org/rails/rails/jobs/372638523#L2405 https://travis-ci.org/rails/rails/jobs/372638523#L2416 https://travis-ci.org/rails/rails/jobs/372638523#L2427 ...
* Merge pull request #32471 from janko-m/use-image_processing-gemGeorge Claghorn2018-04-231-1/+1
|\ | | | | Use ImageProcessing gem for ActiveStorage variants
| * Use ImageProcessing gem for ActiveStorage variantsJanko Marohnić2018-04-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ImageProcessing gem is a wrapper around MiniMagick and ruby-vips, and implements an interface for common image resizing and processing. This is the canonical image processing gem recommended in [Shrine], and that's where it developed from. The initial implementation was extracted from Refile, which also implements on-the-fly transformations. Some features that ImageProcessing gem adds on top of MiniMagick: * resizing macros - #resize_to_limit - #resize_to_fit - #resize_to_fill - #resize_and_pad * automatic orientation * automatic thumbnail sharpening * avoids the complex and inefficient MiniMagick::Image class * will use "magick" instead of "convert" on ImageMagick 7 However, the biggest feature of the ImageProcessing gem is that it has an alternative implementation that uses libvips. Libvips is an alternative to ImageMagick that can process images very rapidly (we've seen up 10x faster than ImageMagick). What's great is that the ImageProcessing gem provides the same interface for both implementations. The macros are named the same, and the libvips implementation does auto orientation and thumbnail sharpening as well; only the operations/options specific to ImageMagick/libvips differ. The integration provided by this PR should work for both implementations. The plan is to introduce the ImageProcessing backend in Rails 6.0 as the default backend and deprecate the MiniMagick backend, then in Rails 6.1 remove the MiniMagick backend.
* | Merge pull request #31554 from fatkodima/controller_generator_suffixGuillermo Iguaran2018-04-221-1/+11
|\ \ | | | | | | Gracefully handle extra "controller" when generating controller
| * | Gracefully handle extra "controller" when generating controllerfatkodima2018-03-231-1/+11
| | |
* | | Strip duplicated suffixes more strictlyRyuta Kamizono2018-04-223-3/+3
| | | | | | | | | | | | In the previous code incorrectly removes intermediate words.
* | | Fix duplicated suffix for JobGeneratorYoshiyuki Hirano2018-04-221-0/+5
| | |
* | | Don't include bootsnap by default in apps generated under JRubyGuillermo Iguaran2018-04-201-1/+1
| | |
* | | [ci skip] Prefix class name with Rails:: in docsAlberto Almagro2018-04-201-3/+3
| | | | | | | | | | | | | | | After renaming and deprecation of SourceAnnotationExtractor documentation has been updated to reflect the new name Rails::SourceAnnotationExtractor
* | | [ci skip] Improve #find_in documentation.Alberto Almagro2018-04-201-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | The previous documentation version listed only the default registered extensions. This was misleading because if more extensions get registered with <tt>SourceAnnotationExtractor::Annotation.register_extensions</tt>, they would be also taken into account. By saying that we consider all registered extensions we document what happens in reality.
* | | Create a .ruby-version compatible with MRI/JRuby by defaultGuillermo Iguaran2018-04-191-1/+1
| | |
* | | Make the master.key readable only by the ownerJose Luis Duran2018-04-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change may only apply to POSIX-compliant systems. Previously: $ ls -l config/master.key -rw-r--r-- 1 owner group 32 Jan 1 00:00 master.key Now: $ ls -l config/master.key -rw------- 1 owner group 32 Jan 1 00:00 master.key
* | | Deprecate support for using `HOST` environment to specify server IP (#32540)Yuji Yaginuma2018-04-161-2/+12
| |/ |/| | | | | | | | | | | | | | | | | | | | | At SuSE, `$HOST` is set by default and is equal to `$HOSTNAME`. https://www.suse.com/documentation/sled11/book_sle_admin/data/sec_adm_variables.html Therefore, by default, it binds to hostname instead of `localhost`. This seems not to be appropriate as default behavior. In order to avoid the name of the environment variable being used, I changed the environment variable from `HOST` to `BINDING`. Fixes #29516.
* | Add .keep exception for storage folderPaul2018-04-131-1/+4
| | | | | | Fixes https://github.com/rails/rails/issues/32546 by including the `.keep` file in the .gitignore, bringing the `storage` folder in line with the `tmp` and `log` folders.
* | Remove upper bound on Capybaraeileencodes2018-04-101-1/+1
| | | | | | | | | | | | | | There's no reason to block future versions of Capybara since we don't _know_ they are going to break. How will we know if we have a conservative option set? This change prevents us from blocking users who want to upgrade in the future.
* | Merge pull request #32444 from matrinox/fix-return-response-mutation-rack-loggerRafael Mendonça França2018-04-041-3/+3
|\ \ | | | | | | | | | Stop mutating body response
| * | Stop mutating body responseGeoff Lee2018-04-031-3/+3
| | | | | | | | | | | | | | | | | | If @app.call returns an object that is saved (for e.g., in a constant), the mutation results in a continuing cycle of wrapping the body in Rack::BodyProxy, eventually leading to SystemStackError ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ On branch fix-return-response-mutation-rack-logger - Tue 3 Apr 2018 19:54:28 PDT by Geoff Lee <geoff.lee@lendesk.com>
* | | Add missing dots at the end of comments in environment file templatesbogdanvlviv2018-04-033-7/+7
|/ / | | | | | | Add dots in order to keep consistency between other comments in these files.
* | Add `action_view.finalize_compiled_template_methods` config optionSimon Coffey2018-04-021-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ActionView::Template instances compile their source to methods on the ActionView::CompiledTemplates module. To prevent leaks in development mode, where templates can frequently change, a finalizer is added that undefines these methods[1] when the templates are garbage-collected. This is undesirable in the test environment, however, as templates don't change during the life of the test. Moreover, the cost of undefining a method is proportional to the number of descendants a class or module has, since the method cache must be cleared for all descendant classes. As ActionView::CompiledTemplates is mixed into every ActionView::TestCase (or in RSpec suites, every view spec example group), it can end up with a very large number of descendants, and undefining its methods can become very expensive. In large test suites, this results in a long delay at the end of the test suite as all template finalizers are run, only for the process to then exit. To avoid this unnecessary cost, this change adds a config option, `action_view.finalize_compiled_template_methods`, defaulting to true, and sets it to false in the test environment only. [1] https://github.com/rails/rails/blob/09b2348f7fc8d4e7191e70e06608c5909067e2aa/actionview/lib/action_view/template.rb#L118-L126
* | Merge pull request #32065 from ↵Kasper Timm Hansen2018-04-023-121/+130
|\ \ | | | | | | | | | | | | sikachu/move-SourceAnnotationExtractor-under-rails-namespec Move SourceAnnotationExtractor under Rails module
| * | Add deprecation note for SourceAnnotationExtractorPrem Sichanugrist2018-03-221-0/+7
| | |
| * | Make Annotation into a proper classPrem Sichanugrist2018-03-221-1/+1
| | | | | | | | | | | | | | | This cleans up the documentation for SourceAnnotationExtractor because RDoc does not seems to know how to parse `Struct.new() do` block.
| * | Move SourceAnnotationExtractor under Rails modulePrem Sichanugrist2018-03-223-121/+123
| |/ | | | | | | This class should be under Rails module as it belongs to Rails.
* | Deriving `secret_key_base` breaks `key_generator` defined in 5.1.Yoshiyuki Kinjo2018-03-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | If one created Rails 5.1 app and then updated to 5.2, `secret_key_base` defined in `config/secrets.yml` is ignored for `development` and `test` environment. A change in `secret_key_base` in turn breaks `Rails.application.key_generator`. If one encrypt data in Rails 5.1, she cannot decrypt it in Rails 5.2 for `development` and `test` environment.
* | Remove unnecessary line break and quotesyuuji.yaginuma2018-03-301-2/+2
| |
* | Fix "--frozen-lockfile" argument used in yarn install rake taskGuillermo Iguaran2018-03-291-1/+1
| | | | | | --frozen-lockfile is the right name of the argument
* | Merge pull request #32289 from gsamokovarov/did-you-mean-suggestionsGuillermo Iguaran2018-03-293-52/+9
|\ \ | | | | | | Use `did_you_mean` spell checker for option suggestions
| * | Use `did_you_mean` spell checker for option suggestionsGenadi Samokovarov2018-03-233-52/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we require Ruby over `2.3`, we can replace the current suggestion methods we have with tooling from the `did_you_mean` gem. There is a small user visible change and this is that we now offer a single suggestion for misspelled options. We are suggesting fixes during generator invocation and during a mistyped rails server rack handler. In both cases, if we don't make a proper prediction on the first match, we won't do so in the second or third one, so in my mind, this is okay.
* | | Merge pull request #32243 from maschwenk/patch-2Guillermo Iguaran2018-03-291-1/+1
|\ \ \ | | | | | | | | [Webpack] Raise an error when lockfile diff is generated
| * | | Raise an error when lockfile diff is generatedMax Schwenk2018-03-131-1/+1
| | | | | | | | | | | | https://yarnpkg.com/en/docs/cli/install#toc-yarn-install-frozen-lockfile
* | | | Compare ruby version with correct wayShia2018-03-291-1/+1
| | | |
* | | | Merge pull request #32274 from eileencodes/part-1-add-rake-tasks-for-multi-dbEileen M. Uchitelle2018-03-261-0/+12
|\ \ \ \ | |_|_|/ |/| | | Part 1 Easy Multi db in Rails: Add basic rake tasks for multi db setup
| * | | Refactor configs_for and friendseileencodes2018-03-211-0/+12
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moves the configs_for and DatabaseConfig struct into it's own file. I was considering doing this in a future refactoring but our set up forced me to move it now. You see there are `mattr_accessor`'s on the Core module that have default settings. For example the `schema_format` defaults to Ruby. So if I call `configs_for` or any methods in the Core module it will reset the `schema_format` to `:ruby`. By moving it to it's own class we can keep the logic contained and avoid this unfortunate issue. The second change here does a double loop over the yaml files. Bear with me... Our tests dictate that we need to load an environment before our rake tasks because we could have something in an environment that the database.yml depends on. There are side-effects to this and I think there's a deeper bug that needs to be fixed but that's for another issue. The gist of the problem is when I was creating the dynamic rake tasks if the yaml that that rake task is calling evaluates code (like erb) that calls the environment configs the code will blow up because the environment is not loaded yet. To avoid this issue we added a new method that simply loads the yaml and does not evaluate the erb or anything in it. We then use that yaml to create the task name. Inside the task name we can then call `load_config` and load the real config to actually call the code internal to the task. I admit, this is gross, but refactoring can't all be pretty all the time and I'm working hard with `@tenderlove` to refactor much more of this code to get to a better place re connection management and rake tasks.
* / | Support mysql2 0.4.x and 0.5.xAaron Stone2018-03-201-1/+1
|/ /
* | Merge pull request #32271 from eileencodes/fix-three-tier-default-connectionEileen M. Uchitelle2018-03-161-1/+1
|\ \ | |/ |/| Fix default connection handling with three-tier config
| * Switch dbconsole config loader checkeileencodes2018-03-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | In a three-tier config environment `configurations[environment].presence` will return `{ :primary => { :key => value, :key => value }, :secondary => { :key => value, :key => value} }, which means it's not given a single config to connect to. If we flip these however it will connect to primary because that's the default connection, and on a two tier it will be `nil` so the code will select the connection from the configurations rather than the connection.
* | Rely on Rails::Command's help output.Kasper Timm Hansen2018-03-131-15/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We end up with: ``` Usage: bin/rails routes [options] Options: -c, [--controller=CONTROLLER] # Filter by a specific controller, e.g. PostsController or Admin::PostsController. -g, [--grep=GREP] # Grep routes by a specific pattern. -E, [--expanded], [--no-expanded] # Print routes expanded vertically with parts explained. ``` which does miss the bit about routes being printed in order. Also: * Renames options to ease help output readability, then clarifies each option. * Fixes a bunch of indentation.
* | Extract details to methods to clarify command.Kasper Timm Hansen2018-03-131-8/+12
| |
* | Introduce `ActionDispatch::Routing::ConsoleFormatter::Base`bogdanvlviv2018-03-131-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Create `Base` and inherit `Sheet` and `Expanded` in order to - prevent code duplication. - Remove trailing "\n" for components of `Expanded`. - There is no need for `Expanded#header` to return `@buffer` so return `nil` instead. - Change `no_routes` message "No routes were found for this controller" since if use `-g`, it sounds incorrect. - Display `No routes were found for this controller.` if apply `-c`. - Display `No routes were found for this grep pattern.` if apply `-g`. Related to #32130
* | Remove path option from AzureStorage configYuji Yaginuma2018-03-131-1/+0
| | | | | | | | Follow up of 309bb6c4d068b0d480681cf4ef1b90158527dfe5
* | Do not show unnecessary message during server startupyuuji.yaginuma2018-03-101-6/+5
|/ | | | | | | | | | | | | | | | | | | | Currently, `Exiting` is showed during server startup. ``` ./bin/rails s => Booting Puma => Rails 6.0.0.alpha application starting in development => Run `rails server --help` for more startup options Exiting Puma starting in single mode... * Version 3.11.2 (ruby 2.5.0-p0), codename: Love Song ``` This is because processing at server stop is passed as a block, and `Rack::Serve#start` receives a block and executes it during startup processing. https://github.com/rack/rack/blob/50db1ffdf8b98503fb7c6e6648622b5d7d78d58e/lib/rack/server.rb#L258 In order to avoid this, stop processing is passed as argument.
* Always yield a CSP policy instanceAndrew White2018-03-081-4/+2
| | | | | If the app has the CSP disabled globally allow a controller action to enable the policy for that request.
* Allow using inline style and script in the internal controllersyuuji.yaginuma2018-03-081-0/+13
| | | | | | | | | | We use inline style and script for the view held inside Rails like welcome page and mailer preview. Therefore, if inline is prohibited by CSP, they will not work properly. I think that this is not as expected.   For that reason, I have made it possible to use inline style and script regardless of application settings.