Use Layout from uh-layout as default
This commit is contained in:
parent
616b14eae2
commit
b9b2bff853
@ -26,6 +26,15 @@ module Uh
|
|||||||
!!@debug
|
!!@debug
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def layout
|
||||||
|
@layout ||= if layout_class
|
||||||
|
layout_class.new
|
||||||
|
else
|
||||||
|
require 'uh/layout'
|
||||||
|
::Uh::Layout.new
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def logger
|
def logger
|
||||||
@logger ||= Logger.new(@output).tap do |o|
|
@logger ||= Logger.new(@output).tap do |o|
|
||||||
o.level = debug? ? LOGGER_LEVEL_DEBUG :
|
o.level = debug? ? LOGGER_LEVEL_DEBUG :
|
||||||
|
@ -10,14 +10,15 @@ module Uh
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
attr_reader :env, :events, :manager, :layout
|
extend Forwardable
|
||||||
|
def_delegator :@env, :layout
|
||||||
|
|
||||||
|
attr_reader :env, :events, :manager
|
||||||
|
|
||||||
def initialize env, manager: nil, stopped: false
|
def initialize env, manager: nil, stopped: false
|
||||||
raise ArgumentError, 'missing env layout class' unless env.layout_class
|
|
||||||
@env = env
|
@env = env
|
||||||
@events = Dispatcher.new
|
@events = Dispatcher.new
|
||||||
@manager = manager || Manager.new(@events)
|
@manager = manager || Manager.new(@events)
|
||||||
@layout = @env.layout_class.new
|
|
||||||
@stopped = stopped
|
@stopped = stopped
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -58,7 +59,7 @@ module Uh
|
|||||||
|
|
||||||
def register_layout_event_hooks
|
def register_layout_event_hooks
|
||||||
@events.on(:connected) do |display|
|
@events.on(:connected) do |display|
|
||||||
@layout.register display
|
layout.register display
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -53,6 +53,24 @@ module Uh
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#layout' do
|
||||||
|
context 'when a layout class is set' do
|
||||||
|
let(:some_layout) { Class.new }
|
||||||
|
|
||||||
|
before { env.layout_class = some_layout }
|
||||||
|
|
||||||
|
it 'returns a new instance of this layout class' do
|
||||||
|
expect(env.layout).to be_an_instance_of some_layout
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when a layout class is not set' do
|
||||||
|
it 'returns an instance of the default layout' do
|
||||||
|
expect(env.layout).to be_an_instance_of ::Uh::Layout
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe '#logger' do
|
describe '#logger' do
|
||||||
it 'returns a logger' do
|
it 'returns a logger' do
|
||||||
expect(env.logger).to be_a Logger
|
expect(env.logger).to be_a Logger
|
||||||
|
@ -55,17 +55,6 @@ module Uh
|
|||||||
it 'is not stopped' do
|
it 'is not stopped' do
|
||||||
expect(runner).not_to be_stopped
|
expect(runner).not_to be_stopped
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'assigns a new layout instance' do
|
|
||||||
expect(runner.layout).to be_an_instance_of SomeLayout
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when the env has no layout set' do
|
|
||||||
before { env.layout_class = nil }
|
|
||||||
it 'raises an ArgumentError' do
|
|
||||||
expect { runner }.to raise_error WM::ArgumentError
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#stopped?' do
|
describe '#stopped?' do
|
||||||
@ -101,7 +90,7 @@ module Uh
|
|||||||
|
|
||||||
it 'registers layout hook for :connected event' do
|
it 'registers layout hook for :connected event' do
|
||||||
runner.register_event_hooks
|
runner.register_event_hooks
|
||||||
expect(runner.layout).to receive(:register).with :display
|
expect(env.layout).to receive(:register).with :display
|
||||||
runner.events.emit :connected, args: :display
|
runner.events.emit :connected, args: :display
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -14,7 +14,8 @@ Gem::Specification.new do |s|
|
|||||||
s.test_files = s.files.grep /\A(spec|features)\//
|
s.test_files = s.files.grep /\A(spec|features)\//
|
||||||
s.executables = s.files.grep(/\Abin\//) { |f| File.basename(f) }
|
s.executables = s.files.grep(/\Abin\//) { |f| File.basename(f) }
|
||||||
|
|
||||||
s.add_dependency 'uh', '2.0.0.pre'
|
s.add_dependency 'uh', '2.0.0.pre'
|
||||||
|
s.add_dependency 'uh-layout', '0.2.0.pre'
|
||||||
|
|
||||||
s.add_development_dependency 'aruba', '~> 0.6'
|
s.add_development_dependency 'aruba', '~> 0.6'
|
||||||
s.add_development_dependency 'cucumber', '~> 2.0'
|
s.add_development_dependency 'cucumber', '~> 2.0'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user