Implement ruby feature loading (-r CLI option)

This commit is contained in:
Thibault Jouan 2015-04-10 02:51:45 +00:00
parent 1467425407
commit 791c159d7a
4 changed files with 26 additions and 0 deletions

View 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

View File

@ -23,6 +23,7 @@ options:
-h, --help print this message
-v, --version enable verbose mode
-d, --debug enable debug mode
-r, --require PATH require ruby feature
eoh
end

View File

@ -58,6 +58,11 @@ module Uh
@env.debug = true
@env.log_logger_level
end
opts.on '-r', '--require PATH', 'require ruby feature' do |feature|
require feature
@env.log "Loaded `#{feature}' ruby feature"
end
end
end
end

View File

@ -116,6 +116,21 @@ module Uh
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
let(:arguments) { %w[--unknown-option] }