Module: Rips::Utils::StringVariableExtension

Defined in:
lib/rips/utils/string_variable.rb

Instance Method Summary collapse

Instance Method Details

#address?(range) ⇒ Boolean

Check if value is an address (0..127 | label)

Returns:

  • (Boolean)


35
36
37
# File 'lib/rips/utils/string_variable.rb', line 35

def address? (range)
  (self.is_a?(String)) || (number?(self.slice(1..-1)) && valid_range?(range))
end

#inmediate?Boolean

Check if value is a valid inmediate (…,-1,0,1…)

Returns:

  • (Boolean)


20
21
22
# File 'lib/rips/utils/string_variable.rb', line 20

def inmediate?
  number?(self)
end

#number?(value) ⇒ Boolean

Check if value is a valid number (…,-1,0,1…)

Returns:

  • (Boolean)


6
7
8
# File 'lib/rips/utils/string_variable.rb', line 6

def number? (value)
  /\A[-]?\d+\z/ === value
end

#port?Boolean

Check if value is a port (@0..3)

Returns:

  • (Boolean)


30
31
32
# File 'lib/rips/utils/string_variable.rb', line 30

def port?
  (self[0] == "@") && number?(self.slice(1..-1))
end

#register?Boolean

Check if value is a register ($0..15)

Returns:

  • (Boolean)


25
26
27
# File 'lib/rips/utils/string_variable.rb', line 25

def register?
  (self[0] == "$") && number?(self.slice(1..-1))
end

#valid_range?(range) ⇒ Boolean

Check if value is between in permitted range

Returns:

  • (Boolean)


11
12
13
14
15
16
17
# File 'lib/rips/utils/string_variable.rb', line 11

def valid_range? (range)
  if number?(self.slice(1..-1))
    self.to_i.between?(range[0], range[1])
  else 
    self.slice(1..-1).to_i.between?(range[0], range[1])
  end
end