]> git.r.bdr.sh - rbdr/lyricli.rb/blobdiff - lib/lyricli/util.rb
Add specs, startin with util
[rbdr/lyricli.rb] / lib / lyricli / util.rb
index 9ae9f6c344f99c0b6766715b54319ed82a7d8f4c..b8b0186638970378f65f356d5c2dc8ac3933df59 100644 (file)
@@ -1,14 +1,36 @@
 module Lyricli
+  # This module contains several utility functions.
   module Util
+
+    # Transforms a string from snake_case to UpperCamelCase
+    #
+    # @param [String] str the string that will be Camelized
+    # @return [String] the Camelized string.
     def camelize(str)
       str.split('_').map {|w| w.capitalize}.join
     end
 
+    # Takes a class name in snake_case and attempts to find the corresponding
+    # class from the sources.
+    #
+    # @param [String] class_name the snake_case name of the class to search for.
+    # @return [Class,nil] the found class or nil
     def parse_class(class_name)
-      klass = Module.const_get(class_name)
-      return klass if klass.is_a?(Class)
+      begin
+        path = "Sources::#{class_name}"
+        return eval(path)
       rescue NameError
-          return nil
+        return nil
+      end
+    end
+
+    # Simply escapes a param and substitutes spaces and escaped plus signs for
+    # plus signs.
+    #
+    # @param [String] p the parameter to be sanitized
+    # @return [String] the sanitized parameter
+    def sanitize_param(p)
+      CGI.escape(p.gsub(/ /, "+")).gsub("%2B", "+")
     end
   end
 end