コード生成とかしてる時に _
で要素を繋いだ snake_case
から、大文字小文字の組み合わせで単語の繋ぎ目を表現する CamelCase
へ変換する必要に駆られる事があります。
Rails使ってればActiveRecordがなんとかしてくれるのですが、RailsばかりがRubyではありません。
書けば済む話ですが、ググってもそのものズバリのスニペットが見当たらなかったのでおいておきます。
class String
def to_camel()
self.split("_").map{|w| w[0] = w[0].upcase; w}.join
end
end
こう書いておくと
"snake_case".to_camel # => SnakeCase
こうなります。
ちなみに逆方向は
class String
def to_snake()
self
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
.tr("-", "_")
.downcase
end
end
こんな感じに書くらしいです。
参考URL: Converting camel case to underscore case in ruby