1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
require 'test_helper'
describe Slop::BoolOption do
before do
@options = Slop::Options.new
@age = @options.bool "--verbose"
@age = @options.bool "--quiet"
@result = @options.parse %w(--verbose)
end
it "returns true if used" do
assert_equal true, @result[:verbose]
end
it "returns false if not used" do
assert_equal false, @result[:quiet]
end
end
describe Slop::IntegerOption do
before do
@options = Slop::Options.new
@age = @options.integer "--age"
@result = @options.parse %w(--age 20)
end
it "returns the value as an integer" do
assert_equal 20, @result[:age]
end
it "returns nil for non-numbers by default" do
@result.parser.parse %w(--age hello)
assert_equal nil, @result[:age]
end
end
describe Slop::FloatOption do
before do
@options = Slop::Options.new
@apr = @options.float "--apr"
@apr_value = 2.9
@result = @options.parse %W(--apr #{@apr_value})
end
it "returns the value as a float" do
assert_equal @apr_value, @result[:apr]
end
it "returns nil for non-numbers by default" do
@result.parser.parse %w(--apr hello)
assert_equal nil, @result[:apr]
end
end
describe Slop::ArrayOption do
before do
@options = Slop::Options.new
@files = @options.array "--files"
@delim = @options.array "-d", delimiter: ":"
@limit = @options.array "-l", limit: 2
@result = @options.parse %w(--files foo.txt,bar.rb)
end
it "defaults to []" do
assert_equal [], @result[:d]
end
it "parses comma separated args" do
assert_equal %w(foo.txt bar.rb), @result[:files]
end
it "collects multiple option values" do
@result.parser.parse %w(--files foo.txt --files bar.rb)
assert_equal %w(foo.txt bar.rb), @result[:files]
end
it "can use a custom delimiter" do
@result.parser.parse %w(-d foo.txt:bar.rb)
assert_equal %w(foo.txt bar.rb), @result[:d]
end
it "can use a custom limit" do
@result.parser.parse %w(-l foo,bar,baz)
assert_equal ["foo", "bar,baz"], @result[:l]
end
end
describe Slop::NullOption do
before do
@options = Slop::Options.new
@version = @options.null('--version')
@result = @options.parse %w(--version)
end
it 'has a return value of true' do
assert_equal true, @result[:version]
end
it 'is not included in to_hash' do
assert_equal({}, @result.to_hash)
end
end
|