Class: Rack::Console

Inherits:
Object
  • Object
show all
Defined in:
lib/rack/console.rb,
lib/rack/console/methods.rb,
lib/rack/console/session.rb,
lib/rack/console/version.rb

Defined Under Namespace

Modules: Methods Classes: Session, Version

Constant Summary collapse

VERSION =
Version.to_s

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Console

Returns a new instance of Console.



12
13
14
15
16
17
18
19
20
21
# File 'lib/rack/console.rb', line 12

def initialize(options = {})
  @options = default_options.merge(options)

  ENV['RACK_ENV'] = @options[:environment]
  set_preamble

  $LOAD_PATH.unshift(*@options[:include]) if @options[:include]

  require @options[:require] if @options[:require]
end

Class Method Details

.start(options = {}) ⇒ Object



8
9
10
# File 'lib/rack/console.rb', line 8

def self.start(options = {})
  self.new(options).start
end

Instance Method Details

#startObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/rack/console.rb', line 23

def start
  puts ENV['RACK_CONSOLE_INTRO'] unless ENV['IGNORE_RACK_CONSOLE_INTRO']

  app = Rack::Builder.parse_file(@options[:config]).first

  # Add convenience methods to the top-level binding (main)
  main.extend(Rack::Console::Methods)
  main.instance_variable_set(:@app, Rack::Console::Session.new(app))

  if Gem::Specification.find_all_by_name('pry').any?
    require 'pry'
    Pry.start
  else
    require 'irb'
    IRB.start
  end
end