class Rails::Command::RunnerCommand
:nodoc:
def help(command_name = nil, *)
def help(command_name = nil, *) super if command_name == "runner" say "" say self.class.class_usage end end
def looks_like_a_file_path?(code_or_file)
def looks_like_a_file_path?(code_or_file) code_or_file.ends_with?(".rb") end
def perform(code_or_file = nil, *command_argv)
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