소스파일내의 카멜케이스를 언더바로 변환하여 다른 파일로 저장해주는 ruby 스크립트 입니다.

에) helloWorld => hello_world

### camel2under.rb ###
 
if ARGV.empty?
    puts '사용법:'
    puts "#{$0} 소스파일경로 [변환된파일경로]";
    exit
end
 
source_file = ARGV[0];
target_file = ARGV[1] ? ARGV[1] : "#{source_file}.convert";
 
ftarget = File.open(target_file, "w")
 
File.open(source_file).each { |line|
    convert_line = line
 
    line.scan(/[A-Z]?[a-z](?:[a-z0-9])*(?:[A-Z][a-z0-9]+)+/) { |match_str|
        # 대문자로 시작하면
        break if match_str.match(/^[A-Z]/)
 
        replace_str = match_str.gsub(/([a-z0-9])([A-Z])/, '\1_\2').downcase
 
        convert_line = convert_line.gsub(match_str, replace_str)
    }
 
    if ( line != convert_line )
        puts '┏' + line.gsub(/^ +/, '')
        puts '┗' + convert_line.gsub(/^ +/, '')
    end
 
    ftarget.puts convert_line
}
 
ftarget.close
Tagged with:  

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">