Accept -l LAYOUT CLI option to set the layout
This commit is contained in:
parent
0ce73c2e2f
commit
b65e989c38
@ -24,6 +24,7 @@ options:
|
||||
-v, --version enable verbose mode
|
||||
-d, --debug enable debug mode
|
||||
-r, --require PATH require ruby feature
|
||||
-l, --layout LAYOUT specify layout
|
||||
eoh
|
||||
end
|
||||
|
||||
|
@ -63,6 +63,10 @@ module Uh
|
||||
require feature
|
||||
@env.log "Loaded `#{feature}' ruby feature"
|
||||
end
|
||||
|
||||
opts.on '-l', '--layout LAYOUT', 'specify layout' do |layout|
|
||||
@env.layout_class = self.class.const_get layout.to_sym
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -12,7 +12,7 @@ module Uh
|
||||
def_delegator :@output, :print
|
||||
|
||||
attr_reader :output
|
||||
attr_accessor :verbose, :debug
|
||||
attr_accessor :verbose, :debug, :layout_class
|
||||
|
||||
def initialize output
|
||||
@output = output
|
||||
|
@ -130,6 +130,15 @@ module Uh
|
||||
end
|
||||
end
|
||||
|
||||
context 'with layout option' do
|
||||
let(:arguments) { %w[-l Object] }
|
||||
|
||||
it 'assigns the layout class in the env' do
|
||||
cli.parse_arguments!
|
||||
expect(cli.env.layout_class).to eq Object
|
||||
end
|
||||
end
|
||||
|
||||
context 'with invalid option' do
|
||||
let(:arguments) { %w[--unknown-option] }
|
||||
|
||||
|
@ -13,6 +13,10 @@ module Uh
|
||||
expect(env).not_to be_debug
|
||||
end
|
||||
|
||||
it 'has no layout_class set' do
|
||||
expect(env.layout_class).not_to be
|
||||
end
|
||||
|
||||
describe '#verbose?' do
|
||||
context 'when verbose mode is disabled' do
|
||||
before { env.verbose = false }
|
||||
|
Loading…
x
Reference in New Issue
Block a user