Move IRB initialization into an overridable method.
This commit is contained in:
parent
ef835862bc
commit
8817f4ab38
10
middleman-core/features/console.feature
Normal file
10
middleman-core/features/console.feature
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
Feature: Console
|
||||||
|
|
||||||
|
Scenario: Enter and exit the console
|
||||||
|
Given I run `middleman console` interactively
|
||||||
|
When I type "puts 'Hello from the console.'"
|
||||||
|
And I type "exit"
|
||||||
|
Then it should pass with:
|
||||||
|
"""
|
||||||
|
Hello from the console.
|
||||||
|
"""
|
|
@ -34,10 +34,19 @@ module Middleman::Cli
|
||||||
|
|
||||||
# TODO: get file watcher / reload! working in console
|
# TODO: get file watcher / reload! working in console
|
||||||
|
|
||||||
|
interact_with @app
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
# Start an interactive console in the context of the provided object.
|
||||||
|
# @param [Object] context
|
||||||
|
# @return [void]
|
||||||
|
def interact_with(context)
|
||||||
IRB.setup nil
|
IRB.setup nil
|
||||||
IRB.conf[:MAIN_CONTEXT] = IRB::Irb.new.context
|
IRB.conf[:MAIN_CONTEXT] = IRB::Irb.new.context
|
||||||
require 'irb/ext/multi-irb'
|
require 'irb/ext/multi-irb'
|
||||||
IRB.irb nil, @app
|
IRB.irb nil, context
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue