论坛首页 编程语言技术论坛

扩展string类

浏览 3026 次
锁定老帖子 主题:扩展string类
精华帖 (0) :: 良好帖 (0) :: 新手帖 (14) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-12-03   最后修改:2011-04-15

一、camelize

这个方法可以将字符串转成驼峰形式,并且可以将字符串中的/替换成::
将路径转换成命名空间时比较有用。

 

def camelize
   return self.gsub( /\/(.?)/ ) {
     "::" + $1.upcase
   }.
   gsub( /(^|_)(.)/ ) {
     $2.upcase
   }
end

 

"active_record".camelize #=> "ActiveRecord"
"active_record/errors".camelize #=> "ActiveRecord::Errors"

 

二、underscore

这是camelize的逆向转换
将命名空间转换成路径时比较有用。

 

def underscore
   return self.gsub( /::/, '/' ).
   gsub( /([A-Z]+)([A-Z][a-z])/, '\1_\2' ).
   gsub( /([a-z\d])([A-Z])/    , '\1_\2' ).
   tr( "-", "_" ).
   downcase
end

 

"ActiveRecord".underscore #=> "active_record"
"ActiveRecord::Errors".underscore #=> active_record/errors

 

具体如何将这两个方法加入模块中,可以参考在rails中如何加载自定义方法

   发表时间:2009-12-03  
楼主可参考 module ActiveSupport::CoreExtensions::String的 camelize 和underscore 方法。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics