Class: Rails::Command::RunnerCommand

Inherits:
Base
  • Object
show all
Defined in:
lib/rails/commands/runner/runner_command.rb

Overview

:nodoc:

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

base_name, command_name, default_command_root, desc, engine?, executable, #help, hide_command!, inherited, namespace, perform, printing_commands, usage_path

Methods included from Actions

#load_generators, #load_tasks, #require_application_and_environment!, #set_application_directory!

Class Method Details



15
16
17
# File 'lib/rails/commands/runner/runner_command.rb', line 15

def self.banner(*)
  "#{super} [<'Some.ruby(code)'> | <filename.rb>]"
end

Instance Method Details

#perform(code_or_file = nil, *command_argv) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/rails/commands/runner/runner_command.rb', line 19

def perform(code_or_file = nil, *command_argv)
  unless code_or_file
    help
    exit 1
  end

  ENV["RAILS_ENV"] = options[:environment]

  require_application_and_environment!
  Rails.application.load_runner

  ARGV.replace(command_argv)

  if File.exist?(code_or_file)
    $0 = code_or_file
    Kernel.load code_or_file
  else
    begin
      eval(code_or_file, binding, __FILE__, __LINE__)
    rescue SyntaxError, NameError => error
      $stderr.puts "Please specify a valid ruby command or the path of a script to run."
      $stderr.puts "Run '#{self.class.executable} -h' for help."
      $stderr.puts
      $stderr.puts error
      exit 1
    end
  end
end