diff options
Diffstat (limited to 'railties/lib/rails')
186 files changed, 417 insertions, 66 deletions
| diff --git a/railties/lib/rails/all.rb b/railties/lib/rails/all.rb index 913bcf4120..e55b2e2433 100644 --- a/railties/lib/rails/all.rb +++ b/railties/lib/rails/all.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "rails"  %w( diff --git a/railties/lib/rails/api/generator.rb b/railties/lib/rails/api/generator.rb index dcc491783c..6e5eec2e34 100644 --- a/railties/lib/rails/api/generator.rb +++ b/railties/lib/rails/api/generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "sdoc"  class RDoc::Generator::API < RDoc::Generator::SDoc # :nodoc: diff --git a/railties/lib/rails/api/task.rb b/railties/lib/rails/api/task.rb index 195048a98b..595079e45f 100644 --- a/railties/lib/rails/api/task.rb +++ b/railties/lib/rails/api/task.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "rdoc/task"  require_relative "generator" diff --git a/railties/lib/rails/app_loader.rb b/railties/lib/rails/app_loader.rb index 9e4f715ca6..3e9b3bd4bb 100644 --- a/railties/lib/rails/app_loader.rb +++ b/railties/lib/rails/app_loader.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "pathname"  require_relative "version" diff --git a/railties/lib/rails/app_updater.rb b/railties/lib/rails/app_updater.rb index e53d1cf093..c2436a69f9 100644 --- a/railties/lib/rails/app_updater.rb +++ b/railties/lib/rails/app_updater.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "rails/generators"  require "rails/generators/rails/app/app_generator" diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb index a71f36840e..72f8bf0e14 100644 --- a/railties/lib/rails/application.rb +++ b/railties/lib/rails/application.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "yaml"  require "active_support/core_ext/hash/keys"  require "active_support/core_ext/object/blank" diff --git a/railties/lib/rails/application/bootstrap.rb b/railties/lib/rails/application/bootstrap.rb index 44b49556d7..c24d4573a9 100644 --- a/railties/lib/rails/application/bootstrap.rb +++ b/railties/lib/rails/application/bootstrap.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "fileutils"  require "active_support/notifications"  require "active_support/dependencies" diff --git a/railties/lib/rails/application/configuration.rb b/railties/lib/rails/application/configuration.rb index 4797223380..31e2a45bff 100644 --- a/railties/lib/rails/application/configuration.rb +++ b/railties/lib/rails/application/configuration.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support/core_ext/kernel/reporting"  require "active_support/file_update_checker"  require_relative "../engine/configuration" diff --git a/railties/lib/rails/application/default_middleware_stack.rb b/railties/lib/rails/application/default_middleware_stack.rb index 63300ffef3..ea2273c1f2 100644 --- a/railties/lib/rails/application/default_middleware_stack.rb +++ b/railties/lib/rails/application/default_middleware_stack.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    class Application      class DefaultMiddlewareStack diff --git a/railties/lib/rails/application/finisher.rb b/railties/lib/rails/application/finisher.rb index c027d06663..3d938be951 100644 --- a/railties/lib/rails/application/finisher.rb +++ b/railties/lib/rails/application/finisher.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    class Application      module Finisher diff --git a/railties/lib/rails/application/routes_reloader.rb b/railties/lib/rails/application/routes_reloader.rb index e02ef629f2..2ef09b4162 100644 --- a/railties/lib/rails/application/routes_reloader.rb +++ b/railties/lib/rails/application/routes_reloader.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support/core_ext/module/delegation"  module Rails diff --git a/railties/lib/rails/application_controller.rb b/railties/lib/rails/application_controller.rb index f7d112900a..fa8793d81a 100644 --- a/railties/lib/rails/application_controller.rb +++ b/railties/lib/rails/application_controller.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  class Rails::ApplicationController < ActionController::Base # :nodoc:    self.view_paths = File.expand_path("templates", __dir__)    layout "application" diff --git a/railties/lib/rails/backtrace_cleaner.rb b/railties/lib/rails/backtrace_cleaner.rb index 3bd18ebfb5..ae8db0f8ef 100644 --- a/railties/lib/rails/backtrace_cleaner.rb +++ b/railties/lib/rails/backtrace_cleaner.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support/backtrace_cleaner"  module Rails diff --git a/railties/lib/rails/cli.rb b/railties/lib/rails/cli.rb index 602e56c961..50a2ed30cf 100644 --- a/railties/lib/rails/cli.rb +++ b/railties/lib/rails/cli.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "app_loader"  # If we are inside a Rails application this method performs an exec and thus diff --git a/railties/lib/rails/code_statistics.rb b/railties/lib/rails/code_statistics.rb index 5e0d807a21..7ceb86198f 100644 --- a/railties/lib/rails/code_statistics.rb +++ b/railties/lib/rails/code_statistics.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "code_statistics_calculator"  require "active_support/core_ext/enumerable" diff --git a/railties/lib/rails/code_statistics_calculator.rb b/railties/lib/rails/code_statistics_calculator.rb index d0194af197..85f86bdbd0 100644 --- a/railties/lib/rails/code_statistics_calculator.rb +++ b/railties/lib/rails/code_statistics_calculator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  class CodeStatisticsCalculator #:nodoc:    attr_reader :lines, :code_lines, :classes, :methods diff --git a/railties/lib/rails/command.rb b/railties/lib/rails/command.rb index ee020b58f9..812e846837 100644 --- a/railties/lib/rails/command.rb +++ b/railties/lib/rails/command.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support"  require "active_support/dependencies/autoload"  require "active_support/core_ext/enumerable" diff --git a/railties/lib/rails/command/actions.rb b/railties/lib/rails/command/actions.rb index a00e58997c..2f6827b7f4 100644 --- a/railties/lib/rails/command/actions.rb +++ b/railties/lib/rails/command/actions.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Command      module Actions diff --git a/railties/lib/rails/command/base.rb b/railties/lib/rails/command/base.rb index cd0720be4e..e92b2042bd 100644 --- a/railties/lib/rails/command/base.rb +++ b/railties/lib/rails/command/base.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "thor"  require "erb" @@ -73,7 +75,7 @@ module Rails          # Use Rails' default banner.          def banner(*) -          "#{executable} #{arguments.map(&:usage).join(' ')} [options]".squish! +          "#{executable} #{arguments.map(&:usage).join(' ')} [options]".squish          end          # Sets the base_name taking into account the current class namespace. diff --git a/railties/lib/rails/command/behavior.rb b/railties/lib/rails/command/behavior.rb index 4a92f72f16..7a6dd28e1a 100644 --- a/railties/lib/rails/command/behavior.rb +++ b/railties/lib/rails/command/behavior.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support"  module Rails diff --git a/railties/lib/rails/command/environment_argument.rb b/railties/lib/rails/command/environment_argument.rb index 9582509840..5dc98b113d 100644 --- a/railties/lib/rails/command/environment_argument.rb +++ b/railties/lib/rails/command/environment_argument.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support"  module Rails diff --git a/railties/lib/rails/commands.rb b/railties/lib/rails/commands.rb index a33e2778d4..1aea1e1a96 100644 --- a/railties/lib/rails/commands.rb +++ b/railties/lib/rails/commands.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "command"  aliases = { diff --git a/railties/lib/rails/commands/application/application_command.rb b/railties/lib/rails/commands/application/application_command.rb index e92daf9be6..13d47a63bc 100644 --- a/railties/lib/rails/commands/application/application_command.rb +++ b/railties/lib/rails/commands/application/application_command.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../generators"  require_relative "../../generators/rails/app/app_generator" diff --git a/railties/lib/rails/commands/console/console_command.rb b/railties/lib/rails/commands/console/console_command.rb index 6f9a1f022b..5dc695c240 100644 --- a/railties/lib/rails/commands/console/console_command.rb +++ b/railties/lib/rails/commands/console/console_command.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "irb"  require "irb/completion" diff --git a/railties/lib/rails/commands/dbconsole/dbconsole_command.rb b/railties/lib/rails/commands/dbconsole/dbconsole_command.rb index 71b3455473..6296c95a87 100644 --- a/railties/lib/rails/commands/dbconsole/dbconsole_command.rb +++ b/railties/lib/rails/commands/dbconsole/dbconsole_command.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../command/environment_argument"  module Rails @@ -58,7 +60,7 @@ module Rails          logon = ""          if config["username"] -          logon = config["username"] +          logon = config["username"].dup            logon << "/#{config['password']}" if config["password"] && @options["include_password"]            logon << "@#{config['database']}" if config["database"]          end diff --git a/railties/lib/rails/commands/destroy/destroy_command.rb b/railties/lib/rails/commands/destroy/destroy_command.rb index 8a6fe67f77..686193ddb9 100644 --- a/railties/lib/rails/commands/destroy/destroy_command.rb +++ b/railties/lib/rails/commands/destroy/destroy_command.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../generators"  module Rails diff --git a/railties/lib/rails/commands/generate/generate_command.rb b/railties/lib/rails/commands/generate/generate_command.rb index c2089dbcb7..73f627637d 100644 --- a/railties/lib/rails/commands/generate/generate_command.rb +++ b/railties/lib/rails/commands/generate/generate_command.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../generators"  module Rails diff --git a/railties/lib/rails/commands/help/help_command.rb b/railties/lib/rails/commands/help/help_command.rb index 90d37217fc..8e5b4d68d3 100644 --- a/railties/lib/rails/commands/help/help_command.rb +++ b/railties/lib/rails/commands/help/help_command.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Command      class HelpCommand < Base # :nodoc: diff --git a/railties/lib/rails/commands/new/new_command.rb b/railties/lib/rails/commands/new/new_command.rb index 207dd5d995..d73d64d899 100644 --- a/railties/lib/rails/commands/new/new_command.rb +++ b/railties/lib/rails/commands/new/new_command.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Command      class NewCommand < Base # :nodoc: diff --git a/railties/lib/rails/commands/plugin/plugin_command.rb b/railties/lib/rails/commands/plugin/plugin_command.rb index e915a24e5b..5d3dfadf84 100644 --- a/railties/lib/rails/commands/plugin/plugin_command.rb +++ b/railties/lib/rails/commands/plugin/plugin_command.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Command      class PluginCommand < Base # :nodoc: diff --git a/railties/lib/rails/commands/rake/rake_command.rb b/railties/lib/rails/commands/rake/rake_command.rb index 075b1fd23d..535df0c430 100644 --- a/railties/lib/rails/commands/rake/rake_command.rb +++ b/railties/lib/rails/commands/rake/rake_command.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Command      class RakeCommand < Base # :nodoc: diff --git a/railties/lib/rails/commands/runner/runner_command.rb b/railties/lib/rails/commands/runner/runner_command.rb index c931fc2152..cd9462e08f 100644 --- a/railties/lib/rails/commands/runner/runner_command.rb +++ b/railties/lib/rails/commands/runner/runner_command.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Command      class RunnerCommand < Base # :nodoc: diff --git a/railties/lib/rails/commands/secrets/secrets_command.rb b/railties/lib/rails/commands/secrets/secrets_command.rb index 45e02fa730..d93c4de74e 100644 --- a/railties/lib/rails/commands/secrets/secrets_command.rb +++ b/railties/lib/rails/commands/secrets/secrets_command.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support"  require_relative "../../secrets" diff --git a/railties/lib/rails/commands/server/server_command.rb b/railties/lib/rails/commands/server/server_command.rb index de69b4586b..88e5698714 100644 --- a/railties/lib/rails/commands/server/server_command.rb +++ b/railties/lib/rails/commands/server/server_command.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "fileutils"  require "optparse"  require "action_dispatch" diff --git a/railties/lib/rails/commands/test/test_command.rb b/railties/lib/rails/commands/test/test_command.rb index 5852f51a62..a2216553ca 100644 --- a/railties/lib/rails/commands/test/test_command.rb +++ b/railties/lib/rails/commands/test/test_command.rb @@ -1,33 +1,28 @@ +# frozen_string_literal: true +  require_relative "../../command"  require_relative "../../test_unit/runner" +require_relative "../../test_unit/reporter"  module Rails    module Command      class TestCommand < Base # :nodoc:        no_commands do          def help -          require "optparse" -          require "minitest/rails_plugin" - -          opts = OptionParser.new -          opts.banner = "Usage: #{Rails::TestUnitReporter.executable} [options] [files or directories]" -          opts.separator "" -          opts.separator "You can run a single test by appending a line number to a filename:" -          opts.separator "" -          opts.separator "    #{Rails::TestUnitReporter.executable} test/models/user_test.rb:27" -          opts.separator "" -          opts.separator "You can run multiple files and directories at the same time:" -          opts.separator "" -          opts.separator "    #{Rails::TestUnitReporter.executable} test/controllers test/integration/login_test.rb" -          opts.separator "" -          opts.separator "By default test failures and errors are reported inline during a run." -          opts.separator "" - -          opts.separator "Rails options:" -          Rails::TestUnit::Runner.options(opts) -          Minitest.plugin_rails_options(opts, {}) +          say "Usage: #{Rails::TestUnitReporter.executable} [options] [files or directories]" +          say "" +          say "You can run a single test by appending a line number to a filename:" +          say "" +          say "    #{Rails::TestUnitReporter.executable} test/models/user_test.rb:27" +          say "" +          say "You can run multiple files and directories at the same time:" +          say "" +          say "    #{Rails::TestUnitReporter.executable} test/controllers test/integration/login_test.rb" +          say "" +          say "By default test failures and errors are reported inline during a run." +          say "" -          say opts +          Minitest.run(%w(--help))          end        end diff --git a/railties/lib/rails/commands/version/version_command.rb b/railties/lib/rails/commands/version/version_command.rb index ac745594ee..3e2112b6d4 100644 --- a/railties/lib/rails/commands/version/version_command.rb +++ b/railties/lib/rails/commands/version/version_command.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Command      class VersionCommand < Base # :nodoc: diff --git a/railties/lib/rails/configuration.rb b/railties/lib/rails/configuration.rb index 89ed313ff0..70815d114d 100644 --- a/railties/lib/rails/configuration.rb +++ b/railties/lib/rails/configuration.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support/ordered_options"  require "active_support/core_ext/object"  require_relative "paths" diff --git a/railties/lib/rails/console/app.rb b/railties/lib/rails/console/app.rb index affadc8e09..c37583ce9a 100644 --- a/railties/lib/rails/console/app.rb +++ b/railties/lib/rails/console/app.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support/all"  require "action_controller" diff --git a/railties/lib/rails/console/helpers.rb b/railties/lib/rails/console/helpers.rb index a33f71dc5b..39fbc55606 100644 --- a/railties/lib/rails/console/helpers.rb +++ b/railties/lib/rails/console/helpers.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module ConsoleMethods      # Gets the helper methods available to the controller. diff --git a/railties/lib/rails/dev_caching.rb b/railties/lib/rails/dev_caching.rb index f69275a34a..efb523de4c 100644 --- a/railties/lib/rails/dev_caching.rb +++ b/railties/lib/rails/dev_caching.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "fileutils"  module Rails diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index a80593d4b9..cc2030d37d 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "railtie"  require_relative "engine/railties"  require "active_support/core_ext/module/delegation" diff --git a/railties/lib/rails/engine/commands.rb b/railties/lib/rails/engine/commands.rb index 5267b23d6c..3854907507 100644 --- a/railties/lib/rails/engine/commands.rb +++ b/railties/lib/rails/engine/commands.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  unless defined?(APP_PATH)    if File.exist?(File.expand_path("test/dummy/config/application.rb", ENGINE_ROOT))      APP_PATH = File.expand_path("test/dummy/config/application", ENGINE_ROOT) diff --git a/railties/lib/rails/engine/configuration.rb b/railties/lib/rails/engine/configuration.rb index 9c7e2942bc..16ba7f9eb8 100644 --- a/railties/lib/rails/engine/configuration.rb +++ b/railties/lib/rails/engine/configuration.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../railtie/configuration"  module Rails diff --git a/railties/lib/rails/engine/railties.rb b/railties/lib/rails/engine/railties.rb index 9969a1475d..052b74c880 100644 --- a/railties/lib/rails/engine/railties.rb +++ b/railties/lib/rails/engine/railties.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    class Engine < Railtie      class Railties diff --git a/railties/lib/rails/engine/updater.rb b/railties/lib/rails/engine/updater.rb index af2bff1e59..2e0aef8aa7 100644 --- a/railties/lib/rails/engine/updater.rb +++ b/railties/lib/rails/engine/updater.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../generators"  require_relative "../generators/rails/plugin/plugin_generator" diff --git a/railties/lib/rails/gem_version.rb b/railties/lib/rails/gem_version.rb index 7bacf2e0ba..92b5e0392a 100644 --- a/railties/lib/rails/gem_version.rb +++ b/railties/lib/rails/gem_version.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    # Returns the version of the currently loaded Rails as a <tt>Gem::Version</tt>    def self.gem_version diff --git a/railties/lib/rails/generators.rb b/railties/lib/rails/generators.rb index 8915441d4c..a630d55e59 100644 --- a/railties/lib/rails/generators.rb +++ b/railties/lib/rails/generators.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  activesupport_path = File.expand_path("../../../activesupport/lib", __dir__)  $:.unshift(activesupport_path) if File.directory?(activesupport_path) && !$:.include?(activesupport_path) @@ -271,7 +273,7 @@ module Rails          else            options     = sorted_groups.flat_map(&:last)            suggestions = options.sort_by { |suggested| levenshtein_distance(namespace.to_s, suggested) }.first(3) -          msg =  "Could not find generator '#{namespace}'. " +          msg =  "Could not find generator '#{namespace}'. ".dup            msg << "Maybe you meant #{ suggestions.map { |s| "'#{s}'" }.to_sentence(last_word_connector: " or ", locale: :en) }\n"            msg << "Run `rails generate --help` for more options."            puts msg diff --git a/railties/lib/rails/generators/actions.rb b/railties/lib/rails/generators/actions.rb index 9baf53c1d0..eda12b6da2 100644 --- a/railties/lib/rails/generators/actions.rb +++ b/railties/lib/rails/generators/actions.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Generators      module Actions @@ -244,7 +246,7 @@ module Rails          sentinel = /\.routes\.draw do\s*\n/m          in_root do -          inject_into_file "config/routes.rb", "  #{routing_code}\n", after: sentinel, verbose: false, force: false +          inject_into_file "config/routes.rb", optimize_indentation(routing_code, 2), after: sentinel, verbose: false, force: false          end        end diff --git a/railties/lib/rails/generators/actions/create_migration.rb b/railties/lib/rails/generators/actions/create_migration.rb index d06609e91e..05bc242447 100644 --- a/railties/lib/rails/generators/actions/create_migration.rb +++ b/railties/lib/rails/generators/actions/create_migration.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "fileutils"  require "thor/actions" diff --git a/railties/lib/rails/generators/active_model.rb b/railties/lib/rails/generators/active_model.rb index 2679d06fe4..8df8eb2438 100644 --- a/railties/lib/rails/generators/active_model.rb +++ b/railties/lib/rails/generators/active_model.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Generators      # ActiveModel is a class to be implemented by each ORM to allow Rails to diff --git a/railties/lib/rails/generators/app_base.rb b/railties/lib/rails/generators/app_base.rb index 4899a63917..c8688fb7f3 100644 --- a/railties/lib/rails/generators/app_base.rb +++ b/railties/lib/rails/generators/app_base.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "fileutils"  require "digest/md5"  require "active_support/core_ext/string/strip" diff --git a/railties/lib/rails/generators/base.rb b/railties/lib/rails/generators/base.rb index 9705af8b40..5523a3f659 100644 --- a/railties/lib/rails/generators/base.rb +++ b/railties/lib/rails/generators/base.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  begin    require "thor/group"  rescue LoadError diff --git a/railties/lib/rails/generators/css/assets/assets_generator.rb b/railties/lib/rails/generators/css/assets/assets_generator.rb index 40f3bb3c70..5f7be769b2 100644 --- a/railties/lib/rails/generators/css/assets/assets_generator.rb +++ b/railties/lib/rails/generators/css/assets/assets_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../named_base"  module Css # :nodoc: diff --git a/railties/lib/rails/generators/css/scaffold/scaffold_generator.rb b/railties/lib/rails/generators/css/scaffold/scaffold_generator.rb index b8c72828a1..5996cb1483 100644 --- a/railties/lib/rails/generators/css/scaffold/scaffold_generator.rb +++ b/railties/lib/rails/generators/css/scaffold/scaffold_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../named_base"  module Css # :nodoc: diff --git a/railties/lib/rails/generators/erb.rb b/railties/lib/rails/generators/erb.rb index 5314c42e46..2c20834611 100644 --- a/railties/lib/rails/generators/erb.rb +++ b/railties/lib/rails/generators/erb.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "named_base"  module Erb # :nodoc: diff --git a/railties/lib/rails/generators/erb/controller/controller_generator.rb b/railties/lib/rails/generators/erb/controller/controller_generator.rb index fb8222f654..1a6c84288b 100644 --- a/railties/lib/rails/generators/erb/controller/controller_generator.rb +++ b/railties/lib/rails/generators/erb/controller/controller_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../erb"  module Erb # :nodoc: diff --git a/railties/lib/rails/generators/erb/mailer/mailer_generator.rb b/railties/lib/rails/generators/erb/mailer/mailer_generator.rb index 53dd3289d4..5774d86c8e 100644 --- a/railties/lib/rails/generators/erb/mailer/mailer_generator.rb +++ b/railties/lib/rails/generators/erb/mailer/mailer_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../erb"  module Erb # :nodoc: diff --git a/railties/lib/rails/generators/erb/scaffold/scaffold_generator.rb b/railties/lib/rails/generators/erb/scaffold/scaffold_generator.rb index 0929425137..e80c6d4b7d 100644 --- a/railties/lib/rails/generators/erb/scaffold/scaffold_generator.rb +++ b/railties/lib/rails/generators/erb/scaffold/scaffold_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../erb"  require_relative "../../resource_helpers" diff --git a/railties/lib/rails/generators/generated_attribute.rb b/railties/lib/rails/generators/generated_attribute.rb index baed7bf1e3..2728459968 100644 --- a/railties/lib/rails/generators/generated_attribute.rb +++ b/railties/lib/rails/generators/generated_attribute.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support/time"  module Rails @@ -151,7 +153,7 @@ module Rails        end        def inject_options -        "".tap { |s| options_for_migration.each { |k, v| s << ", #{k}: #{v.inspect}" } } +        "".dup.tap { |s| options_for_migration.each { |k, v| s << ", #{k}: #{v.inspect}" } }        end        def inject_index_options diff --git a/railties/lib/rails/generators/js/assets/assets_generator.rb b/railties/lib/rails/generators/js/assets/assets_generator.rb index a4f84cc1ad..ea151aa04e 100644 --- a/railties/lib/rails/generators/js/assets/assets_generator.rb +++ b/railties/lib/rails/generators/js/assets/assets_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../named_base"  module Js # :nodoc: diff --git a/railties/lib/rails/generators/migration.rb b/railties/lib/rails/generators/migration.rb index 57c36f5668..7162b8c0b4 100644 --- a/railties/lib/rails/generators/migration.rb +++ b/railties/lib/rails/generators/migration.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support/concern"  require_relative "actions/create_migration" diff --git a/railties/lib/rails/generators/model_helpers.rb b/railties/lib/rails/generators/model_helpers.rb index 5bf480c5c0..aa3564476a 100644 --- a/railties/lib/rails/generators/model_helpers.rb +++ b/railties/lib/rails/generators/model_helpers.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "active_model"  module Rails diff --git a/railties/lib/rails/generators/named_base.rb b/railties/lib/rails/generators/named_base.rb index dc1d6cab9d..fe8447be23 100644 --- a/railties/lib/rails/generators/named_base.rb +++ b/railties/lib/rails/generators/named_base.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support/core_ext/module/introspection"  require_relative "base"  require_relative "generated_attribute" diff --git a/railties/lib/rails/generators/rails/app/app_generator.rb b/railties/lib/rails/generators/rails/app/app_generator.rb index cbe68823d4..0f73cc4755 100644 --- a/railties/lib/rails/generators/rails/app/app_generator.rb +++ b/railties/lib/rails/generators/rails/app/app_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../app_base"  module Rails @@ -395,7 +397,6 @@ module Rails        def delete_action_cable_files_skipping_action_cable          if options[:skip_action_cable] -          remove_file "config/cable.yml"            remove_file "app/assets/javascripts/cable.js"            remove_dir "app/channels"          end diff --git a/railties/lib/rails/generators/rails/app/templates/Rakefile b/railties/lib/rails/generators/rails/app/templates/Rakefile index e85f913914..488c551fee 100644 --- a/railties/lib/rails/generators/rails/app/templates/Rakefile +++ b/railties/lib/rails/generators/rails/app/templates/Rakefile @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  # Add your own tasks in files placed in lib/tasks ending in .rake,  # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. diff --git a/railties/lib/rails/generators/rails/app/templates/app/channels/application_cable/channel.rb b/railties/lib/rails/generators/rails/app/templates/app/channels/application_cable/channel.rb index d672697283..9aec230539 100644 --- a/railties/lib/rails/generators/rails/app/templates/app/channels/application_cable/channel.rb +++ b/railties/lib/rails/generators/rails/app/templates/app/channels/application_cable/channel.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module ApplicationCable    class Channel < ActionCable::Channel::Base    end diff --git a/railties/lib/rails/generators/rails/app/templates/app/channels/application_cable/connection.rb b/railties/lib/rails/generators/rails/app/templates/app/channels/application_cable/connection.rb index 0ff5442f47..8d6c2a1bf4 100644 --- a/railties/lib/rails/generators/rails/app/templates/app/channels/application_cable/connection.rb +++ b/railties/lib/rails/generators/rails/app/templates/app/channels/application_cable/connection.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module ApplicationCable    class Connection < ActionCable::Connection::Base    end diff --git a/railties/lib/rails/generators/rails/app/templates/app/helpers/application_helper.rb b/railties/lib/rails/generators/rails/app/templates/app/helpers/application_helper.rb index de6be7945c..15b06f0f67 100644 --- a/railties/lib/rails/generators/rails/app/templates/app/helpers/application_helper.rb +++ b/railties/lib/rails/generators/rails/app/templates/app/helpers/application_helper.rb @@ -1,2 +1,4 @@ +# frozen_string_literal: true +  module ApplicationHelper  end diff --git a/railties/lib/rails/generators/rails/app/templates/app/jobs/application_job.rb b/railties/lib/rails/generators/rails/app/templates/app/jobs/application_job.rb index a009ace51c..d92ffddcb5 100644 --- a/railties/lib/rails/generators/rails/app/templates/app/jobs/application_job.rb +++ b/railties/lib/rails/generators/rails/app/templates/app/jobs/application_job.rb @@ -1,2 +1,4 @@ +# frozen_string_literal: true +  class ApplicationJob < ActiveJob::Base  end diff --git a/railties/lib/rails/generators/rails/app/templates/app/mailers/application_mailer.rb b/railties/lib/rails/generators/rails/app/templates/app/mailers/application_mailer.rb index 286b2239d1..d84cb6e71e 100644 --- a/railties/lib/rails/generators/rails/app/templates/app/mailers/application_mailer.rb +++ b/railties/lib/rails/generators/rails/app/templates/app/mailers/application_mailer.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  class ApplicationMailer < ActionMailer::Base    default from: 'from@example.com'    layout 'mailer' diff --git a/railties/lib/rails/generators/rails/app/templates/app/models/application_record.rb b/railties/lib/rails/generators/rails/app/templates/app/models/application_record.rb index 10a4cba84d..71fbba5b32 100644 --- a/railties/lib/rails/generators/rails/app/templates/app/models/application_record.rb +++ b/railties/lib/rails/generators/rails/app/templates/app/models/application_record.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  class ApplicationRecord < ActiveRecord::Base    self.abstract_class = true  end diff --git a/railties/lib/rails/generators/rails/app/templates/config/application.rb b/railties/lib/rails/generators/rails/app/templates/config/application.rb index 9931709d7b..e9edad5309 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/application.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/application.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative 'boot'  <% if include_all_railties? -%> diff --git a/railties/lib/rails/generators/rails/app/templates/config/boot.rb b/railties/lib/rails/generators/rails/app/templates/config/boot.rb index b9e460cef3..c04863fa7d 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/boot.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/boot.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)  require 'bundler/setup' # Set up gems listed in the Gemfile. diff --git a/railties/lib/rails/generators/rails/app/templates/config/environment.rb b/railties/lib/rails/generators/rails/app/templates/config/environment.rb index 426333bb46..d5abe55806 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/environment.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/environment.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  # Load the Rails application.  require_relative 'application' diff --git a/railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt b/railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt index d69769f631..98689cc30d 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +++ b/railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt @@ -19,7 +19,7 @@ Rails.application.configure do      config.cache_store = :memory_store      config.public_file_server.headers = { -      'Cache-Control' => "public, max-age=#{2.days.seconds.to_i}" +      'Cache-Control' => "public, max-age=#{2.days.to_i}"      }    else      config.action_controller.perform_caching = false diff --git a/railties/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt b/railties/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt index fdf16b4730..a53978bc6e 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +++ b/railties/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt @@ -15,7 +15,7 @@ Rails.application.configure do    # Configure public file server for tests with Cache-Control for performance.    config.public_file_server.enabled = true    config.public_file_server.headers = { -    'Cache-Control' => "public, max-age=#{1.hour.seconds.to_i}" +    'Cache-Control' => "public, max-age=#{1.hour.to_i}"    }    # Show full error reports and disable caching. diff --git a/railties/lib/rails/generators/rails/app/templates/config/initializers/application_controller_renderer.rb b/railties/lib/rails/generators/rails/app/templates/config/initializers/application_controller_renderer.rb index 89d2efab2b..6d56e43900 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/initializers/application_controller_renderer.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/initializers/application_controller_renderer.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  # Be sure to restart your server when you modify this file.  # ActiveSupport::Reloader.to_prepare do diff --git a/railties/lib/rails/generators/rails/app/templates/config/initializers/backtrace_silencers.rb b/railties/lib/rails/generators/rails/app/templates/config/initializers/backtrace_silencers.rb index 59385cdf37..4b63f2893d 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/initializers/backtrace_silencers.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/initializers/backtrace_silencers.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  # Be sure to restart your server when you modify this file.  # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. diff --git a/railties/lib/rails/generators/rails/app/templates/config/initializers/cookies_serializer.rb b/railties/lib/rails/generators/rails/app/templates/config/initializers/cookies_serializer.rb index 5a6a32d371..ee8dff9c99 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/initializers/cookies_serializer.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/initializers/cookies_serializer.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  # Be sure to restart your server when you modify this file.  # Specify a serializer for the signed and encrypted cookie jars. diff --git a/railties/lib/rails/generators/rails/app/templates/config/initializers/cors.rb b/railties/lib/rails/generators/rails/app/templates/config/initializers/cors.rb index 3b1c1b5ed1..82eafe5ca4 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/initializers/cors.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/initializers/cors.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  # Be sure to restart your server when you modify this file.  # Avoid CORS issues when API is called from the frontend app. diff --git a/railties/lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb b/railties/lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb index 4a994e1e7b..7a4f47b4c2 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  # Be sure to restart your server when you modify this file.  # Configure sensitive parameters which will be filtered from the log file. diff --git a/railties/lib/rails/generators/rails/app/templates/config/initializers/inflections.rb b/railties/lib/rails/generators/rails/app/templates/config/initializers/inflections.rb index ac033bf9dc..dc84742212 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/initializers/inflections.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/initializers/inflections.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  # Be sure to restart your server when you modify this file.  # Add new inflection rules using the following format. Inflections diff --git a/railties/lib/rails/generators/rails/app/templates/config/initializers/mime_types.rb b/railties/lib/rails/generators/rails/app/templates/config/initializers/mime_types.rb index dc1899682b..be6fedc535 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/initializers/mime_types.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/initializers/mime_types.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  # Be sure to restart your server when you modify this file.  # Add new mime types for use in respond_to blocks: diff --git a/railties/lib/rails/generators/rails/app/templates/config/puma.rb b/railties/lib/rails/generators/rails/app/templates/config/puma.rb index 1e19380dcb..55bd3da2a7 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/puma.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/puma.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  # Puma can serve each request in a thread from an internal thread pool.  # The `threads` method setting takes two numbers: a minimum and maximum.  # Any libraries that use thread pools should be configured to match diff --git a/railties/lib/rails/generators/rails/app/templates/config/routes.rb b/railties/lib/rails/generators/rails/app/templates/config/routes.rb index 787824f888..47cc16ea2f 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/routes.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/routes.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  Rails.application.routes.draw do    # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html  end diff --git a/railties/lib/rails/generators/rails/app/templates/config/spring.rb b/railties/lib/rails/generators/rails/app/templates/config/spring.rb index 9fa7863f99..c5933e491b 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/spring.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/spring.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  %w[    .ruby-version    .rbenv-vars diff --git a/railties/lib/rails/generators/rails/app/templates/test/application_system_test_case.rb b/railties/lib/rails/generators/rails/app/templates/test/application_system_test_case.rb index d19212abd5..c05709aff8 100644 --- a/railties/lib/rails/generators/rails/app/templates/test/application_system_test_case.rb +++ b/railties/lib/rails/generators/rails/app/templates/test/application_system_test_case.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "test_helper"  class ApplicationSystemTestCase < ActionDispatch::SystemTestCase diff --git a/railties/lib/rails/generators/rails/app/templates/test/test_helper.rb b/railties/lib/rails/generators/rails/app/templates/test/test_helper.rb index 6ad1f11781..b64e90522a 100644 --- a/railties/lib/rails/generators/rails/app/templates/test/test_helper.rb +++ b/railties/lib/rails/generators/rails/app/templates/test/test_helper.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative '../config/environment'  require 'rails/test_help' diff --git a/railties/lib/rails/generators/rails/assets/assets_generator.rb b/railties/lib/rails/generators/rails/assets/assets_generator.rb index 95d00c2d39..ffb695a1f3 100644 --- a/railties/lib/rails/generators/rails/assets/assets_generator.rb +++ b/railties/lib/rails/generators/rails/assets/assets_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Generators      class AssetsGenerator < NamedBase # :nodoc: diff --git a/railties/lib/rails/generators/rails/controller/controller_generator.rb b/railties/lib/rails/generators/rails/controller/controller_generator.rb index 06bdb8b5ce..ab0594fc3c 100644 --- a/railties/lib/rails/generators/rails/controller/controller_generator.rb +++ b/railties/lib/rails/generators/rails/controller/controller_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Generators      class ControllerGenerator < NamedBase # :nodoc: @@ -13,12 +15,8 @@ module Rails        end        def add_routes -        unless options[:skip_routes] -          actions.reverse_each do |action| -            # route prepends two spaces onto the front of the string that is passed, this corrects that. -            route indent(generate_routing_code(action), 2)[2..-1] -          end -        end +        return if options[:skip_routes] +        route generate_routing_code(actions)        end        hook_for :template_engine, :test_framework, :helper, :assets @@ -26,11 +24,12 @@ module Rails        private          # This method creates nested route entry for namespaced resources. -        # For eg. rails g controller foo/bar/baz index +        # For eg. rails g controller foo/bar/baz index show          # Will generate -          # namespace :foo do          #   namespace :bar do          #     get 'baz/index' +        #     get 'baz/show'          #   end          # end          def generate_routing_code(action) @@ -47,7 +46,9 @@ module Rails            # Create route            #     get 'baz/index' -          lines << indent(%{get '#{file_name}/#{action}'\n}, depth * 2) +          actions.each do |action| +            lines << indent(%{get '#{file_name}/#{action}'\n}, depth * 2) +          end            # Create `end` ladder            #   end diff --git a/railties/lib/rails/generators/rails/controller/templates/controller.rb b/railties/lib/rails/generators/rails/controller/templates/controller.rb index 633e0b3177..835b2923f3 100644 --- a/railties/lib/rails/generators/rails/controller/templates/controller.rb +++ b/railties/lib/rails/generators/rails/controller/templates/controller.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  <% if namespaced? -%>  require_dependency "<%= namespaced_path %>/application_controller" diff --git a/railties/lib/rails/generators/rails/encrypted_secrets/encrypted_secrets_generator.rb b/railties/lib/rails/generators/rails/encrypted_secrets/encrypted_secrets_generator.rb index 8ba0fc4c5b..d054e8cad2 100644 --- a/railties/lib/rails/generators/rails/encrypted_secrets/encrypted_secrets_generator.rb +++ b/railties/lib/rails/generators/rails/encrypted_secrets/encrypted_secrets_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../base"  require_relative "../../../secrets" diff --git a/railties/lib/rails/generators/rails/generator/generator_generator.rb b/railties/lib/rails/generators/rails/generator/generator_generator.rb index 299a7da5f1..747acd68d1 100644 --- a/railties/lib/rails/generators/rails/generator/generator_generator.rb +++ b/railties/lib/rails/generators/rails/generator/generator_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Generators      class GeneratorGenerator < NamedBase # :nodoc: diff --git a/railties/lib/rails/generators/rails/helper/helper_generator.rb b/railties/lib/rails/generators/rails/helper/helper_generator.rb index e48b1b6fb3..3837c10ca0 100644 --- a/railties/lib/rails/generators/rails/helper/helper_generator.rb +++ b/railties/lib/rails/generators/rails/helper/helper_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Generators      class HelperGenerator < NamedBase # :nodoc: diff --git a/railties/lib/rails/generators/rails/helper/templates/helper.rb b/railties/lib/rails/generators/rails/helper/templates/helper.rb index b4173151b4..538ab221e7 100644 --- a/railties/lib/rails/generators/rails/helper/templates/helper.rb +++ b/railties/lib/rails/generators/rails/helper/templates/helper.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  <% module_namespacing do -%>  module <%= class_name %>Helper  end diff --git a/railties/lib/rails/generators/rails/integration_test/integration_test_generator.rb b/railties/lib/rails/generators/rails/integration_test/integration_test_generator.rb index 70770ddcb8..975dd8b90c 100644 --- a/railties/lib/rails/generators/rails/integration_test/integration_test_generator.rb +++ b/railties/lib/rails/generators/rails/integration_test/integration_test_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Generators      class IntegrationTestGenerator < NamedBase # :nodoc: diff --git a/railties/lib/rails/generators/rails/migration/migration_generator.rb b/railties/lib/rails/generators/rails/migration/migration_generator.rb index fca2a8fef4..c331c135e3 100644 --- a/railties/lib/rails/generators/rails/migration/migration_generator.rb +++ b/railties/lib/rails/generators/rails/migration/migration_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Generators      class MigrationGenerator < NamedBase # :nodoc: diff --git a/railties/lib/rails/generators/rails/model/model_generator.rb b/railties/lib/rails/generators/rails/model/model_generator.rb index 8c8aac54bf..1dca03e0bb 100644 --- a/railties/lib/rails/generators/rails/model/model_generator.rb +++ b/railties/lib/rails/generators/rails/model/model_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../model_helpers"  module Rails diff --git a/railties/lib/rails/generators/rails/plugin/plugin_generator.rb b/railties/lib/rails/generators/rails/plugin/plugin_generator.rb index a40fa78132..a0de708913 100644 --- a/railties/lib/rails/generators/rails/plugin/plugin_generator.rb +++ b/railties/lib/rails/generators/rails/plugin/plugin_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support/core_ext/hash/slice"  require_relative "../app/app_generator"  require "date" @@ -87,14 +89,13 @@ task default: :test      PASSTHROUGH_OPTIONS = [        :skip_active_record, :skip_action_mailer, :skip_javascript, :skip_action_cable, :skip_sprockets, :database, -      :javascript, :quiet, :pretend, :force, :skip +      :javascript, :api, :quiet, :pretend, :skip      ]      def generate_test_dummy(force = false)        opts = (options || {}).slice(*PASSTHROUGH_OPTIONS)        opts[:force] = force        opts[:skip_bundle] = true -      opts[:api] = options.api?        opts[:skip_listen] = true        opts[:skip_git] = true        opts[:skip_turbolinks] = true diff --git a/railties/lib/rails/generators/rails/plugin/templates/Rakefile b/railties/lib/rails/generators/rails/plugin/templates/Rakefile index f3efe21cf1..86307fa053 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/Rakefile +++ b/railties/lib/rails/generators/rails/plugin/templates/Rakefile @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  begin    require 'bundler/setup'  rescue LoadError diff --git a/railties/lib/rails/generators/rails/plugin/templates/config/routes.rb b/railties/lib/rails/generators/rails/plugin/templates/config/routes.rb index 154452bfe5..791e76f1c3 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/config/routes.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/config/routes.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  <% if mountable? -%>  <%= camelized_modules %>::Engine.routes.draw do  <% else -%> diff --git a/railties/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%.rb b/railties/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%.rb index 3285055eb7..a3071ba45a 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  <% if engine? -%>  require "<%= namespaced_name %>/engine"  <% else -%> diff --git a/railties/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/engine.rb b/railties/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/engine.rb index 8938770fc4..91faa26120 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/engine.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/engine.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  <%= wrap_in_modules <<-rb.strip_heredoc    class Engine < ::Rails::Engine    #{mountable? ? '  isolate_namespace ' + camelized_modules : ' '} diff --git a/railties/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/railtie.rb b/railties/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/railtie.rb index 7bdf4ee5fb..efae25ca4a 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/railtie.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/railtie.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  <%= wrap_in_modules <<-rb.strip_heredoc    class Railtie < ::Rails::Railtie    end diff --git a/railties/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/version.rb b/railties/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/version.rb index b08f4ef9ae..c30d3460f3 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/version.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/version.rb @@ -1 +1,3 @@ +# frozen_string_literal: true +  <%= wrap_in_modules "VERSION = '0.1.0'" %> diff --git a/railties/lib/rails/generators/rails/plugin/templates/lib/tasks/%namespaced_name%_tasks.rake b/railties/lib/rails/generators/rails/plugin/templates/lib/tasks/%namespaced_name%_tasks.rake index 88a2c4120f..9c8c0544b7 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/lib/tasks/%namespaced_name%_tasks.rake +++ b/railties/lib/rails/generators/rails/plugin/templates/lib/tasks/%namespaced_name%_tasks.rake @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  # desc "Explaining what the task does"  # task :<%= underscored_name %> do  #   # Task goes here diff --git a/railties/lib/rails/generators/rails/plugin/templates/rails/application.rb b/railties/lib/rails/generators/rails/plugin/templates/rails/application.rb index 47b56ae3df..9f9da645f9 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/rails/application.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/rails/application.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative 'boot'  <% if include_all_railties? -%> diff --git a/railties/lib/rails/generators/rails/plugin/templates/rails/boot.rb b/railties/lib/rails/generators/rails/plugin/templates/rails/boot.rb index c9aef85d40..6d2cba07a2 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/rails/boot.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/rails/boot.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  # Set up gems listed in the Gemfile.  ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../Gemfile', __dir__) diff --git a/railties/lib/rails/generators/rails/plugin/templates/rails/routes.rb b/railties/lib/rails/generators/rails/plugin/templates/rails/routes.rb index 694510edc0..f571f201a1 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/rails/routes.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/rails/routes.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  Rails.application.routes.draw do    mount <%= camelized_modules %>::Engine => "/<%= name %>"  end diff --git a/railties/lib/rails/generators/rails/plugin/templates/test/%namespaced_name%_test.rb b/railties/lib/rails/generators/rails/plugin/templates/test/%namespaced_name%_test.rb index 1ee05d7871..f37369420f 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/test/%namespaced_name%_test.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/test/%namespaced_name%_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require 'test_helper'  class <%= camelized_modules %>::Test < ActiveSupport::TestCase diff --git a/railties/lib/rails/generators/rails/plugin/templates/test/application_system_test_case.rb b/railties/lib/rails/generators/rails/plugin/templates/test/application_system_test_case.rb index d19212abd5..c05709aff8 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/test/application_system_test_case.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/test/application_system_test_case.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "test_helper"  class ApplicationSystemTestCase < ActionDispatch::SystemTestCase diff --git a/railties/lib/rails/generators/rails/plugin/templates/test/integration/navigation_test.rb b/railties/lib/rails/generators/rails/plugin/templates/test/integration/navigation_test.rb index f5d1ec2046..dc58e44e8b 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/test/integration/navigation_test.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/test/integration/navigation_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require 'test_helper'  class NavigationTest < ActionDispatch::IntegrationTest diff --git a/railties/lib/rails/generators/rails/plugin/templates/test/test_helper.rb b/railties/lib/rails/generators/rails/plugin/templates/test/test_helper.rb index c281fc42ca..a0bab22764 100644 --- a/railties/lib/rails/generators/rails/plugin/templates/test/test_helper.rb +++ b/railties/lib/rails/generators/rails/plugin/templates/test/test_helper.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "<%= File.join('..', options[:dummy_path], 'config/environment') -%>"  <% unless options[:skip_active_record] -%>  ActiveRecord::Migrator.migrations_paths = [File.expand_path("../<%= options[:dummy_path] -%>/db/migrate", __dir__)] diff --git a/railties/lib/rails/generators/rails/resource/resource_generator.rb b/railties/lib/rails/generators/rails/resource/resource_generator.rb index fa700c598a..74b1574863 100644 --- a/railties/lib/rails/generators/rails/resource/resource_generator.rb +++ b/railties/lib/rails/generators/rails/resource/resource_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../resource_helpers"  require_relative "../model/model_generator" diff --git a/railties/lib/rails/generators/rails/resource_route/resource_route_generator.rb b/railties/lib/rails/generators/rails/resource_route/resource_route_generator.rb index 42705107ae..9a92991efe 100644 --- a/railties/lib/rails/generators/rails/resource_route/resource_route_generator.rb +++ b/railties/lib/rails/generators/rails/resource_route/resource_route_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Generators      class ResourceRouteGenerator < NamedBase # :nodoc: @@ -15,37 +17,32 @@ module Rails        def add_resource_route          return if options[:actions].present? -        # iterates over all namespaces and opens up blocks -        regular_class_path.each_with_index do |namespace, index| -          write("namespace :#{namespace} do", index + 1) +        depth = 0 +        lines = [] + +        # Create 'namespace' ladder +        # namespace :foo do +        #   namespace :bar do +        regular_class_path.each do |ns| +          lines << indent("namespace :#{ns} do\n", depth * 2) +          depth += 1          end          # inserts the primary resource -        write("resources :#{file_name.pluralize}", route_length + 1) +        # Create route +        #     resources 'products' +        lines << indent(%{resources :#{file_name.pluralize}\n}, depth * 2) -        # ends blocks -        regular_class_path.each_index do |index| -          write("end", route_length - index) +        # Create `end` ladder +        #   end +        # end +        until depth.zero? +          depth -= 1 +          lines << indent("end\n", depth * 2)          end -        # route prepends two spaces onto the front of the string that is passed, this corrects that. -        # Also it adds a \n to the end of each line, as route already adds that -        # we need to correct that too. -        route route_string[2..-2] +        route lines.join        end - -      private -        def route_string -          @route_string ||= "" -        end - -        def write(str, indent) -          route_string << "#{"  " * indent}#{str}\n" -        end - -        def route_length -          regular_class_path.length -        end      end    end  end diff --git a/railties/lib/rails/generators/rails/scaffold/scaffold_generator.rb b/railties/lib/rails/generators/rails/scaffold/scaffold_generator.rb index 3f92af4295..c0fb873d36 100644 --- a/railties/lib/rails/generators/rails/scaffold/scaffold_generator.rb +++ b/railties/lib/rails/generators/rails/scaffold/scaffold_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../resource/resource_generator"  module Rails diff --git a/railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb b/railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb index 291a208498..601a4b3a6e 100644 --- a/railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb +++ b/railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../resource_helpers"  module Rails diff --git a/railties/lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb b/railties/lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb index 400afec6dc..50fae26c80 100644 --- a/railties/lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb +++ b/railties/lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  <% if namespaced? -%>  require_dependency "<%= namespaced_path %>/application_controller" diff --git a/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb b/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb index 42b9e34274..fb3e778252 100644 --- a/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb +++ b/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  <% if namespaced? -%>  require_dependency "<%= namespaced_path %>/application_controller" diff --git a/railties/lib/rails/generators/rails/system_test/system_test_generator.rb b/railties/lib/rails/generators/rails/system_test/system_test_generator.rb index 901120e892..7169e1bd3b 100644 --- a/railties/lib/rails/generators/rails/system_test/system_test_generator.rb +++ b/railties/lib/rails/generators/rails/system_test/system_test_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Generators      class SystemTestGenerator < NamedBase # :nodoc: diff --git a/railties/lib/rails/generators/rails/task/task_generator.rb b/railties/lib/rails/generators/rails/task/task_generator.rb index bb96bdf0dd..b7290a7447 100644 --- a/railties/lib/rails/generators/rails/task/task_generator.rb +++ b/railties/lib/rails/generators/rails/task/task_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Generators      class TaskGenerator < NamedBase # :nodoc: diff --git a/railties/lib/rails/generators/rails/task/templates/task.rb b/railties/lib/rails/generators/rails/task/templates/task.rb index 1e3ed5f158..82626afce0 100644 --- a/railties/lib/rails/generators/rails/task/templates/task.rb +++ b/railties/lib/rails/generators/rails/task/templates/task.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  namespace :<%= file_name %> do  <% actions.each do |action| -%>    desc "TODO" diff --git a/railties/lib/rails/generators/resource_helpers.rb b/railties/lib/rails/generators/resource_helpers.rb index 170da6cb0d..8bd5110940 100644 --- a/railties/lib/rails/generators/resource_helpers.rb +++ b/railties/lib/rails/generators/resource_helpers.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "active_model"  require_relative "model_helpers" diff --git a/railties/lib/rails/generators/test_case.rb b/railties/lib/rails/generators/test_case.rb index 6cebd217a7..9c06eed95a 100644 --- a/railties/lib/rails/generators/test_case.rb +++ b/railties/lib/rails/generators/test_case.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../generators"  require_relative "testing/behaviour"  require_relative "testing/setup_and_teardown" diff --git a/railties/lib/rails/generators/test_unit.rb b/railties/lib/rails/generators/test_unit.rb index 986e673611..1aa03ace99 100644 --- a/railties/lib/rails/generators/test_unit.rb +++ b/railties/lib/rails/generators/test_unit.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "named_base"  module TestUnit # :nodoc: diff --git a/railties/lib/rails/generators/test_unit/controller/controller_generator.rb b/railties/lib/rails/generators/test_unit/controller/controller_generator.rb index 72a650e7d9..3947b74205 100644 --- a/railties/lib/rails/generators/test_unit/controller/controller_generator.rb +++ b/railties/lib/rails/generators/test_unit/controller/controller_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../test_unit"  module TestUnit # :nodoc: diff --git a/railties/lib/rails/generators/test_unit/controller/templates/functional_test.rb b/railties/lib/rails/generators/test_unit/controller/templates/functional_test.rb index ff41fef9e9..4efa977a89 100644 --- a/railties/lib/rails/generators/test_unit/controller/templates/functional_test.rb +++ b/railties/lib/rails/generators/test_unit/controller/templates/functional_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require 'test_helper'  <% module_namespacing do -%> diff --git a/railties/lib/rails/generators/test_unit/generator/generator_generator.rb b/railties/lib/rails/generators/test_unit/generator/generator_generator.rb index abc3615cfd..9f79e9eee1 100644 --- a/railties/lib/rails/generators/test_unit/generator/generator_generator.rb +++ b/railties/lib/rails/generators/test_unit/generator/generator_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../test_unit"  module TestUnit # :nodoc: diff --git a/railties/lib/rails/generators/test_unit/generator/templates/generator_test.rb b/railties/lib/rails/generators/test_unit/generator/templates/generator_test.rb index a7f1fc4fba..e6fb6c5ff4 100644 --- a/railties/lib/rails/generators/test_unit/generator/templates/generator_test.rb +++ b/railties/lib/rails/generators/test_unit/generator/templates/generator_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require 'test_helper'  require '<%= generator_path %>' diff --git a/railties/lib/rails/generators/test_unit/helper/helper_generator.rb b/railties/lib/rails/generators/test_unit/helper/helper_generator.rb index 2020e7785e..1c60c3573f 100644 --- a/railties/lib/rails/generators/test_unit/helper/helper_generator.rb +++ b/railties/lib/rails/generators/test_unit/helper/helper_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../test_unit"  module TestUnit # :nodoc: diff --git a/railties/lib/rails/generators/test_unit/integration/integration_generator.rb b/railties/lib/rails/generators/test_unit/integration/integration_generator.rb index a31a795212..c859ba5e4e 100644 --- a/railties/lib/rails/generators/test_unit/integration/integration_generator.rb +++ b/railties/lib/rails/generators/test_unit/integration/integration_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../test_unit"  module TestUnit # :nodoc: diff --git a/railties/lib/rails/generators/test_unit/integration/templates/integration_test.rb b/railties/lib/rails/generators/test_unit/integration/templates/integration_test.rb index 118e0f1271..65708b6c3b 100644 --- a/railties/lib/rails/generators/test_unit/integration/templates/integration_test.rb +++ b/railties/lib/rails/generators/test_unit/integration/templates/integration_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require 'test_helper'  <% module_namespacing do -%> diff --git a/railties/lib/rails/generators/test_unit/job/job_generator.rb b/railties/lib/rails/generators/test_unit/job/job_generator.rb index f3ea7cd170..cbbcd1cd4e 100644 --- a/railties/lib/rails/generators/test_unit/job/job_generator.rb +++ b/railties/lib/rails/generators/test_unit/job/job_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../test_unit"  module TestUnit # :nodoc: diff --git a/railties/lib/rails/generators/test_unit/mailer/mailer_generator.rb b/railties/lib/rails/generators/test_unit/mailer/mailer_generator.rb index 274755b057..45f82158e9 100644 --- a/railties/lib/rails/generators/test_unit/mailer/mailer_generator.rb +++ b/railties/lib/rails/generators/test_unit/mailer/mailer_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../test_unit"  module TestUnit # :nodoc: diff --git a/railties/lib/rails/generators/test_unit/mailer/templates/functional_test.rb b/railties/lib/rails/generators/test_unit/mailer/templates/functional_test.rb index a2f2d30de5..1ec3a2f360 100644 --- a/railties/lib/rails/generators/test_unit/mailer/templates/functional_test.rb +++ b/railties/lib/rails/generators/test_unit/mailer/templates/functional_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require 'test_helper'  <% module_namespacing do -%> diff --git a/railties/lib/rails/generators/test_unit/mailer/templates/preview.rb b/railties/lib/rails/generators/test_unit/mailer/templates/preview.rb index b063cbc47b..9876210b6c 100644 --- a/railties/lib/rails/generators/test_unit/mailer/templates/preview.rb +++ b/railties/lib/rails/generators/test_unit/mailer/templates/preview.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  <% module_namespacing do -%>  # Preview all emails at http://localhost:3000/rails/mailers/<%= file_path %>_mailer  class <%= class_name %>MailerPreview < ActionMailer::Preview diff --git a/railties/lib/rails/generators/test_unit/model/model_generator.rb b/railties/lib/rails/generators/test_unit/model/model_generator.rb index fef640f947..2b1cc50c20 100644 --- a/railties/lib/rails/generators/test_unit/model/model_generator.rb +++ b/railties/lib/rails/generators/test_unit/model/model_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../test_unit"  module TestUnit # :nodoc: diff --git a/railties/lib/rails/generators/test_unit/model/templates/unit_test.rb b/railties/lib/rails/generators/test_unit/model/templates/unit_test.rb index c9bc7d5b90..5f1ffeb33b 100644 --- a/railties/lib/rails/generators/test_unit/model/templates/unit_test.rb +++ b/railties/lib/rails/generators/test_unit/model/templates/unit_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require 'test_helper'  <% module_namespacing do -%> diff --git a/railties/lib/rails/generators/test_unit/plugin/plugin_generator.rb b/railties/lib/rails/generators/test_unit/plugin/plugin_generator.rb index f324000235..10fe27b2c3 100644 --- a/railties/lib/rails/generators/test_unit/plugin/plugin_generator.rb +++ b/railties/lib/rails/generators/test_unit/plugin/plugin_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../test_unit"  module TestUnit # :nodoc: diff --git a/railties/lib/rails/generators/test_unit/plugin/templates/test_helper.rb b/railties/lib/rails/generators/test_unit/plugin/templates/test_helper.rb index 30a861f09d..2147b09568 100644 --- a/railties/lib/rails/generators/test_unit/plugin/templates/test_helper.rb +++ b/railties/lib/rails/generators/test_unit/plugin/templates/test_helper.rb @@ -1,2 +1,4 @@ +# frozen_string_literal: true +  require 'active_support/testing/autorun'  require 'active_support' diff --git a/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb b/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb index fbe5be3cdc..23d5c63614 100644 --- a/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +++ b/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../test_unit"  require_relative "../../resource_helpers" diff --git a/railties/lib/rails/generators/test_unit/scaffold/templates/api_functional_test.rb b/railties/lib/rails/generators/test_unit/scaffold/templates/api_functional_test.rb index f21861d8e6..2ef93b8aea 100644 --- a/railties/lib/rails/generators/test_unit/scaffold/templates/api_functional_test.rb +++ b/railties/lib/rails/generators/test_unit/scaffold/templates/api_functional_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require 'test_helper'  <% module_namespacing do -%> diff --git a/railties/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb b/railties/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb index 195d60be20..bcf9392bd1 100644 --- a/railties/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb +++ b/railties/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require 'test_helper'  <% module_namespacing do -%> diff --git a/railties/lib/rails/generators/test_unit/scaffold/templates/system_test.rb b/railties/lib/rails/generators/test_unit/scaffold/templates/system_test.rb index f83f5a5c62..ba8bdc192e 100644 --- a/railties/lib/rails/generators/test_unit/scaffold/templates/system_test.rb +++ b/railties/lib/rails/generators/test_unit/scaffold/templates/system_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "application_system_test_case"  <% module_namespacing do -%> diff --git a/railties/lib/rails/generators/test_unit/system/system_generator.rb b/railties/lib/rails/generators/test_unit/system/system_generator.rb index 95cc86cc8a..d3acbfd738 100644 --- a/railties/lib/rails/generators/test_unit/system/system_generator.rb +++ b/railties/lib/rails/generators/test_unit/system/system_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../../test_unit"  module TestUnit # :nodoc: diff --git a/railties/lib/rails/generators/test_unit/system/templates/application_system_test_case.rb b/railties/lib/rails/generators/test_unit/system/templates/application_system_test_case.rb index d19212abd5..c05709aff8 100644 --- a/railties/lib/rails/generators/test_unit/system/templates/application_system_test_case.rb +++ b/railties/lib/rails/generators/test_unit/system/templates/application_system_test_case.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "test_helper"  class ApplicationSystemTestCase < ActionDispatch::SystemTestCase diff --git a/railties/lib/rails/generators/test_unit/system/templates/system_test.rb b/railties/lib/rails/generators/test_unit/system/templates/system_test.rb index b5ce2ba5c8..cfac061cd1 100644 --- a/railties/lib/rails/generators/test_unit/system/templates/system_test.rb +++ b/railties/lib/rails/generators/test_unit/system/templates/system_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "application_system_test_case"  class <%= class_name.pluralize %>Test < ApplicationSystemTestCase diff --git a/railties/lib/rails/generators/testing/assertions.rb b/railties/lib/rails/generators/testing/assertions.rb index 9ac70f60c0..c4cff9090b 100644 --- a/railties/lib/rails/generators/testing/assertions.rb +++ b/railties/lib/rails/generators/testing/assertions.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Generators      module Testing diff --git a/railties/lib/rails/generators/testing/behaviour.rb b/railties/lib/rails/generators/testing/behaviour.rb index ede181a1bc..97a09c1166 100644 --- a/railties/lib/rails/generators/testing/behaviour.rb +++ b/railties/lib/rails/generators/testing/behaviour.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support/core_ext/class/attribute"  require "active_support/core_ext/module/delegation"  require "active_support/core_ext/hash/reverse_merge" diff --git a/railties/lib/rails/generators/testing/setup_and_teardown.rb b/railties/lib/rails/generators/testing/setup_and_teardown.rb index 73102a283f..4374aa5b8c 100644 --- a/railties/lib/rails/generators/testing/setup_and_teardown.rb +++ b/railties/lib/rails/generators/testing/setup_and_teardown.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Generators      module Testing diff --git a/railties/lib/rails/info.rb b/railties/lib/rails/info.rb index db08d578c0..d8f361f524 100644 --- a/railties/lib/rails/info.rb +++ b/railties/lib/rails/info.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "cgi"  module Rails @@ -39,7 +41,7 @@ module Rails        alias inspect to_s        def to_html -        "<table>".tap do |table| +        "<table>".dup.tap do |table|            properties.each do |(name, value)|              table << %(<tr><td class="name">#{CGI.escapeHTML(name.to_s)}</td>)              formatted_value = if value.kind_of?(Array) diff --git a/railties/lib/rails/info_controller.rb b/railties/lib/rails/info_controller.rb index 9fe6ef5a93..6535b5b6ad 100644 --- a/railties/lib/rails/info_controller.rb +++ b/railties/lib/rails/info_controller.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "application_controller"  require "action_dispatch/routing/inspector" diff --git a/railties/lib/rails/initializable.rb b/railties/lib/rails/initializable.rb index a2615d5efd..5410e17153 100644 --- a/railties/lib/rails/initializable.rb +++ b/railties/lib/rails/initializable.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "tsort"  module Rails diff --git a/railties/lib/rails/mailers_controller.rb b/railties/lib/rails/mailers_controller.rb index 5b9af97617..6bd3161fdd 100644 --- a/railties/lib/rails/mailers_controller.rb +++ b/railties/lib/rails/mailers_controller.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "application_controller"  class Rails::MailersController < Rails::ApplicationController # :nodoc: diff --git a/railties/lib/rails/paths.rb b/railties/lib/rails/paths.rb index 6bdb673215..87222563fd 100644 --- a/railties/lib/rails/paths.rb +++ b/railties/lib/rails/paths.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Paths      # This object is an extended hash that behaves as root of the <tt>Rails::Paths</tt> system. diff --git a/railties/lib/rails/plugin/test.rb b/railties/lib/rails/plugin/test.rb index 40070c0eb3..2426521e35 100644 --- a/railties/lib/rails/plugin/test.rb +++ b/railties/lib/rails/plugin/test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../test_unit/runner"  require_relative "../test_unit/reporter" diff --git a/railties/lib/rails/rack.rb b/railties/lib/rails/rack.rb index a4c4527a72..579fb25cc4 100644 --- a/railties/lib/rails/rack.rb +++ b/railties/lib/rails/rack.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  module Rails    module Rack      autoload :Logger, "rails/rack/logger" diff --git a/railties/lib/rails/rack/logger.rb b/railties/lib/rails/rack/logger.rb index 853fc26051..ec5212ee76 100644 --- a/railties/lib/rails/rack/logger.rb +++ b/railties/lib/rails/rack/logger.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support/core_ext/time/conversions"  require "active_support/core_ext/object/blank"  require "active_support/log_subscriber" diff --git a/railties/lib/rails/railtie.rb b/railties/lib/rails/railtie.rb index a2a0192cfc..42c4a82b1b 100644 --- a/railties/lib/rails/railtie.rb +++ b/railties/lib/rails/railtie.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "initializable"  require "active_support/inflector"  require "active_support/core_ext/module/introspection" diff --git a/railties/lib/rails/railtie/configurable.rb b/railties/lib/rails/railtie/configurable.rb index 2a8295426e..7f42fae10a 100644 --- a/railties/lib/rails/railtie/configurable.rb +++ b/railties/lib/rails/railtie/configurable.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support/concern"  module Rails diff --git a/railties/lib/rails/railtie/configuration.rb b/railties/lib/rails/railtie/configuration.rb index 275d2039f6..d9997759f2 100644 --- a/railties/lib/rails/railtie/configuration.rb +++ b/railties/lib/rails/railtie/configuration.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../configuration"  module Rails diff --git a/railties/lib/rails/ruby_version_check.rb b/railties/lib/rails/ruby_version_check.rb index b212835df7..76b6b80d28 100644 --- a/railties/lib/rails/ruby_version_check.rb +++ b/railties/lib/rails/ruby_version_check.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  if RUBY_VERSION < "2.2.2" && RUBY_ENGINE == "ruby"    desc = defined?(RUBY_DESCRIPTION) ? RUBY_DESCRIPTION : "ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE})"    abort <<-end_message diff --git a/railties/lib/rails/secrets.rb b/railties/lib/rails/secrets.rb index 0883857c55..33821dd759 100644 --- a/railties/lib/rails/secrets.rb +++ b/railties/lib/rails/secrets.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "yaml"  require "active_support/message_encryptor"  require "active_support/core_ext/string/strip" diff --git a/railties/lib/rails/source_annotation_extractor.rb b/railties/lib/rails/source_annotation_extractor.rb index e9088c44ce..d6cde227c5 100644 --- a/railties/lib/rails/source_annotation_extractor.rb +++ b/railties/lib/rails/source_annotation_extractor.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  # Implements the logic behind the rake tasks for annotations like  #  #   rails notes @@ -45,7 +47,7 @@ class SourceAnnotationExtractor      # If +options+ has a flag <tt>:tag</tt> the tag is shown as in the example above.      # Otherwise the string contains just line and text.      def to_s(options = {}) -      s = "[#{line.to_s.rjust(options[:indent])}] " +      s = "[#{line.to_s.rjust(options[:indent])}] ".dup        s << "[#{tag}] " if options[:tag]        s << text      end diff --git a/railties/lib/rails/tasks.rb b/railties/lib/rails/tasks.rb index c0a50e5bda..2f644a20c9 100644 --- a/railties/lib/rails/tasks.rb +++ b/railties/lib/rails/tasks.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "rake"  # Load Rails Rakefile extensions diff --git a/railties/lib/rails/tasks/annotations.rake b/railties/lib/rails/tasks/annotations.rake index ae427249ef..931f81ac7e 100644 --- a/railties/lib/rails/tasks/annotations.rake +++ b/railties/lib/rails/tasks/annotations.rake @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../source_annotation_extractor"  desc "Enumerate all annotations (use notes:optimize, :fixme, :todo for focus)" diff --git a/railties/lib/rails/tasks/dev.rake b/railties/lib/rails/tasks/dev.rake index b2447cbcfc..90fd3ccd8b 100644 --- a/railties/lib/rails/tasks/dev.rake +++ b/railties/lib/rails/tasks/dev.rake @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "../dev_caching"  namespace :dev do diff --git a/railties/lib/rails/tasks/engine.rake b/railties/lib/rails/tasks/engine.rake index a8d67322da..3ce49a1641 100644 --- a/railties/lib/rails/tasks/engine.rake +++ b/railties/lib/rails/tasks/engine.rake @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  task "load_app" do    namespace :app do      load APP_RAKEFILE diff --git a/railties/lib/rails/tasks/framework.rake b/railties/lib/rails/tasks/framework.rake index 6c6e86d78d..0f578fe270 100644 --- a/railties/lib/rails/tasks/framework.rake +++ b/railties/lib/rails/tasks/framework.rake @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  namespace :app do    desc "Update configs and some other initially generated files (or use just update:configs or update:bin)"    task update: [ "update:configs", "update:bin", "update:upgrade_guide_info" ] diff --git a/railties/lib/rails/tasks/initializers.rake b/railties/lib/rails/tasks/initializers.rake index 6522f2ae5a..ae85cb0f86 100644 --- a/railties/lib/rails/tasks/initializers.rake +++ b/railties/lib/rails/tasks/initializers.rake @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  desc "Print out all defined initializers in the order they are invoked by Rails."  task initializers: :environment do    Rails.application.initializers.tsort_each do |initializer| diff --git a/railties/lib/rails/tasks/log.rake b/railties/lib/rails/tasks/log.rake index ba796845d7..e219277d23 100644 --- a/railties/lib/rails/tasks/log.rake +++ b/railties/lib/rails/tasks/log.rake @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  namespace :log do    ## diff --git a/railties/lib/rails/tasks/middleware.rake b/railties/lib/rails/tasks/middleware.rake index fd98be1ea9..3a7f86fdcb 100644 --- a/railties/lib/rails/tasks/middleware.rake +++ b/railties/lib/rails/tasks/middleware.rake @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  desc "Prints out your Rack middleware stack"  task middleware: :environment do    Rails.configuration.middleware.each do |middleware| diff --git a/railties/lib/rails/tasks/misc.rake b/railties/lib/rails/tasks/misc.rake index 29ea0ff804..e7786aa622 100644 --- a/railties/lib/rails/tasks/misc.rake +++ b/railties/lib/rails/tasks/misc.rake @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  desc "Generate a cryptographically secure secret key (this is typically used to generate a secret for cookie sessions)."  task :secret do    require "securerandom" diff --git a/railties/lib/rails/tasks/restart.rake b/railties/lib/rails/tasks/restart.rake index 03177d9954..5b6bb8ddd6 100644 --- a/railties/lib/rails/tasks/restart.rake +++ b/railties/lib/rails/tasks/restart.rake @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  desc "Restart app by touching tmp/restart.txt"  task :restart do    verbose(false) do diff --git a/railties/lib/rails/tasks/routes.rake b/railties/lib/rails/tasks/routes.rake index 215fb2ceb5..403286d280 100644 --- a/railties/lib/rails/tasks/routes.rake +++ b/railties/lib/rails/tasks/routes.rake @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "optparse"  desc "Print out all defined routes in match order, with names. Target specific controller with -c option, or grep routes using -g option" diff --git a/railties/lib/rails/tasks/statistics.rake b/railties/lib/rails/tasks/statistics.rake index 0670050d34..0449a13586 100644 --- a/railties/lib/rails/tasks/statistics.rake +++ b/railties/lib/rails/tasks/statistics.rake @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  # While global constants are bad, many 3rd party tools depend on this one (e.g  # rspec-rails & cucumber-rails). So a deprecation warning is needed if we want  # to remove it. diff --git a/railties/lib/rails/tasks/tmp.rake b/railties/lib/rails/tasks/tmp.rake index 3d8ced1bf3..7340b41ee4 100644 --- a/railties/lib/rails/tasks/tmp.rake +++ b/railties/lib/rails/tasks/tmp.rake @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  namespace :tmp do    desc "Clear cache, socket and screenshot files from tmp/ (narrow w/ tmp:cache:clear, tmp:sockets:clear, tmp:screenshots:clear)"    task clear: ["tmp:cache:clear", "tmp:sockets:clear", "tmp:screenshots:clear"] diff --git a/railties/lib/rails/tasks/yarn.rake b/railties/lib/rails/tasks/yarn.rake index 6cb19b7282..48da7ffc51 100644 --- a/railties/lib/rails/tasks/yarn.rake +++ b/railties/lib/rails/tasks/yarn.rake @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  namespace :yarn do    desc "Install all JavaScript dependencies as specified via Yarn"    task :install do diff --git a/railties/lib/rails/test_help.rb b/railties/lib/rails/test_help.rb index 33b6740cf1..f755474488 100644 --- a/railties/lib/rails/test_help.rb +++ b/railties/lib/rails/test_help.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  # Make double-sure the RAILS_ENV is not set to production,  # so fixtures aren't loaded into that environment  abort("Abort testing: Your Rails environment is running in production mode!") if Rails.env.production? diff --git a/railties/lib/rails/test_unit/line_filtering.rb b/railties/lib/rails/test_unit/line_filtering.rb index 289afae331..e8b891d07b 100644 --- a/railties/lib/rails/test_unit/line_filtering.rb +++ b/railties/lib/rails/test_unit/line_filtering.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "method_source"  require "rails/test_unit/runner" diff --git a/railties/lib/rails/test_unit/railtie.rb b/railties/lib/rails/test_unit/railtie.rb index f1965f3b12..05f9a177d0 100644 --- a/railties/lib/rails/test_unit/railtie.rb +++ b/railties/lib/rails/test_unit/railtie.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "line_filtering"  if defined?(Rake.application) && Rake.application.top_level_tasks.grep(/^(default$|test(:|$))/).any? diff --git a/railties/lib/rails/test_unit/reporter.rb b/railties/lib/rails/test_unit/reporter.rb index ab28034d27..7d3164f1eb 100644 --- a/railties/lib/rails/test_unit/reporter.rb +++ b/railties/lib/rails/test_unit/reporter.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require "active_support/core_ext/class/attribute"  require "minitest" diff --git a/railties/lib/rails/test_unit/runner.rb b/railties/lib/rails/test_unit/runner.rb index 1f3a248bcb..5c2f6451e2 100644 --- a/railties/lib/rails/test_unit/runner.rb +++ b/railties/lib/rails/test_unit/runner.rb @@ -11,7 +11,7 @@ module Rails        mattr_reader :filters, default: []        class << self -        def options(opts) +        def attach_before_load_options(opts)            opts.on("--warnings", "-w", "Run with Ruby warnings enabled") {}            opts.on("--environment", "-e", "Run tests in the ENV environment") {}          end diff --git a/railties/lib/rails/test_unit/testing.rake b/railties/lib/rails/test_unit/testing.rake index 97dd5cef10..18d699f806 100644 --- a/railties/lib/rails/test_unit/testing.rake +++ b/railties/lib/rails/test_unit/testing.rake @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  gem "minitest"  require "minitest"  require_relative "runner" diff --git a/railties/lib/rails/version.rb b/railties/lib/rails/version.rb index 3d8e8291d1..ba6763a572 100644 --- a/railties/lib/rails/version.rb +++ b/railties/lib/rails/version.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "gem_version"  module Rails diff --git a/railties/lib/rails/welcome_controller.rb b/railties/lib/rails/welcome_controller.rb index 3b417f65ba..0cb43e0f31 100644 --- a/railties/lib/rails/welcome_controller.rb +++ b/railties/lib/rails/welcome_controller.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true +  require_relative "application_controller"  class Rails::WelcomeController < Rails::ApplicationController # :nodoc: | 
