Sha256: a5c39bc9cdfa2dd156ea1a4dae0bb39e4e5767498e8d008ca8aad87ee03e8692
Contents?: true
Size: 799 Bytes
Versions: 2
Compression:
Stored size: 799 Bytes
Contents
module Industrialist class Type 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 def self.separate_lowercase_or_number_from_uppercase_letters(string) string.gsub(/[a-z0-9][A-Z]+/) { |s| "#{s[0]}_#{s[1..-1]}" } end def self.separate_numbers_from_letters(string) string.gsub(/[a-zA-Z][0-9]+/) { |s| "#{s[0]}_#{s[1..-1]}" } end 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 end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
industrialist-1.0.1 | lib/industrialist/type.rb |
industrialist-1.0.0 | lib/industrialist/type.rb |