2014-11-03 16:20:21 -06:00
|
|
|
# -*- coding: binary -*-
|
|
|
|
|
|
|
|
|
|
module Msf
|
2017-08-05 02:22:04 -05:00
|
|
|
###
|
|
|
|
|
#
|
|
|
|
|
# Integer option.
|
|
|
|
|
#
|
|
|
|
|
###
|
|
|
|
|
class OptInt < OptBase
|
|
|
|
|
def type
|
|
|
|
|
'integer'
|
2014-11-03 16:20:21 -06:00
|
|
|
end
|
|
|
|
|
|
2017-08-05 02:22:04 -05:00
|
|
|
def normalize(value)
|
2017-08-08 19:51:35 -05:00
|
|
|
if value.to_s.match(/^0x[a-fA-F\d]+$/)
|
2017-08-05 02:22:04 -05:00
|
|
|
value.to_i(16)
|
|
|
|
|
elsif value.present?
|
|
|
|
|
value.to_i
|
|
|
|
|
end
|
2014-11-03 16:20:21 -06:00
|
|
|
end
|
|
|
|
|
|
2017-08-05 02:22:04 -05:00
|
|
|
def valid?(value, check_empty: true)
|
|
|
|
|
return false if check_empty && empty_required_value?(value)
|
2017-08-08 19:47:30 -05:00
|
|
|
return false if value.present? && !value.to_s.match(/^0x[0-9a-fA-F]+$|^-?\d+$/)
|
2017-08-05 02:22:04 -05:00
|
|
|
super
|
|
|
|
|
end
|
2014-11-03 16:20:21 -06:00
|
|
|
end
|
|
|
|
|
end
|