diff options
Diffstat (limited to 'railties/lib/rails')
4 files changed, 21 insertions, 11 deletions
diff --git a/railties/lib/rails/command/environment_argument.rb b/railties/lib/rails/command/environment_argument.rb index fdc5ee92d9..0cb3f1ce1e 100644 --- a/railties/lib/rails/command/environment_argument.rb +++ b/railties/lib/rails/command/environment_argument.rb @@ -1,6 +1,7 @@  # frozen_string_literal: true  require "active_support" +require "active_support/core_ext/class/attribute"  module Rails    module Command @@ -8,16 +9,16 @@ module Rails        extend ActiveSupport::Concern        included do -        class_option :environment, aliases: "-e", type: :string, -          desc: "Specifies the environment to run this console under (test/development/production)." +        class_attribute :environment_desc, default: "Specifies the environment to run this #{self.command_name} under (test/development/production)." +        class_option :environment, aliases: "-e", type: :string, desc: environment_desc        end        private -        def extract_environment_option_from_argument +        def extract_environment_option_from_argument(default_environment: Rails::Command.environment)            if options[:environment]              self.options = options.merge(environment: acceptable_environment(options[:environment]))            else -            self.options = options.merge(environment: Rails::Command.environment) +            self.options = options.merge(environment: default_environment)            end          end diff --git a/railties/lib/rails/commands/credentials/credentials_command.rb b/railties/lib/rails/commands/credentials/credentials_command.rb index 54ccd97506..a22b1f3f84 100644 --- a/railties/lib/rails/commands/credentials/credentials_command.rb +++ b/railties/lib/rails/commands/credentials/credentials_command.rb @@ -2,14 +2,15 @@  require "active_support"  require "rails/command/helpers/editor" +require "rails/command/environment_argument"  module Rails    module Command      class CredentialsCommand < Rails::Command::Base # :nodoc:        include Helpers::Editor +      include EnvironmentArgument -      class_option :environment, aliases: "-e", type: :string, -        desc: "Uses credentials from config/credentials/:environment.yml.enc encrypted by config/credentials/:environment.key key" +      self.environment_desc = "Uses credentials from config/credentials/:environment.yml.enc encrypted by config/credentials/:environment.key key"        no_commands do          def help @@ -20,6 +21,7 @@ module Rails        end        def edit +        extract_environment_option_from_argument(default_environment: nil)          require_application!          ensure_editor_available(command: "bin/rails credentials:edit") || (return) @@ -37,6 +39,7 @@ module Rails        end        def show +        extract_environment_option_from_argument(default_environment: nil)          require_application!          say credentials.read.presence || missing_credentials_message diff --git a/railties/lib/rails/commands/runner/runner_command.rb b/railties/lib/rails/commands/runner/runner_command.rb index cb693bcf34..40fb5e4d89 100644 --- a/railties/lib/rails/commands/runner/runner_command.rb +++ b/railties/lib/rails/commands/runner/runner_command.rb @@ -1,11 +1,13 @@  # frozen_string_literal: true +require "rails/command/environment_argument" +  module Rails    module Command      class RunnerCommand < Base # :nodoc: -      class_option :environment, aliases: "-e", type: :string, -        default: Rails::Command.environment.dup, -        desc: "The environment for the runner to operate under (test/development/production)" +      include EnvironmentArgument + +      self.environment_desc = "The environment for the runner to operate under (test/development/production)"        no_commands do          def help @@ -19,6 +21,8 @@ module Rails        end        def perform(code_or_file = nil, *command_argv) +        extract_environment_option_from_argument +          unless code_or_file            help            exit 1 diff --git a/railties/lib/rails/commands/server/server_command.rb b/railties/lib/rails/commands/server/server_command.rb index 43f7b76fd6..982b83ead5 100644 --- a/railties/lib/rails/commands/server/server_command.rb +++ b/railties/lib/rails/commands/server/server_command.rb @@ -6,6 +6,7 @@ require "rails"  require "active_support/deprecation"  require "active_support/core_ext/string/filters"  require "rails/dev_caching" +require "rails/command/environment_argument"  module Rails    class Server < ::Rack::Server @@ -91,6 +92,8 @@ module Rails    module Command      class ServerCommand < Base # :nodoc: +      include EnvironmentArgument +        # Hard-coding a bunch of handlers here as we don't have a public way of        # querying them from the Rack::Handler registry.        RACK_SERVERS = %w(cgi fastcgi webrick lsws scgi thin puma unicorn) @@ -109,8 +112,6 @@ module Rails          desc: "Uses a custom rackup configuration.", banner: :file        class_option :daemon, aliases: "-d", type: :boolean, default: false,          desc: "Runs server as a Daemon." -      class_option :environment, aliases: "-e", type: :string, -        desc: "Specifies the environment to run this server under (development/test/production).", banner: :name        class_option :using, aliases: "-u", type: :string,          desc: "Specifies the Rack server used to run the application (thin/puma/webrick).", banner: :name        class_option :pid, aliases: "-P", type: :string, default: DEFAULT_PID_PATH, @@ -130,6 +131,7 @@ module Rails        end        def perform +        extract_environment_option_from_argument          set_application_directory!          prepare_restart  | 
