pattern 0.9.4 → 0.9.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README +43 -43
- data/README.cn +26 -26
- data/Rakefile +8 -8
- data/bin/pattern +30 -30
- data/{DOCS → docs}/todolist.txt +27 -25
- data/etc/templates_path.conf +1 -1
- data/lib/command.rb +46 -46
- data/lib/common.rb +20 -20
- data/lib/compositecode.rb +82 -82
- data/lib/configuration.rb +46 -46
- data/lib/patterncode.rb +6 -6
- data/lib/version.rb +32 -32
- data/templates/ruby.composite/component.rb +12 -12
- data/templates/ruby.composite/composite.rb +32 -32
- data/templates/ruby.composite/compositeobject.rb +13 -13
- data/templates/ruby.composite/leaf.rb +11 -11
- data/templates/ruby.composite/operations +3 -3
- data/templates/ruby.composite/readme +4 -4
- data/templates/ruby.template/abstractclass.rb +8 -0
- data/templates/ruby.template/concreteclass.rb +9 -0
- data/templates/ruby.template/operations +3 -0
- data/templates/ruby.template/readme +3 -0
- data/test/code_spec.rb +34 -34
- data/test/command_spec.rb +19 -19
- data/test/compositecode_spec.rb +130 -130
- data/test/configuration_spec.rb +27 -27
- data/test/patterncode_spec.rb +34 -34
- metadata +40 -60
- data/pattern-0.9.0.gem +0 -0
- data/pattern-0.9.1.gem +0 -0
- data/pattern-0.9.2.gem +0 -0
- data/pattern-0.9.3.gem +0 -0
- data/pattern.gemspec +0 -26
data/README
CHANGED
@@ -1,43 +1,43 @@
|
|
1
|
-
== EasyPattern
|
2
|
-
|
3
|
-
Rubygem for building Pattern/Data Structure .
|
4
|
-
Supports custom templates by any language.
|
5
|
-
Good tools for learning Pattern/Data Structure.
|
6
|
-
|
7
|
-
== Useage
|
8
|
-
|
9
|
-
simple model
|
10
|
-
*pattern [tempate_dir] [main_class_name] [-d target_dir]
|
11
|
-
*pattern [-t tempate_dir] [-d target_dir("." is default)] [-c classes_name] [-op operations_name]
|
12
|
-
complex model (not support now.)
|
13
|
-
*pattern -f pattern_file
|
14
|
-
|
15
|
-
== example:
|
16
|
-
|
17
|
-
simple model:
|
18
|
-
* pattern ruby.composite Task -d target
|
19
|
-
* pattern -t ruby.composite -d target -c Task;CompositeTask;AddDryIngredientsTask,MixTask,AddLiquidsTask;MakeBatterTask,MakeCakeTask -op get_time_required
|
20
|
-
complex model(pattern_file):
|
21
|
-
|
22
|
-
== Future
|
23
|
-
Sharing pattern templates on website.
|
24
|
-
|
25
|
-
== Version
|
26
|
-
0.9.4
|
27
|
-
1. Refactoring the code
|
28
|
-
2. Template of ruby.composite work
|
29
|
-
3. Getting help with no parameter
|
30
|
-
4. Replacing lower_case name . Example: class_name:Task lc_class_name:task
|
31
|
-
|
32
|
-
|
33
|
-
== Question
|
34
|
-
If you get some Questions. Mailto :azhao.1981@gmail.com
|
35
|
-
|
36
|
-
== Author
|
37
|
-
|
38
|
-
Copyright 2010 @ weizhao
|
39
|
-
mailto: azhao.1981@gmail.com
|
40
|
-
|
41
|
-
== licese
|
42
|
-
|
43
|
-
This library and all associated materials are releassse under the terms of version 2 of the GNU Public License(http://www.gnu.org/copyleft/gpl.html).
|
1
|
+
== EasyPattern
|
2
|
+
|
3
|
+
Rubygem for building Pattern/Data Structure .
|
4
|
+
Supports custom templates by any language.
|
5
|
+
Good tools for learning Pattern/Data Structure.
|
6
|
+
|
7
|
+
== Useage
|
8
|
+
|
9
|
+
simple model
|
10
|
+
*pattern [tempate_dir] [main_class_name] [-d target_dir]
|
11
|
+
*pattern [-t tempate_dir] [-d target_dir("." is default)] [-c classes_name] [-op operations_name]
|
12
|
+
complex model (not support now.)
|
13
|
+
*pattern -f pattern_file
|
14
|
+
|
15
|
+
== example:
|
16
|
+
|
17
|
+
simple model:
|
18
|
+
* pattern ruby.composite Task -d target
|
19
|
+
* pattern -t ruby.composite -d target -c Task;CompositeTask;AddDryIngredientsTask,MixTask,AddLiquidsTask;MakeBatterTask,MakeCakeTask -op get_time_required
|
20
|
+
complex model(pattern_file):
|
21
|
+
|
22
|
+
== Future
|
23
|
+
Sharing pattern templates on website.
|
24
|
+
|
25
|
+
== Version
|
26
|
+
0.9.4
|
27
|
+
1. Refactoring the code
|
28
|
+
2. Template of ruby.composite work
|
29
|
+
3. Getting help with no parameter
|
30
|
+
4. Replacing lower_case name . Example: class_name:Task lc_class_name:task
|
31
|
+
|
32
|
+
|
33
|
+
== Question
|
34
|
+
If you get some Questions. Mailto :azhao.1981@gmail.com
|
35
|
+
|
36
|
+
== Author
|
37
|
+
|
38
|
+
Copyright 2010 @ weizhao
|
39
|
+
mailto: azhao.1981@gmail.com
|
40
|
+
|
41
|
+
== licese
|
42
|
+
|
43
|
+
This library and all associated materials are releassse under the terms of version 2 of the GNU Public License(http://www.gnu.org/copyleft/gpl.html).
|
data/README.cn
CHANGED
@@ -1,26 +1,26 @@
|
|
1
|
-
== EasyPattern
|
2
|
-
这是一个用于自动生成设计模式/数据结构的rubygem工具,其特点是支持自定义模板,这使您学习设计模式和数据结构更加方便。
|
3
|
-
|
4
|
-
== Useage
|
5
|
-
简单模式
|
6
|
-
pattern [tempate_dir] [main_class_name] [-d target_dir]
|
7
|
-
pattern [-t tempate_dir] [-d target_dir("." is default)] [-c classes_name] [-op operations_name]
|
8
|
-
复杂模式 (未支持)
|
9
|
-
pattern -f pattern_file
|
10
|
-
|
11
|
-
== 命令示例:
|
12
|
-
简单模式:
|
13
|
-
* pattern ruby.composite Task -d target
|
14
|
-
* pattern -t ruby.composite -d target -c Task;compositeTask;AddDryIngredientsTask,MixTask;MakeBatterTask -op execute
|
15
|
-
复杂模式(pattern_file):
|
16
|
-
|
17
|
-
== 未来工作
|
18
|
-
1. 支持复杂模式
|
19
|
-
2. 通过网站支持模板分享
|
20
|
-
|
21
|
-
== Author
|
22
|
-
Copyright @ weizhao 2010
|
23
|
-
mailto: azhao.1981@gmail.com
|
24
|
-
|
25
|
-
== licese
|
26
|
-
This library and all associated materials are releassse under the terms of version 2 of the GNU Public License(http://www.gnu.org/copyleft/gpl.html).
|
1
|
+
== EasyPattern
|
2
|
+
这是一个用于自动生成设计模式/数据结构的rubygem工具,其特点是支持自定义模板,这使您学习设计模式和数据结构更加方便。
|
3
|
+
|
4
|
+
== Useage
|
5
|
+
简单模式
|
6
|
+
pattern [tempate_dir] [main_class_name] [-d target_dir]
|
7
|
+
pattern [-t tempate_dir] [-d target_dir("." is default)] [-c classes_name] [-op operations_name]
|
8
|
+
复杂模式 (未支持)
|
9
|
+
pattern -f pattern_file
|
10
|
+
|
11
|
+
== 命令示例:
|
12
|
+
简单模式:
|
13
|
+
* pattern ruby.composite Task -d target
|
14
|
+
* pattern -t ruby.composite -d target -c Task;compositeTask;AddDryIngredientsTask,MixTask;MakeBatterTask -op execute
|
15
|
+
复杂模式(pattern_file):
|
16
|
+
|
17
|
+
== 未来工作
|
18
|
+
1. 支持复杂模式
|
19
|
+
2. 通过网站支持模板分享
|
20
|
+
|
21
|
+
== Author
|
22
|
+
Copyright @ weizhao 2010
|
23
|
+
mailto: azhao.1981@gmail.com
|
24
|
+
|
25
|
+
== licese
|
26
|
+
This library and all associated materials are releassse under the terms of version 2 of the GNU Public License(http://www.gnu.org/copyleft/gpl.html).
|
data/Rakefile
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rake'
|
3
|
-
|
4
|
-
task :install do
|
5
|
-
`cp -R lib /usr/lib/ruby/gems/1.8/gems/pattern-0.9.0/`
|
6
|
-
`cp bin/pattern /usr/bin`
|
7
|
-
end
|
8
|
-
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
task :install do
|
5
|
+
`cp -R lib /usr/lib/ruby/gems/1.8/gems/pattern-0.9.0/`
|
6
|
+
`cp bin/pattern /usr/bin`
|
7
|
+
end
|
8
|
+
|
data/bin/pattern
CHANGED
@@ -1,31 +1,31 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
current_dir = File.dirname(__FILE__)
|
3
|
-
|
4
|
-
require current_dir + '/../lib/version'
|
5
|
-
puts "#{Pattern::HELP::WELLCOME}"
|
6
|
-
if %w(--version -v).include? ARGV.first
|
7
|
-
puts "pattern #{Pattern::VERSION::STRING}"
|
8
|
-
exit(0)
|
9
|
-
end
|
10
|
-
require current_dir + '/../lib/configuration'
|
11
|
-
|
12
|
-
if %w(--set -s).include? ARGV.first
|
13
|
-
configuration = Configuration.new
|
14
|
-
configuration.execute(ARGV)
|
15
|
-
exit(0)
|
16
|
-
end
|
17
|
-
|
18
|
-
if %w(--list -l).include? ARGV.first
|
19
|
-
configuration = Configuration.new
|
20
|
-
configuration.list
|
21
|
-
exit(0)
|
22
|
-
end
|
23
|
-
|
24
|
-
if (ARGV.empty? || (%w(--help -h).include? ARGV.first))
|
25
|
-
puts Pattern::HELP::STRING
|
26
|
-
exit(0)
|
27
|
-
end
|
28
|
-
|
29
|
-
require current_dir + '/../lib/compositecode'
|
30
|
-
pattern = CompositeCode.new(Command.new(ARGV))
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
current_dir = File.dirname(__FILE__)
|
3
|
+
|
4
|
+
require current_dir + '/../lib/version'
|
5
|
+
puts "#{Pattern::HELP::WELLCOME}"
|
6
|
+
if %w(--version -v).include? ARGV.first
|
7
|
+
puts "pattern #{Pattern::VERSION::STRING}"
|
8
|
+
exit(0)
|
9
|
+
end
|
10
|
+
require current_dir + '/../lib/configuration'
|
11
|
+
|
12
|
+
if %w(--set -s).include? ARGV.first
|
13
|
+
configuration = Configuration.new
|
14
|
+
configuration.execute(ARGV)
|
15
|
+
exit(0)
|
16
|
+
end
|
17
|
+
|
18
|
+
if %w(--list -l).include? ARGV.first
|
19
|
+
configuration = Configuration.new
|
20
|
+
configuration.list
|
21
|
+
exit(0)
|
22
|
+
end
|
23
|
+
|
24
|
+
if (ARGV.empty? || (%w(--help -h).include? ARGV.first))
|
25
|
+
puts Pattern::HELP::STRING
|
26
|
+
exit(0)
|
27
|
+
end
|
28
|
+
|
29
|
+
require current_dir + '/../lib/compositecode'
|
30
|
+
pattern = CompositeCode.new(Command.new(ARGV))
|
31
31
|
pattern.execute
|
data/{DOCS → docs}/todolist.txt
RENAMED
@@ -1,25 +1,27 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
1.
|
13
|
-
2.
|
14
|
-
3.
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
6.
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
1
|
+
2012-01-13
|
2
|
+
1. adding template pattern code
|
3
|
+
pattern -t ruby.template -c Report;HTMLReport,PlainTextReport -d target -op output_report,output_body,output_start,output_head,output_body_start,output_line,output_body_end,output_end;output_start,output_head,output_body_start,output_line,output_body_end,output_end
|
4
|
+
2011-01-10
|
5
|
+
1. refactoring the code OK
|
6
|
+
2. Adding 2or3 template of ruby pattern code. just1
|
7
|
+
3. when no parameter,get help OK
|
8
|
+
4. lower_case replace OK
|
9
|
+
before
|
10
|
+
|
11
|
+
1. 制作为rubygem
|
12
|
+
1.1. 添加可执行文件 OK
|
13
|
+
1.2. 添加环境路径 OK
|
14
|
+
1.3. 一些bugs OK
|
15
|
+
2. 上传 OK
|
16
|
+
3. 如果文件已经存在,不进行覆盖 OK
|
17
|
+
4. 支持建立文件夹 X
|
18
|
+
5. 支持默认模式 OK
|
19
|
+
6. 支持添加template目录 OK
|
20
|
+
6.1. config类来处理
|
21
|
+
6.2. 添加一个
|
22
|
+
6.3. 删除一个
|
23
|
+
7. 添加新的templates
|
24
|
+
8. 列出可用的template OK
|
25
|
+
9. help功能 Ok
|
26
|
+
|
27
|
+
|
data/etc/templates_path.conf
CHANGED
@@ -1 +1 @@
|
|
1
|
-
../templates
|
1
|
+
../templates
|
data/lib/command.rb
CHANGED
@@ -1,47 +1,47 @@
|
|
1
|
-
# commad for send parameter to CompositeCode
|
2
|
-
# PathCommon is in common.rb
|
3
|
-
|
4
|
-
require File.dirname(__FILE__)+'/common'
|
5
|
-
|
6
|
-
class Command
|
7
|
-
include PathCommon
|
8
|
-
attr_accessor :template_dir,:target_dir,:classes,:operations,:base_name
|
9
|
-
|
10
|
-
def initialize(params)
|
11
|
-
@params = params
|
12
|
-
get_template_dir
|
13
|
-
get_target_dir
|
14
|
-
get_classes
|
15
|
-
get_operations
|
16
|
-
end
|
17
|
-
def get_template_dir
|
18
|
-
template = get_param("-t") || @params[0]
|
19
|
-
get_templates(template).each do |dir|
|
20
|
-
@template_dir = dir if File.directory?(dir)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
def get_target_dir
|
24
|
-
@target_dir = absolute_path(get_param("-d") || ".")
|
25
|
-
end
|
26
|
-
def get_classes
|
27
|
-
classes = get_param("-c")
|
28
|
-
if classes
|
29
|
-
@classes = parse_string( classes )
|
30
|
-
else
|
31
|
-
@base_name = @params[1]
|
32
|
-
@classes = nil
|
33
|
-
end
|
34
|
-
end
|
35
|
-
def get_operations
|
36
|
-
@operations = parse_string( operations = get_param("-op") || " " )
|
37
|
-
end
|
38
|
-
|
39
|
-
private
|
40
|
-
def get_templates(template)
|
41
|
-
get_path.collect { |dir| dir = join(dir,template) }
|
42
|
-
end
|
43
|
-
def get_param(option)
|
44
|
-
index = @params.index(option)
|
45
|
-
return index ? @params[index+1] : nil
|
46
|
-
end
|
1
|
+
# commad for send parameter to CompositeCode
|
2
|
+
# PathCommon is in common.rb
|
3
|
+
|
4
|
+
require File.dirname(__FILE__)+'/common'
|
5
|
+
|
6
|
+
class Command
|
7
|
+
include PathCommon
|
8
|
+
attr_accessor :template_dir,:target_dir,:classes,:operations,:base_name
|
9
|
+
|
10
|
+
def initialize(params)
|
11
|
+
@params = params
|
12
|
+
get_template_dir
|
13
|
+
get_target_dir
|
14
|
+
get_classes
|
15
|
+
get_operations
|
16
|
+
end
|
17
|
+
def get_template_dir
|
18
|
+
template = get_param("-t") || @params[0]
|
19
|
+
get_templates(template).each do |dir|
|
20
|
+
@template_dir = dir if File.directory?(dir)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
def get_target_dir
|
24
|
+
@target_dir = absolute_path(get_param("-d") || ".")
|
25
|
+
end
|
26
|
+
def get_classes
|
27
|
+
classes = get_param("-c")
|
28
|
+
if classes
|
29
|
+
@classes = parse_string( classes )
|
30
|
+
else
|
31
|
+
@base_name = @params[1]
|
32
|
+
@classes = nil
|
33
|
+
end
|
34
|
+
end
|
35
|
+
def get_operations
|
36
|
+
@operations = parse_string( operations = get_param("-op") || " " )
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
def get_templates(template)
|
41
|
+
get_path.collect { |dir| dir = join(dir,template) }
|
42
|
+
end
|
43
|
+
def get_param(option)
|
44
|
+
index = @params.index(option)
|
45
|
+
return index ? @params[index+1] : nil
|
46
|
+
end
|
47
47
|
end
|
data/lib/common.rb
CHANGED
@@ -1,21 +1,21 @@
|
|
1
|
-
require 'pathname'
|
2
|
-
|
3
|
-
module PathCommon
|
4
|
-
PROJECT_DIR = "#{File.dirname(__FILE__)}/../"
|
5
|
-
CONFIG_FILE = "#{PROJECT_DIR}etc/templates_path.conf"
|
6
|
-
|
7
|
-
def absolute_path(path,dir=Dir.pwd)
|
8
|
-
Pathname.new(path).relative? ? File.expand_path(path,dir) : path
|
9
|
-
end
|
10
|
-
def parse_string(string)
|
11
|
-
string.split(';').collect { |classes| classes.split(',') }
|
12
|
-
end
|
13
|
-
def get_path
|
14
|
-
File.open(CONFIG_FILE).readlines.collect do |path|
|
15
|
-
path = absolute_path(path.chomp,File.dirname(__FILE__))
|
16
|
-
end
|
17
|
-
end
|
18
|
-
def join(path,file=".")
|
19
|
-
File.join(path,file)
|
20
|
-
end
|
1
|
+
require 'pathname'
|
2
|
+
|
3
|
+
module PathCommon
|
4
|
+
PROJECT_DIR = "#{File.dirname(__FILE__)}/../"
|
5
|
+
CONFIG_FILE = "#{PROJECT_DIR}etc/templates_path.conf"
|
6
|
+
|
7
|
+
def absolute_path(path,dir=Dir.pwd)
|
8
|
+
Pathname.new(path).relative? ? File.expand_path(path,dir) : path
|
9
|
+
end
|
10
|
+
def parse_string(string)
|
11
|
+
string.split(';').collect { |classes| classes.split(',') }
|
12
|
+
end
|
13
|
+
def get_path
|
14
|
+
File.open(CONFIG_FILE).readlines.collect do |path|
|
15
|
+
path = absolute_path(path.chomp,File.dirname(__FILE__))
|
16
|
+
end
|
17
|
+
end
|
18
|
+
def join(path,file=".")
|
19
|
+
File.join(path,file)
|
20
|
+
end
|
21
21
|
end
|
data/lib/compositecode.rb
CHANGED
@@ -1,82 +1,82 @@
|
|
1
|
-
#--
|
2
|
-
# Copyright (c) 2010 weizhao
|
3
|
-
#
|
4
|
-
require File.dirname(__FILE__)+'/code'
|
5
|
-
require File.dirname(__FILE__)+'/command'
|
6
|
-
|
7
|
-
class CompositeCode < Code
|
8
|
-
attr_accessor :codes
|
9
|
-
|
10
|
-
def initialize(command)
|
11
|
-
@template_dir = command.template_dir
|
12
|
-
@classes = command.classes
|
13
|
-
@operations = command.operations
|
14
|
-
@target_dir = command.target_dir
|
15
|
-
@base_name = command.base_name
|
16
|
-
|
17
|
-
@template_files = Array.new
|
18
|
-
@template_replace_keys = Array.new
|
19
|
-
|
20
|
-
@codes = []
|
21
|
-
end
|
22
|
-
def load_readme
|
23
|
-
eval(File.read( File.join(@template_dir,"readme") ))
|
24
|
-
end
|
25
|
-
|
26
|
-
def classes_to_codes
|
27
|
-
@classes = @classes || @default_classes
|
28
|
-
default_replace_values = get_default_replace_values
|
29
|
-
operations = @operations[0]
|
30
|
-
operations_template = File.open(File.join(@template_dir,"operations")).readlines.join
|
31
|
-
x = 0
|
32
|
-
|
33
|
-
@classes.each do |template_classes|
|
34
|
-
template = @template_files[x] || template
|
35
|
-
key = @template_replace_keys[x] || key
|
36
|
-
operations = @operations[x] || operations
|
37
|
-
x+=1
|
38
|
-
|
39
|
-
template_classes.each do |class_name|
|
40
|
-
replace_values = default_replace_values.clone
|
41
|
-
replace_values["#{key}"] = class_name
|
42
|
-
replace_values["lc_#{key}"] = class_name.downcase
|
43
|
-
replace_values["operations"] = ""
|
44
|
-
operations.each do |operation|
|
45
|
-
replace_values["operations"] << operations_template.gsub("#operation#",operation) unless operation == " "
|
46
|
-
end
|
47
|
-
|
48
|
-
@codes << Code.new( template,
|
49
|
-
File.join(@target_dir,"#{class_name.downcase}#{File.extname(template)}"),
|
50
|
-
replace_values )
|
51
|
-
end
|
52
|
-
end
|
53
|
-
return @codes
|
54
|
-
end
|
55
|
-
|
56
|
-
def get_default_replace_values
|
57
|
-
x = -1
|
58
|
-
default_replace_values = Hash.new
|
59
|
-
@template_replace_keys.each do |key|
|
60
|
-
default_replace_values["#{key}"] = @classes[x+=1][0]
|
61
|
-
default_replace_values["lc_#{key}"] = @classes[x][0].downcase
|
62
|
-
end
|
63
|
-
return default_replace_values
|
64
|
-
end
|
65
|
-
|
66
|
-
def template(template_name,replace_key)
|
67
|
-
@template_files << File.join(@template_dir,template_name)
|
68
|
-
@template_replace_keys << replace_key
|
69
|
-
end
|
70
|
-
def default(*classes_name)
|
71
|
-
@default_classes = []
|
72
|
-
classes_name.each do |class_name|
|
73
|
-
@default_classes << [class_name]
|
74
|
-
end
|
75
|
-
end
|
76
|
-
def execute
|
77
|
-
load_readme
|
78
|
-
classes_to_codes
|
79
|
-
@codes.each { |code| code.execute }
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
1
|
+
#--
|
2
|
+
# Copyright (c) 2010 weizhao
|
3
|
+
#
|
4
|
+
require File.dirname(__FILE__)+'/code'
|
5
|
+
require File.dirname(__FILE__)+'/command'
|
6
|
+
|
7
|
+
class CompositeCode < Code
|
8
|
+
attr_accessor :codes
|
9
|
+
|
10
|
+
def initialize(command)
|
11
|
+
@template_dir = command.template_dir
|
12
|
+
@classes = command.classes
|
13
|
+
@operations = command.operations
|
14
|
+
@target_dir = command.target_dir
|
15
|
+
@base_name = command.base_name
|
16
|
+
|
17
|
+
@template_files = Array.new
|
18
|
+
@template_replace_keys = Array.new
|
19
|
+
|
20
|
+
@codes = []
|
21
|
+
end
|
22
|
+
def load_readme
|
23
|
+
eval(File.read( File.join(@template_dir,"readme") ))
|
24
|
+
end
|
25
|
+
|
26
|
+
def classes_to_codes
|
27
|
+
@classes = @classes || @default_classes
|
28
|
+
default_replace_values = get_default_replace_values
|
29
|
+
operations = @operations[0]
|
30
|
+
operations_template = File.open(File.join(@template_dir,"operations")).readlines.join
|
31
|
+
x = 0
|
32
|
+
|
33
|
+
@classes.each do |template_classes|
|
34
|
+
template = @template_files[x] || template
|
35
|
+
key = @template_replace_keys[x] || key
|
36
|
+
operations = @operations[x] || operations
|
37
|
+
x+=1
|
38
|
+
|
39
|
+
template_classes.each do |class_name|
|
40
|
+
replace_values = default_replace_values.clone
|
41
|
+
replace_values["#{key}"] = class_name
|
42
|
+
replace_values["lc_#{key}"] = class_name.downcase
|
43
|
+
replace_values["operations"] = ""
|
44
|
+
operations.each do |operation|
|
45
|
+
replace_values["operations"] << operations_template.gsub("#operation#",operation) unless operation == " "
|
46
|
+
end
|
47
|
+
|
48
|
+
@codes << Code.new( template,
|
49
|
+
File.join(@target_dir,"#{class_name.downcase}#{File.extname(template)}"),
|
50
|
+
replace_values )
|
51
|
+
end
|
52
|
+
end
|
53
|
+
return @codes
|
54
|
+
end
|
55
|
+
|
56
|
+
def get_default_replace_values
|
57
|
+
x = -1
|
58
|
+
default_replace_values = Hash.new
|
59
|
+
@template_replace_keys.each do |key|
|
60
|
+
default_replace_values["#{key}"] = @classes[x+=1][0]
|
61
|
+
default_replace_values["lc_#{key}"] = @classes[x][0].downcase
|
62
|
+
end
|
63
|
+
return default_replace_values
|
64
|
+
end
|
65
|
+
|
66
|
+
def template(template_name,replace_key)
|
67
|
+
@template_files << File.join(@template_dir,template_name)
|
68
|
+
@template_replace_keys << replace_key
|
69
|
+
end
|
70
|
+
def default(*classes_name)
|
71
|
+
@default_classes = []
|
72
|
+
classes_name.each do |class_name|
|
73
|
+
@default_classes << [class_name]
|
74
|
+
end
|
75
|
+
end
|
76
|
+
def execute
|
77
|
+
load_readme
|
78
|
+
classes_to_codes
|
79
|
+
@codes.each { |code| code.execute }
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
data/lib/configuration.rb
CHANGED
@@ -1,47 +1,47 @@
|
|
1
|
-
# config templates_path
|
2
|
-
# class Config is using
|
3
|
-
|
4
|
-
require File.dirname(__FILE__)+'/common'
|
5
|
-
|
6
|
-
class Configuration
|
7
|
-
include PathCommon
|
8
|
-
|
9
|
-
def initialize
|
10
|
-
end
|
11
|
-
def add_path(path)
|
12
|
-
File.open(CONFIG_FILE,"a") do |file|
|
13
|
-
path.each { |p| file.puts absolute_path(p) }
|
14
|
-
end
|
15
|
-
list_templates_path
|
16
|
-
end
|
17
|
-
def remove_path(path)
|
18
|
-
path_set = get_path - path.collect { |p| p= absolute_path(p) }
|
19
|
-
File.open(CONFIG_FILE,"w") do |file|
|
20
|
-
path_set.each { |p| file.puts p }
|
21
|
-
end
|
22
|
-
list_templates_path
|
23
|
-
end
|
24
|
-
def list
|
25
|
-
list = []
|
26
|
-
get_path.uniq.each do |path|
|
27
|
-
list += Dir.entries(path)
|
28
|
-
end
|
29
|
-
puts list-[".",".."]
|
30
|
-
end
|
31
|
-
def execute(argv)
|
32
|
-
parameters = argv[2..100] || [Dir.pwd]
|
33
|
-
action = argv[1]
|
34
|
-
add_path(parameters) if action=="add"
|
35
|
-
remove_path(parameters) if action == "remove"
|
36
|
-
get_default if action == "default"
|
37
|
-
end
|
38
|
-
def get_default
|
39
|
-
File.open(CONFIG_FILE,"w") do |file|
|
40
|
-
file.puts "../templates"
|
41
|
-
end
|
42
|
-
end
|
43
|
-
def list_templates_path
|
44
|
-
puts "\nNow you get templates path:"
|
45
|
-
puts get_path
|
46
|
-
end
|
1
|
+
# config templates_path
|
2
|
+
# class Config is using
|
3
|
+
|
4
|
+
require File.dirname(__FILE__)+'/common'
|
5
|
+
|
6
|
+
class Configuration
|
7
|
+
include PathCommon
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
end
|
11
|
+
def add_path(path)
|
12
|
+
File.open(CONFIG_FILE,"a") do |file|
|
13
|
+
path.each { |p| file.puts absolute_path(p) }
|
14
|
+
end
|
15
|
+
list_templates_path
|
16
|
+
end
|
17
|
+
def remove_path(path)
|
18
|
+
path_set = get_path - path.collect { |p| p= absolute_path(p) }
|
19
|
+
File.open(CONFIG_FILE,"w") do |file|
|
20
|
+
path_set.each { |p| file.puts p }
|
21
|
+
end
|
22
|
+
list_templates_path
|
23
|
+
end
|
24
|
+
def list
|
25
|
+
list = []
|
26
|
+
get_path.uniq.each do |path|
|
27
|
+
list += Dir.entries(path)
|
28
|
+
end
|
29
|
+
puts list-[".",".."]
|
30
|
+
end
|
31
|
+
def execute(argv)
|
32
|
+
parameters = argv[2..100] || [Dir.pwd]
|
33
|
+
action = argv[1]
|
34
|
+
add_path(parameters) if action=="add"
|
35
|
+
remove_path(parameters) if action == "remove"
|
36
|
+
get_default if action == "default"
|
37
|
+
end
|
38
|
+
def get_default
|
39
|
+
File.open(CONFIG_FILE,"w") do |file|
|
40
|
+
file.puts "../templates"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
def list_templates_path
|
44
|
+
puts "\nNow you get templates path:"
|
45
|
+
puts get_path
|
46
|
+
end
|
47
47
|
end
|