Class: Rails::Console

Inherits:
Object show all
Includes:
ConsoleHelper
Defined in:
railties/lib/rails/commands/console.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from ActiveSupport::Concern

#append_features, #class_methods, extended, #included

Constructor Details

#initialize(app, options = {}) ⇒ Console


29
30
31
32
33
34
35
36
37
# File 'railties/lib/rails/commands/console.rb', line 29

def initialize(app, options={})
  @app     = app
  @options = options

  app.sandbox = sandbox?
  app.load_console

  @console = app.config.console || IRB
end

Instance Attribute Details

#appObject (readonly)

Returns the value of attribute app


27
28
29
# File 'railties/lib/rails/commands/console.rb', line 27

def app
  @app
end

#consoleObject (readonly)

Returns the value of attribute console


27
28
29
# File 'railties/lib/rails/commands/console.rb', line 27

def console
  @console
end

#optionsObject (readonly)

Returns the value of attribute options


27
28
29
# File 'railties/lib/rails/commands/console.rb', line 27

def options
  @options
end

Class Method Details

.parse_arguments(arguments) ⇒ Object


11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'railties/lib/rails/commands/console.rb', line 11

def parse_arguments(arguments)
  options = {}

  OptionParser.new do |opt|
    opt.banner = "Usage: rails console [environment] [options]"
    opt.on('-s', '--sandbox', 'Rollback database modifications on exit.') { |v| options[:sandbox] = v }
    opt.on("-e", "--environment=name", String,
            "Specifies the environment to run this console under (test/development/production).",
            "Default: development") { |v| options[:environment] = v.strip }
    opt.parse!(arguments)
  end

  set_options_env(arguments, options)
end

Instance Method Details

#environmentObject Also known as: environment?


43
44
45
# File 'railties/lib/rails/commands/console.rb', line 43

def environment
  options[:environment] ||= super
end

#sandbox?Boolean


39
40
41
# File 'railties/lib/rails/commands/console.rb', line 39

def sandbox?
  options[:sandbox]
end

#set_environment!Object


48
49
50
# File 'railties/lib/rails/commands/console.rb', line 48

def set_environment!
  Rails.env = environment
end

#startObject


52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'railties/lib/rails/commands/console.rb', line 52

def start
  set_environment! if environment?

  if sandbox?
    puts "Loading #{Rails.env} environment in sandbox (Rails #{Rails.version})"
    puts "Any modifications you make will be rolled back on exit"
  else
    puts "Loading #{Rails.env} environment (Rails #{Rails.version})"
  end

  if defined?(console::ExtendCommandBundle)
    console::ExtendCommandBundle.include(Rails::ConsoleMethods)
  end
  console.start
end