Method: String#filename_to_class_name

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

#filename_to_class_nameString

Converts a String representing a filename (i.e. “my_great_class.rb”) to a Ruby class name (i.e. “MyGreatClass”).

Returns:

  • (String)

    Class name associated with the filename



306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
# File 'lib/openc3/core_ext/string.rb', line 306

def filename_to_class_name
  filename = File.basename(self)
  class_name = ''
  length = filename.length
  upcase_next = true
  length.times do |index|
    break if filename[index..index] == '.'

    if filename[index..index] == '_'
      upcase_next = true
    elsif upcase_next
      class_name << filename[index..index].upcase
      upcase_next = false
    else
      class_name << filename[index..index].downcase
    end
  end
  class_name
end