pattern 0.9.4 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/lib/patterncode.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
#--
|
2
|
-
# Copyright (c) 2010 weizhao
|
3
|
-
#
|
4
|
-
require 'code'
|
5
|
-
class PatternCode < Code
|
6
|
-
|
1
|
+
#--
|
2
|
+
# Copyright (c) 2010 weizhao
|
3
|
+
#
|
4
|
+
require 'code'
|
5
|
+
class PatternCode < Code
|
6
|
+
|
7
7
|
end
|
data/lib/version.rb
CHANGED
@@ -1,32 +1,32 @@
|
|
1
|
-
module Pattern
|
2
|
-
module VERSION #:nodoc:
|
3
|
-
MAJOR = 0
|
4
|
-
MINOR = 9
|
5
|
-
TINY =
|
6
|
-
|
7
|
-
STRING = [MAJOR, MINOR, TINY].join('.')
|
8
|
-
end
|
9
|
-
module HELP
|
10
|
-
STRING = <<-EOF
|
11
|
-
pattern is a tool for coding/learning pattern/data structure.
|
12
|
-
Usage:
|
13
|
-
pattern -h/--help
|
14
|
-
pattern -v/--version
|
15
|
-
pattern -l/--list
|
16
|
-
pattern -s/--set [add/remove/default] [template_dir]
|
17
|
-
pattern [tempate_dir] [main_class_name] [-d target_dir]
|
18
|
-
pattern [-t tempate_dir] [-d target_dir("." is default)] [-c classes_name] [-op operations_name]
|
19
|
-
Examples:
|
20
|
-
pattern -l List template you get
|
21
|
-
pattern -s add . Add current dir as templates path
|
22
|
-
pattern ruby.composite Task Generate a composite pattern ,which base class name as Task
|
23
|
-
pattern -t ruby.composite -d E:/dev/pattern/target -c Task;CompositeTask;AddDryIngredientsTask,MixTask;MakeBatterTask -op execute,test
|
24
|
-
Further Help:
|
25
|
-
Further information:
|
26
|
-
https://github.com/azhao1981/pattern
|
27
|
-
EOF
|
28
|
-
WELLCOME = <<-EOF
|
29
|
-
Thanks for using pattern beta.You get idea or Question.Mailto:azhao.1981@gmail.com
|
30
|
-
EOF
|
31
|
-
end
|
32
|
-
end
|
1
|
+
module Pattern
|
2
|
+
module VERSION #:nodoc:
|
3
|
+
MAJOR = 0
|
4
|
+
MINOR = 9
|
5
|
+
TINY = 5
|
6
|
+
|
7
|
+
STRING = [MAJOR, MINOR, TINY].join('.')
|
8
|
+
end
|
9
|
+
module HELP
|
10
|
+
STRING = <<-EOF
|
11
|
+
pattern is a tool for coding/learning pattern/data structure.
|
12
|
+
Usage:
|
13
|
+
pattern -h/--help
|
14
|
+
pattern -v/--version
|
15
|
+
pattern -l/--list
|
16
|
+
pattern -s/--set [add/remove/default] [template_dir]
|
17
|
+
pattern [tempate_dir] [main_class_name] [-d target_dir]
|
18
|
+
pattern [-t tempate_dir] [-d target_dir("." is default)] [-c classes_name] [-op operations_name]
|
19
|
+
Examples:
|
20
|
+
pattern -l List template you get
|
21
|
+
pattern -s add . Add current dir as templates path
|
22
|
+
pattern ruby.composite Task Generate a composite pattern ,which base class name as Task
|
23
|
+
pattern -t ruby.composite -d E:/dev/pattern/target -c Task;CompositeTask;AddDryIngredientsTask,MixTask;MakeBatterTask -op execute,test
|
24
|
+
Further Help:
|
25
|
+
Further information:
|
26
|
+
https://github.com/azhao1981/pattern
|
27
|
+
EOF
|
28
|
+
WELLCOME = <<-EOF
|
29
|
+
Thanks for using pattern beta.You get idea or Question.Mailto:azhao.1981@gmail.com
|
30
|
+
EOF
|
31
|
+
end
|
32
|
+
end
|
@@ -1,12 +1,12 @@
|
|
1
|
-
# This is code of composite pattern . Generated by
|
2
|
-
#
|
3
|
-
|
4
|
-
class #class_name#
|
5
|
-
attr_accessor :name,:parent
|
6
|
-
def initialize(name)
|
7
|
-
@name = name
|
8
|
-
@parent = nil
|
9
|
-
end
|
10
|
-
# TODO: operations
|
11
|
-
#operations#
|
12
|
-
end
|
1
|
+
# This is code of composite pattern . Generated by pattern.
|
2
|
+
#
|
3
|
+
|
4
|
+
class #class_name#
|
5
|
+
attr_accessor :name,:parent
|
6
|
+
def initialize(name)
|
7
|
+
@name = name
|
8
|
+
@parent = nil
|
9
|
+
end
|
10
|
+
# TODO: operations
|
11
|
+
#operations#
|
12
|
+
end
|
@@ -1,32 +1,32 @@
|
|
1
|
-
# This is code of composite pattern . Generated by
|
2
|
-
#
|
3
|
-
require "#lc_class_name#"
|
4
|
-
|
5
|
-
class #composite_name# < #class_name#
|
6
|
-
def initialize(name)
|
7
|
-
super(name)
|
8
|
-
@sub_#lc_class_name#s = []
|
9
|
-
end
|
10
|
-
def add_sub_#lc_class_name#(#lc_class_name#)
|
11
|
-
@sub_#lc_class_name#s << #lc_class_name#
|
12
|
-
#lc_class_name#.parent = self
|
13
|
-
end
|
14
|
-
def remove_sub_#lc_class_name#(#lc_class_name#)
|
15
|
-
@sub_#lc_class_name#s.delete(#lc_class_name#)
|
16
|
-
#lc_class_name#.parent = nil
|
17
|
-
end
|
18
|
-
def << (#lc_class_name#)
|
19
|
-
@sub_#lc_class_name#s << #lc_class_name#
|
20
|
-
#lc_class_name#.parent = self
|
21
|
-
end
|
22
|
-
def [](index)
|
23
|
-
@sub_#lc_class_name#s[index]
|
24
|
-
end
|
25
|
-
def []=(index,new_value)
|
26
|
-
@sub_#lc_class_name#s[index].parent = nil
|
27
|
-
@sub_#lc_class_name#s[index] = new_value
|
28
|
-
@sub_#lc_class_name#s[index].parent = self
|
29
|
-
end
|
30
|
-
# TODO: operations
|
31
|
-
#operations#
|
32
|
-
end
|
1
|
+
# This is code of composite pattern . Generated by pattern.
|
2
|
+
#
|
3
|
+
require "#lc_class_name#"
|
4
|
+
|
5
|
+
class #composite_name# < #class_name#
|
6
|
+
def initialize(name)
|
7
|
+
super(name)
|
8
|
+
@sub_#lc_class_name#s = []
|
9
|
+
end
|
10
|
+
def add_sub_#lc_class_name#(#lc_class_name#)
|
11
|
+
@sub_#lc_class_name#s << #lc_class_name#
|
12
|
+
#lc_class_name#.parent = self
|
13
|
+
end
|
14
|
+
def remove_sub_#lc_class_name#(#lc_class_name#)
|
15
|
+
@sub_#lc_class_name#s.delete(#lc_class_name#)
|
16
|
+
#lc_class_name#.parent = nil
|
17
|
+
end
|
18
|
+
def << (#lc_class_name#)
|
19
|
+
@sub_#lc_class_name#s << #lc_class_name#
|
20
|
+
#lc_class_name#.parent = self
|
21
|
+
end
|
22
|
+
def [](index)
|
23
|
+
@sub_#lc_class_name#s[index]
|
24
|
+
end
|
25
|
+
def []=(index,new_value)
|
26
|
+
@sub_#lc_class_name#s[index].parent = nil
|
27
|
+
@sub_#lc_class_name#s[index] = new_value
|
28
|
+
@sub_#lc_class_name#s[index].parent = self
|
29
|
+
end
|
30
|
+
# TODO: operations
|
31
|
+
#operations#
|
32
|
+
end
|
@@ -1,13 +1,13 @@
|
|
1
|
-
# This is code of composite pattern . Generated by
|
2
|
-
#
|
3
|
-
require "#lc_composite_name#"
|
4
|
-
|
5
|
-
class #composite_object_name# < #composite_name#
|
6
|
-
def initialize
|
7
|
-
super("#lc_composite_object_name#")
|
8
|
-
#ToDo :add sub class
|
9
|
-
add_sub_task(#sub_class)
|
10
|
-
end
|
11
|
-
# TODO: operations
|
12
|
-
#operations#
|
13
|
-
end
|
1
|
+
# This is code of composite pattern . Generated by pattern.
|
2
|
+
#
|
3
|
+
require "#lc_composite_name#"
|
4
|
+
|
5
|
+
class #composite_object_name# < #composite_name#
|
6
|
+
def initialize
|
7
|
+
super("#lc_composite_object_name#")
|
8
|
+
#ToDo :add sub class
|
9
|
+
add_sub_task(#sub_class)
|
10
|
+
end
|
11
|
+
# TODO: operations
|
12
|
+
#operations#
|
13
|
+
end
|
@@ -1,11 +1,11 @@
|
|
1
|
-
# This is code of composite pattern . Generated by
|
2
|
-
#
|
3
|
-
require "#lc_class_name#"
|
4
|
-
|
5
|
-
class #leaf_name# < #class_name#
|
6
|
-
def initialize
|
7
|
-
super("#leaf_name#")
|
8
|
-
end
|
9
|
-
# TODO: operations
|
10
|
-
#operations#
|
11
|
-
end
|
1
|
+
# This is code of composite pattern . Generated by pattern.
|
2
|
+
#
|
3
|
+
require "#lc_class_name#"
|
4
|
+
|
5
|
+
class #leaf_name# < #class_name#
|
6
|
+
def initialize
|
7
|
+
super("#leaf_name#")
|
8
|
+
end
|
9
|
+
# TODO: operations
|
10
|
+
#operations#
|
11
|
+
end
|
@@ -1,3 +1,3 @@
|
|
1
|
-
def #operation#
|
2
|
-
|
3
|
-
end
|
1
|
+
def #operation#
|
2
|
+
|
3
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
template "component.rb","class_name"
|
2
|
-
template "composite.rb","composite_name"
|
3
|
-
template "leaf.rb","leaf_name"
|
4
|
-
template "compositeobject.rb","composite_object_name"
|
1
|
+
template "component.rb","class_name"
|
2
|
+
template "composite.rb","composite_name"
|
3
|
+
template "leaf.rb","leaf_name"
|
4
|
+
template "compositeobject.rb","composite_object_name"
|
5
5
|
default @base_name,"Composite#{@base_name}","Leaf#{@base_name}","CompositeObject#{@base_name}"
|
data/test/code_spec.rb
CHANGED
@@ -1,35 +1,35 @@
|
|
1
|
-
#--
|
2
|
-
# Copyright (c) 2010 weizhao
|
3
|
-
#
|
4
|
-
require File.dirname(__FILE__) + '/../lib/code'
|
5
|
-
require File.dirname(__FILE__) + '/../lib/common'
|
6
|
-
include PathCommon
|
7
|
-
|
8
|
-
describe Code do
|
9
|
-
before(:each) do
|
10
|
-
template_file_name = absolute_path("../templates/ruby.composite/component.rb",File.dirname(__FILE__))
|
11
|
-
target_file_name = absolute_path("../temp/task",File.dirname(__FILE__))
|
12
|
-
@target_file_name_test = target_file_name
|
13
|
-
replace_values = {"class_name"=>"Task","operations"=>" def execute\n \t\n end\n"}
|
14
|
-
@component_code = Code.new(template_file_name,target_file_name,replace_values)
|
15
|
-
end
|
16
|
-
it "1. replace_template should return template contain 'Task' & 'execute' " do
|
17
|
-
template = @component_code.replace_template
|
18
|
-
(/Task/ =~ template).should > 0
|
19
|
-
(/execute/ =~ template).should > 0
|
20
|
-
end
|
21
|
-
|
22
|
-
it "2. generate_code should create a new file" do
|
23
|
-
@component_code.generate_code
|
24
|
-
template = File.open(@target_file_name_test).readlines.join
|
25
|
-
(/Task/ =~ template).should be > 0
|
26
|
-
(/execute/ =~ template).should be > 0
|
27
|
-
end
|
28
|
-
|
29
|
-
it "3. execute will do generate_code " do
|
30
|
-
@component_code.execute
|
31
|
-
template = File.open(@target_file_name_test).readlines.join
|
32
|
-
(/Task/ =~ template).should be > 0
|
33
|
-
(/execute/ =~ template).should be > 0
|
34
|
-
end
|
1
|
+
#--
|
2
|
+
# Copyright (c) 2010 weizhao
|
3
|
+
#
|
4
|
+
require File.dirname(__FILE__) + '/../lib/code'
|
5
|
+
require File.dirname(__FILE__) + '/../lib/common'
|
6
|
+
include PathCommon
|
7
|
+
|
8
|
+
describe Code do
|
9
|
+
before(:each) do
|
10
|
+
template_file_name = absolute_path("../templates/ruby.composite/component.rb",File.dirname(__FILE__))
|
11
|
+
target_file_name = absolute_path("../temp/task",File.dirname(__FILE__))
|
12
|
+
@target_file_name_test = target_file_name
|
13
|
+
replace_values = {"class_name"=>"Task","operations"=>" def execute\n \t\n end\n"}
|
14
|
+
@component_code = Code.new(template_file_name,target_file_name,replace_values)
|
15
|
+
end
|
16
|
+
it "1. replace_template should return template contain 'Task' & 'execute' " do
|
17
|
+
template = @component_code.replace_template
|
18
|
+
(/Task/ =~ template).should > 0
|
19
|
+
(/execute/ =~ template).should > 0
|
20
|
+
end
|
21
|
+
|
22
|
+
it "2. generate_code should create a new file" do
|
23
|
+
@component_code.generate_code
|
24
|
+
template = File.open(@target_file_name_test).readlines.join
|
25
|
+
(/Task/ =~ template).should be > 0
|
26
|
+
(/execute/ =~ template).should be > 0
|
27
|
+
end
|
28
|
+
|
29
|
+
it "3. execute will do generate_code " do
|
30
|
+
@component_code.execute
|
31
|
+
template = File.open(@target_file_name_test).readlines.join
|
32
|
+
(/Task/ =~ template).should be > 0
|
33
|
+
(/execute/ =~ template).should be > 0
|
34
|
+
end
|
35
35
|
end
|
data/test/command_spec.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../lib/command'
|
2
|
-
|
3
|
-
describe Command do
|
4
|
-
before(:each) do
|
5
|
-
params = "-t ruby.composite -c Task;compositeTask;AddDryIngredientsTask,MixTask;MakeBatterTask -op execute".split(" ")
|
6
|
-
@command = Command.new(params)
|
7
|
-
end
|
8
|
-
it "1. Command.new should get right parameter form param" do
|
9
|
-
@command.template_dir.should == "E:/dev/pattern/templates/ruby.composite"
|
10
|
-
@command.classes.should == [["Task"],["compositeTask"],
|
11
|
-
["AddDryIngredientsTask","MixTask"],["MakeBatterTask"]]
|
12
|
-
@command.operations.should == [['execute']]
|
13
|
-
@command.target_dir.should == "E:/dev/pattern"
|
14
|
-
end
|
15
|
-
it "2. absolute_path should return absolute path " do
|
16
|
-
@command.absolute_path("../templates/ruby.composite","./bin/../lib").should == "E:/dev/pattern/templates/ruby.composite"
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
1
|
+
require File.dirname(__FILE__) + '/../lib/command'
|
2
|
+
|
3
|
+
describe Command do
|
4
|
+
before(:each) do
|
5
|
+
params = "-t ruby.composite -c Task;compositeTask;AddDryIngredientsTask,MixTask;MakeBatterTask -op execute".split(" ")
|
6
|
+
@command = Command.new(params)
|
7
|
+
end
|
8
|
+
it "1. Command.new should get right parameter form param" do
|
9
|
+
@command.template_dir.should == "E:/dev/pattern/templates/ruby.composite"
|
10
|
+
@command.classes.should == [["Task"],["compositeTask"],
|
11
|
+
["AddDryIngredientsTask","MixTask"],["MakeBatterTask"]]
|
12
|
+
@command.operations.should == [['execute']]
|
13
|
+
@command.target_dir.should == "E:/dev/pattern"
|
14
|
+
end
|
15
|
+
it "2. absolute_path should return absolute path " do
|
16
|
+
@command.absolute_path("../templates/ruby.composite","./bin/../lib").should == "E:/dev/pattern/templates/ruby.composite"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|