class Industrialist::Type

Public Class Methods

industrialize(klass) click to toggle source
# File lib/industrialist/type.rb, line 3
def self.industrialize(klass)
  str = klass.name
  str = separate_lowercase_or_number_from_uppercase_letters(str)
  str = separate_numbers_from_letters(str)
  str = separate_last_consecutive_uppercase_letter_when_followed_by_lowercase_letter(str)
  str.downcase.to_sym
end
separate_last_consecutive_uppercase_letter_when_followed_by_lowercase_letter(string) click to toggle source
# File lib/industrialist/type.rb, line 19
def self.separate_last_consecutive_uppercase_letter_when_followed_by_lowercase_letter(string)
  string.gsub(/[A-Z][A-Z]+[a-z]/) { |s| "#{s[0..-3]}_#{s[-2..-1]}" }
end
separate_lowercase_or_number_from_uppercase_letters(string) click to toggle source
# File lib/industrialist/type.rb, line 11
def self.separate_lowercase_or_number_from_uppercase_letters(string)
  string.gsub(/[a-z0-9][A-Z]+/) { |s| "#{s[0]}_#{s[1..-1]}" }
end
separate_numbers_from_letters(string) click to toggle source
# File lib/industrialist/type.rb, line 15
def self.separate_numbers_from_letters(string)
  string.gsub(/[a-zA-Z][0-9]+/) { |s| "#{s[0]}_#{s[1..-1]}" }
end