Sha256: 8bd47884fcd81d4db2f6522d1ca9039f589c0366d7d59e00e7847fac2f52f1ce
Contents?: true
Size: 1006 Bytes
Versions: 20
Compression:
Stored size: 1006 Bytes
Contents
class String # Converts a string into a valid ruby class or module name # This method is geared toward code reflection. # # "my_module__my_path".modulize #=> "MyModule::MyPath" # # See also String#methodize, String#pathize # # TODO # # * Make sure that all scenarios return a valid ruby class name # * Make sure it is revertible # def modulize to_s.gsub(/(__|\/)(.?)/){ "::" + $2.upcase }.gsub(/(^|_)(.)/){ $2.upcase } end end # _____ _ # |_ _|__ ___| |_ # | |/ _ \/ __| __| # | | __/\__ \ |_ # |_|\___||___/\__| # =begin test require 'test/unit' class TCString < Test::Unit::TestCase def test_modulize assert_equal( 'MyModule::MyClass', 'my_module__my_class'.modulize ) assert_equal( '::MyModule::MyClass', '__my_module__my_class'.modulize ) assert_equal( 'MyModule::MyClass', 'my_module/my_class'.modulize ) assert_equal( '::MyModule::MyClass', '/my_module/my_class'.modulize ) end end =end
Version data entries
20 entries across 20 versions & 1 rubygems