= cutagem - Cut a Gem for creating new beautiful gem. by cho45 == Description cutagem (Cut a Gem) is yet another executable for creating gem skelton. This is similar in concept to newgem[http://newgem.rubyforge.org/] but more customizable for each user. cutagem (Cut a Gem: 宝石のカット) は新しい gem のスケルトンを作るコマンドです。 newgem[http://newgem.rubyforge.org/] とよく似たものですが、cutagem は 各ユーザがカスタマイズしやすいようになっています。 == Concept * User customizable templates. * Not use hoe, etc. Because it makes difficult to customize the created Rakefile. A time like this, copy and paste is better than DRY. * Do not use more config file which is written what can be written in Rakefile in default template. * ユーザ固有のテンプレート * hoe とかを使いません。これは生成された Rakefile を更めてその gem 用に カスタマイズしたいときにめんどくさくないようにです。 * このパッケージのテンプレートは、 Rakefile に書けば済むことを設定として分離したりしません。 == Installation === Gem Installation gem install cutagem === Subversion Repository Hosted by CodeRepos[http://coderepos.org/share/browser/lang/ruby/cutagem] svn co http://svn.coderepos.org/share/lang/ruby/cutagem/ == Usage Most simple sample: $ cutagem gemname Using Template: .cutagem/templates/default ~/.cutagem/config.yaml is not found. Use default. cp -r /pathto/templates/default /pathto/gemname Rename test/gemname_test.rb to test/gemname_test.rb Rename lib/gempath.rb to lib/gemname.rb Done. Type any key to edit Rakefile. When +gemname+ includes hyphens, it's replaced with "/". $ cutagem module-test Using Template: .cutagem/templates/default ~/.cutagem/config.yaml is found. Use it. cp -r /pathto/templates/default /pathto/module-test Rename test/gemname_test.rb to test/module-test_test.rb Rename lib/gempath.rb to lib/module/test.rb Done. Type any key to edit Rakefile. $ ls module-test/lib/module/test.rb module-test/lib/module/test.rb Select templates interactively. (-s, --select option) $ cutagem -s module-test Select template: 1. .cutagem/templates/default 2. default 3. command 1 Using Template: .cutagem/templates/default ~/.cutagem/config.yaml is found. Use it. cp -r /pathto/templates/default /pathto/module-test Rename test/gemname_test.rb to test/module-test_test.rb Rename lib/gempath.rb to lib/module/test.rb Done. Type any key to edit Rakefile. Edit user configuration. $ cutagem -c [Open ~/.cutagem/config.yaml with $EDITOR] Other options: Usage: cutagem [options] gemname Options: -s, --select Select template interactively. -d, --desc Describe this gem. -c, --config Configure user values. Use $EDITOR --copy-template NAME Copy template to user template dir naming NAME --version Show version string `0.0.2' == Customization +cutagem+ reads ~/.cutagem/templates/* for using it as custom template. Especially "default" template is precedence. You can make new template by coping the existing template using '--copy-template NAME' option. === Priority Example Library installed templates: * default * command User templates: * ~/.cutagem/templates/default * ~/.cutagem/templates/foobar Priority order: 1. ~/.cutagem/templates/default 2. ~/.cutagem/templates/foobar 3. default (system) 4. command (system) If you want to check this priority, add -s, --select option to +cutagem+. === Template Spec. ==== File Name Replacement [gemname] The argument +gemname+. [gempath] The string created by replacing "-" with "/" in +gemname+. (ex. gemname is hoge-hoge then, gempath is hoge/hoge) The path is automatically created. ==== ERB Replacement All files process through ERB. [<%=gemname%>] same as filename. [<%=gempath%>] same as filename. [<%=gemclass%>] classfied gemname. (ex. gemname is hoge-hoge_fuga then, gemclass is Hoge::HogeFuga) [<%=author%>] ENV["USER"] or ~/.cutagem/config.yaml#author [<%=email%>] #{ENV["USER"]}@#{ENV["HOST"]} or ~/.cutagem/config.yaml#email [<%=description%>] -d, --desc option's value [<%=config["user_config_value"]%>] Replace with ~/.cutagem/config.yaml entry. Of course ERB is Ruby, you can write everything in the bracket. == Copyright Author:: cho45 Copyright:: Copyright (c) 2007 cho45 www.lowreal.net License:: Ruby's