|
1 | 1 | # -*- coding: binary -*-
|
2 | 2 |
|
3 | 3 | module Msf
|
| 4 | + ### |
| 5 | + # |
| 6 | + # Enum option. |
| 7 | + # |
| 8 | + ### |
| 9 | + class OptEnum < OptBase |
| 10 | + def type |
| 11 | + return 'enum' |
| 12 | + end |
4 | 13 |
|
5 |
| -### |
6 |
| -# |
7 |
| -# Enum option. |
8 |
| -# |
9 |
| -### |
10 |
| -class OptEnum < OptBase |
11 |
| - |
12 |
| - def type |
13 |
| - return 'enum' |
14 |
| - end |
15 |
| - |
16 |
| - def valid?(value=self.value, check_empty: true) |
17 |
| - return false if check_empty && empty_required_value?(value) |
18 |
| - return true if value.nil? and !required? |
19 |
| - |
20 |
| - (value and self.enums.include?(value.to_s)) |
21 |
| - end |
22 |
| - |
23 |
| - def normalize(value=self.value) |
24 |
| - return nil if not self.valid?(value) |
25 |
| - return value.to_s |
26 |
| - end |
27 |
| - |
28 |
| - def desc=(value) |
29 |
| - self.desc_string = value |
| 14 | + # This overrides required default from 'false' to 'true' |
| 15 | + def initialize(in_name, attrs = [], |
| 16 | + required: true, desc: nil, default: nil, enums: [], aliases: []) |
| 17 | + super |
| 18 | + end |
30 | 19 |
|
31 |
| - self.desc |
32 |
| - end |
| 20 | + def valid?(value = self.value, check_empty: true) |
| 21 | + return false if check_empty && empty_required_value?(value) |
| 22 | + return true if value.nil? && !required? |
33 | 23 |
|
34 |
| - def desc |
35 |
| - if self.enums |
36 |
| - str = self.enums.join(', ') |
| 24 | + (value && enums.include?(value.to_s)) |
37 | 25 | end
|
38 |
| - "#{self.desc_string || ''} (Accepted: #{str})" |
39 |
| - end |
40 | 26 |
|
| 27 | + def normalize(value = self.value) |
| 28 | + !valid?(value) ? nil : value.to_s |
| 29 | + end |
41 | 30 |
|
42 |
| -protected |
| 31 | + def desc=(value) |
| 32 | + self.desc_string = value |
| 33 | + desc |
| 34 | + end |
43 | 35 |
|
44 |
| - attr_accessor :desc_string # :nodoc: |
| 36 | + def desc |
| 37 | + str = enums.join(', ') if enums |
| 38 | + "#{desc_string || ''} (Accepted: #{str})" |
| 39 | + end |
45 | 40 |
|
46 |
| -end |
| 41 | + protected |
47 | 42 |
|
| 43 | + attr_accessor :desc_string # :nodoc: |
| 44 | + end |
48 | 45 | end
|
0 commit comments