# File lib/hammer_cli/utils.rb, line 19 def camelize() return self if self !~ /_/ && self =~ /[A-Z]+.*/ split('_').map{|e| e.capitalize}.join end
# File lib/hammer_cli/utils.rb, line 38 def constantize raise NameError, "Can't constantize empty string" if self.empty? HammerCLI.constant_path(self)[-1] end
string formatting for ruby 1.8
# File lib/hammer_cli/utils.rb, line 5 def format(params) if params.is_a? Hash array_params = self.scan(/%[<{]([^>}]*)[>}]/).collect do |name| name = name[0] params[name.to_s] || params[name.to_sym] end self.gsub(/%[<]([^>]*)[>]/, '%') .gsub(/%[{]([^}]*)[}]/, '%s') .gsub(/\%(\W?[^bBdiouxXeEfgGaAcps])/, '%%\1') % array_params else self.gsub(/\%(\W?[^bBdiouxXeEfgGaAcps])/, '%%\1') % params end end
# File lib/hammer_cli/utils.rb, line 24 def indent_with(indent_str) gsub(/^/, indent_str) end
# File lib/hammer_cli/utils.rb, line 28 def underscore word = self.dup word.gsub!(/::/, '/') word.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2') word.gsub!(/([a-z\d])([A-Z])/,'\1_\2') word.tr!("-", "_") word.downcase! word end