루비 습작1 abc_def의 문자열을 카멜표기법으로 변경하기

루비를 공부중인데, 책보고 따라하는거 보다는 실제로 만들어보는게
재밌기도하고 실제로 도움이 되기도 해서
반복적인 작업을 없애기 위해서 아래와 같은 유틸리티성 메서드를 만들어봤다.

제목처럼 abc_def_xyz 처럼 되어있는 문자열을 abcDefXyz로 변경해주는 메서드이다.

여러개를 동시에 받아서 변환가능하다.
(문자열이 ‘ ‘ 공백으로 구분되어있어야된다. 머 더 잘 할수 있겠지만, 이 정도로도 사용하는데 문제 없음.^^;)

소스는 아래와 같다.

[ruby]
#!/usr/bin/ruby

### MAKE Camel Case from abc_def -> abcDef

def makeCapitalize(var1)
array1 = var1.split("_")
array2 = array1[1, array1.length].collect! {|x| x.capitalize}
puts "===================="
array2.insert(0, array1[0]);
puts array2.join
return array2.join
end

print "input text : "
variables = gets

varList = variables.split(" ")

varList.each { |x| makeCapitalize(x)}
[/ruby]

실제로 돌려본거는 아래와 같은 형식으로 했다.

[gyus@gyue:string]$ ./makeCamel.rb

input text : tx_server_target_method tx_server_ntype tx_server_access_method tx_naming_postfix tx_client_class tx_client_super tx_client_access tx_client_prefix tx_client_using_param profile_class tx_server_target_method profile_prefix profile_access_method lwst_txclient_method_using_param

결과

====================
txServerTargetMethod
====================
txServerNtype
====================
txServerAccessMethod
====================
txNamingPostfix
====================
txClientClass
====================
txClientSuper
====================
txClientAccess
====================
txClientPrefix
====================
txClientUsingParam
====================
profileClass
====================
txServerTargetMethod
====================
profilePrefix
====================
profileAccessMethod
====================
lwstTxclientMethodUsingParam

오홋.. 재밌네.ㅋ

참고
– 프로그래밍 루비 책
site : http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-collect

 

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다