Implement ruby feature loading (-r CLI option)
This commit is contained in:
parent
1467425407
commit
791c159d7a
5
features/cli/ruby_features.feature
Normal file
5
features/cli/ruby_features.feature
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
Feature: ruby feature require CLI option
|
||||||
|
|
||||||
|
Scenario: requires a ruby feature
|
||||||
|
When I run uhwm with option -v -r abbrev
|
||||||
|
Then the current output must match /load.+abbrev.+ruby feature/i
|
@ -23,6 +23,7 @@ options:
|
|||||||
-h, --help print this message
|
-h, --help print this message
|
||||||
-v, --version enable verbose mode
|
-v, --version enable verbose mode
|
||||||
-d, --debug enable debug mode
|
-d, --debug enable debug mode
|
||||||
|
-r, --require PATH require ruby feature
|
||||||
eoh
|
eoh
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -58,6 +58,11 @@ module Uh
|
|||||||
@env.debug = true
|
@env.debug = true
|
||||||
@env.log_logger_level
|
@env.log_logger_level
|
||||||
end
|
end
|
||||||
|
|
||||||
|
opts.on '-r', '--require PATH', 'require ruby feature' do |feature|
|
||||||
|
require feature
|
||||||
|
@env.log "Loaded `#{feature}' ruby feature"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -116,6 +116,21 @@ module Uh
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'with require option' do
|
||||||
|
let(:arguments) { %w[-r abbrev] }
|
||||||
|
|
||||||
|
it 'requires the given ruby feature' do
|
||||||
|
expect { cli.parse_arguments! }
|
||||||
|
.to change { $LOADED_FEATURES.grep(/abbrev/).any? }
|
||||||
|
.from(false).to(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'logs a message about the feature being loaded' do
|
||||||
|
expect(cli.env).to receive(:log).with /load.+abbrev.+ruby feature/i
|
||||||
|
cli.parse_arguments!
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'with invalid option' do
|
context 'with invalid option' do
|
||||||
let(:arguments) { %w[--unknown-option] }
|
let(:arguments) { %w[--unknown-option] }
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user