string.rb revision 3dc4e9663ede590ca9b2d7bfafd81a13ea21cdb2
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen# Extensions to the String class
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenclass String
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen # Creates a space-separated sequence of lower-case tokens such as "nice pizza ontology"
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen # from a sequence of title-case tokens such as "NicePizzaOntology", "Nice-Pizza-Ontology"
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen # or "Nice_Pizza_Ontology".
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen def from_titlecase_to_spacedlowercase
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen self
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen .gsub(/::/, '/')
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen .gsub(/([A-Z]+)([A-Z][a-z])/,'\1 \2')
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen .gsub(/([a-z\d])([A-Z])/,'\1 \2')
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen .tr('_-', ' ')
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen .downcase
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen end
f16c114c20bbd7d292d93415d1e56c8dd6abd3e7Timo Sirainen
f16c114c20bbd7d292d93415d1e56c8dd6abd3e7Timo Sirainen def encoding_utf8
f16c114c20bbd7d292d93415d1e56c8dd6abd3e7Timo Sirainen self.force_encoding('UTF-8').encode('utf-8', 'binary', undef: :replace)
f16c114c20bbd7d292d93415d1e56c8dd6abd3e7Timo Sirainen end
f16c114c20bbd7d292d93415d1e56c8dd6abd3e7Timo Sirainenend
f16c114c20bbd7d292d93415d1e56c8dd6abd3e7Timo Sirainen