Method: String#convert_to_value

Defined in:
lib/openc3/core_ext/string.rb

#convert_to_valueObject

depending on what the String represents. It can successfully convert floating point numbers in both fixed and scientific notation, integers in hexadecimal notation, and Arrays. If it can’t be converted into any of the above then the original String is returned.



222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
# File 'lib/openc3/core_ext/string.rb', line 222

def convert_to_value
  return_value = self
  begin
    upcase_self = self.upcase
    if upcase_self == 'INFINITY'.freeze
      return_value = Float::INFINITY
    elsif upcase_self == '-INFINITY'.freeze
      return_value = -Float::INFINITY
    elsif upcase_self == 'NAN'.freeze
      return_value = Float::NAN
    elsif self.is_float?
      # Floating Point in normal or scientific notation
      return_value = self.to_f
    elsif self.is_int?
      # Integer
      return_value = self.to_i
    elsif self.is_hex?
      # Hex
      return_value = Integer(self)
    elsif self.is_array?
      # Array
      return_value = eval(self)
    end
  rescue Exception
    # Something went wrong so just return the string as is
  end
  return return_value
end