method

perform

Importance_0
v7.1.3.2 - Show latest stable - 0 notes - Class: RunnerCommand
perform(code_or_file = nil, *command_argv) public

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# File railties/lib/rails/commands/runner/runner_command.rb, line 22
      def perform(code_or_file = nil, *command_argv)
        unless code_or_file
          help
          exit 1
        end

        boot_application!
        Rails.application.load_runner

        ARGV.replace(command_argv)

        if code_or_file == "-"
          Rails.application.executor.wrap(source: "application.runner.railties") do
            eval($stdin.read, TOPLEVEL_BINDING, "stdin")
          end
        elsif File.exist?(code_or_file)
          expanded_file_path = File.expand_path code_or_file
          $0 = expanded_file_path
          Rails.application.executor.wrap(source: "application.runner.railties") do
            Kernel.load expanded_file_path
          end
        else
          begin
            Rails.application.executor.wrap(source: "application.runner.railties") do
              eval(code_or_file, TOPLEVEL_BINDING, __FILE__, __LINE__)
            end
          rescue SyntaxError, NameError => e
            if looks_like_a_file_path?(code_or_file)
              error "The file #{code_or_file} could not be found, please check and try again."
              error "Run '#{self.class.executable} -h' for help."
            else
              error "Please specify a valid ruby command or the path of a script to run."
              error "Run '#{self.class.executable} -h' for help."
              error ""
              error e
            end

            exit 1
          end
        end
      end
Register or log in to add new notes.