Ryonan
Ryonan is a tool to make simple skeleton.
It make from template directory and erb, and interactively operation.
Installation
Add this line to your application's Gemfile:
gem 'ryonan'And then execute:
$ bundle
Or install it yourself as:
$ gem install ryonan
Usage
Create a directory named .template and file named .template/.config.
.template is replicated and .config is used to set variables in interactive command.
-
variable_name = 'value'- Directory
__variable_name__>value - File
__variable_name__.rb>value.rb - Erb File
__variable_name__.rb.erb>value.rband render erb
- Directory
$ tree -a
.
└── template1
└── .template
├── .config
├── __dir__
│ └── sample2.rb
├── __sample__.rb.erb
└── dir2
$ cat template1/.template/.config
sample=Sample
dir
method_name
$ cat template1/.template/__sample__.rb.erb
class <%= sample %>
def method1; end
def <%= method_name %>; end
end
$ ryonan
Template List
[0] : './template1'
Select Template[*] -> 0
Input the destination directory name -> test_template
Set the value to the variable in the template
sample (Default:Sample) ->
dir -> dir1
method_name -> method_name1
I, [2015-03-05T06:58:26.892198 #50253] INFO -- : cp -r ./template1/.template ./template1/test_template
I, [2015-03-05T06:58:26.894241 #50253] INFO -- : rm ./template1/test_template/.config
I, [2015-03-05T06:58:26.894626 #50253] INFO -- : mv ./template1/test_template/__sample__.rb.erb ./template1/test_template/Sample.rb.erb
I, [2015-03-05T06:58:26.895136 #50253] INFO -- : mv ./template1/test_template/__dir__ ./template1/test_template/dir1
I, [2015-03-05T06:58:26.897876 #50253] INFO -- : render_erb ./template1/test_template/Sample.rb.erb to ./template1/test_template/Sample.rb
I, [2015-03-05T06:58:26.898089 #50253] INFO -- : rm ./template1/test_template/Sample.rb.erb
$ tree template1/test_template/
template1/test_template/
├── Sample.rb
├── dir1
│ └── sample2.rb
└── dir2
$ cat template1/test_template/Sample.rb
class Sample
def method1; end
def method_name1; end
en
Template candidate
$ mkdir directory
$ cp -r template1/ directory/template2
$ ryonan
Template List
[0] : './directory/template2'
[1] : './template1'
Select Template[*] -> 0
Input the destination directory name -> test_template2
Set the value to the variable in the template
sample (Default:Sample) -> sample
dir -> dir
method_name -> method_name
I, [2015-03-05T07:00:54.992676 #51451] INFO -- : cp -r ./directory/template2/.template ./directory/template2/test_template2
I, [2015-03-05T07:00:54.993609 #51451] INFO -- : rm ./directory/template2/test_template2/.config
I, [2015-03-05T07:00:54.994570 #51451] INFO -- : mv ./directory/template2/test_template2/__sample__.rb.erb ./directory/template2/test_template2/sample.rb.erb
I, [2015-03-05T07:00:54.997861 #51451] INFO -- : mv ./directory/template2/test_template2/__dir__ ./directory/template2/test_template2/dir
I, [2015-03-05T07:00:54.998434 #51451] INFO -- : render_erb ./directory/template2/test_template2/sample.rb.erb to ./directory/template2/test_template2/sample.rb
I, [2015-03-05T07:00:54.998616 #51451] INFO -- : rm ./directory/template2/test_template2/sample.rb.erb
$ tree directory/template2/test_template2/
directory/template2/test_template2/
├── dir
│ └── sample2.rb
├── dir2
└── sample.rb