proteus 0.9.0
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/COPYING +674 -0
- data/README +88 -0
- data/Rakefile +33 -0
- data/bin/pro +189 -0
- data/lib/ClassParser.rb +84 -0
- data/lib/ComponentClass.rb +51 -0
- data/lib/ComponentInstance.rb +76 -0
- data/lib/DefinitionHelper.rb +157 -0
- data/lib/DefinitionParser.rb +107 -0
- data/lib/Facade.rb +116 -0
- data/lib/FileHelper.rb +80 -0
- data/lib/InputParser.rb +241 -0
- data/lib/InstanceParser.rb +65 -0
- data/lib/InstanceProxy.rb +100 -0
- data/lib/PropertyHash.rb +64 -0
- data/lib/TemplateRenderer.rb +128 -0
- data/lib/exceptions.rb +50 -0
- data/test/spec/ClassParser_spec.rb +314 -0
- data/test/spec/ComponentClass_spec.rb +44 -0
- data/test/spec/ComponentInstance_spec.rb +50 -0
- data/test/spec/DefinitionHelper_spec.rb +134 -0
- data/test/spec/DefinitionParser_spec.rb +236 -0
- data/test/spec/Facade_spec.rb +44 -0
- data/test/spec/FileHelper_spec.rb +113 -0
- data/test/spec/InputParser_spec.rb +424 -0
- data/test/spec/InstanceParser_spec.rb +125 -0
- data/test/spec/TemplateRenderer_spec.rb +54 -0
- data/test/spec/lib/NS1/TestComponent10.def +4 -0
- data/test/spec/lib/NS1/TestComponent11.def +4 -0
- data/test/spec/lib/NS1/TestComponent4.def +4 -0
- data/test/spec/lib/NS1/TestComponent5.def +4 -0
- data/test/spec/lib/NS1/TestComponent8.def +4 -0
- data/test/spec/lib/NS1/TestComponent9.def +4 -0
- data/test/spec/lib/NS2/TestComponent6.def +4 -0
- data/test/spec/lib/TestComponent1.def +4 -0
- data/test/spec/lib/TestComponent3.def +4 -0
- data/test/spec/test_lib_dir1/File1.def +0 -0
- data/test/spec/test_lib_dir1/File3.def +0 -0
- data/test/spec/test_lib_dir1/NS1/File4.def +0 -0
- data/test/spec/test_lib_dir1/NS1/NS2/File5.def +0 -0
- data/test/spec/test_lib_dir2/File1.def +0 -0
- data/test/spec/test_lib_dir2/File2.def +0 -0
- metadata +113 -0
@@ -0,0 +1,125 @@
|
|
1
|
+
################################################################################
|
2
|
+
# (C) Copyright 2009 William Madden
|
3
|
+
#
|
4
|
+
# This file is part of Proteus.
|
5
|
+
#
|
6
|
+
# Proteus is free software: you can redistribute it and/or modify it under the
|
7
|
+
# terms of the GNU General Public License as published by the Free Software
|
8
|
+
# Foundation, either version 3 of the License, or (at your option) any later
|
9
|
+
# version.
|
10
|
+
#
|
11
|
+
# Proteus is distributed in the hope that it will be useful, but WITHOUT ANY
|
12
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
13
|
+
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License along with
|
16
|
+
# Proteus. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
################################################################################
|
18
|
+
|
19
|
+
require File.expand_path( 'lib/InstanceParser.rb' )
|
20
|
+
|
21
|
+
include Proteus
|
22
|
+
|
23
|
+
|
24
|
+
describe InstanceParser do
|
25
|
+
|
26
|
+
#-----------------------------------------------------------------------------
|
27
|
+
#
|
28
|
+
# Input Constants
|
29
|
+
#
|
30
|
+
#-----------------------------------------------------------------------------
|
31
|
+
|
32
|
+
@@HASH_1 = {
|
33
|
+
"property1" => "value1",
|
34
|
+
"property2" => "value2",
|
35
|
+
"property3" => "value3"
|
36
|
+
}
|
37
|
+
|
38
|
+
@@CHILDREN_1 = [
|
39
|
+
"child 1",
|
40
|
+
"child 2",
|
41
|
+
"child 3"
|
42
|
+
]
|
43
|
+
|
44
|
+
@@HASH_2 = {
|
45
|
+
"property1" => "value1",
|
46
|
+
"property2" => "value2",
|
47
|
+
"property3" => "value3",
|
48
|
+
"children" => @@CHILDREN_1
|
49
|
+
}
|
50
|
+
|
51
|
+
@@SCALAR_1 = "child 1"
|
52
|
+
|
53
|
+
@@CHILDREN_2 = [ @@SCALAR_1 ]
|
54
|
+
|
55
|
+
@@LIST_1 = @@CHILDREN_1
|
56
|
+
|
57
|
+
#-----------------------------------------------------------------------------
|
58
|
+
#
|
59
|
+
# Set up, tear down
|
60
|
+
#
|
61
|
+
#-----------------------------------------------------------------------------
|
62
|
+
|
63
|
+
#------------------------------
|
64
|
+
# before(:all)
|
65
|
+
#------------------------------
|
66
|
+
|
67
|
+
before(:all) do
|
68
|
+
@instance_parser = InstanceParser.new
|
69
|
+
end
|
70
|
+
|
71
|
+
#-----------------------------------------------------------------------------
|
72
|
+
#
|
73
|
+
# Tests
|
74
|
+
#
|
75
|
+
#-----------------------------------------------------------------------------
|
76
|
+
|
77
|
+
|
78
|
+
it "should interpret a hash as properties" do
|
79
|
+
|
80
|
+
comp = @instance_parser.parse_yaml( @@HASH_1 )
|
81
|
+
comp.properties.should == @@HASH_1
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
|
86
|
+
it "should interpret a 'children' property as children" do
|
87
|
+
|
88
|
+
comp = @instance_parser.parse_yaml( @@HASH_2 )
|
89
|
+
|
90
|
+
comp.children.should == @@CHILDREN_1
|
91
|
+
comp.properties.should == @@HASH_1
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
|
96
|
+
it "should interpret a list as children" do
|
97
|
+
|
98
|
+
comp = @instance_parser.parse_yaml( @@LIST_1 )
|
99
|
+
|
100
|
+
comp.properties.should == {}
|
101
|
+
comp.children.should == @@CHILDREN_1
|
102
|
+
|
103
|
+
end
|
104
|
+
|
105
|
+
|
106
|
+
it "should interpret a scalar as a single child" do
|
107
|
+
|
108
|
+
comp = @instance_parser.parse_yaml( @@SCALAR_1 )
|
109
|
+
|
110
|
+
comp.children.should == @@CHILDREN_2
|
111
|
+
comp.properties.should == {}
|
112
|
+
|
113
|
+
end
|
114
|
+
|
115
|
+
|
116
|
+
it "should interpret nil as a blank component" do
|
117
|
+
|
118
|
+
comp = @instance_parser.parse_yaml( nil )
|
119
|
+
|
120
|
+
comp.properties.should == {}
|
121
|
+
comp.children.should == []
|
122
|
+
|
123
|
+
end
|
124
|
+
|
125
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
################################################################################
|
2
|
+
# (C) Copyright 2009 William Madden
|
3
|
+
#
|
4
|
+
# This file is part of Proteus.
|
5
|
+
#
|
6
|
+
# Proteus is free software: you can redistribute it and/or modify it under the
|
7
|
+
# terms of the GNU General Public License as published by the Free Software
|
8
|
+
# Foundation, either version 3 of the License, or (at your option) any later
|
9
|
+
# version.
|
10
|
+
#
|
11
|
+
# Proteus is distributed in the hope that it will be useful, but WITHOUT ANY
|
12
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
13
|
+
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License along with
|
16
|
+
# Proteus. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
################################################################################
|
18
|
+
|
19
|
+
require File.expand_path( 'lib/TemplateRenderer.rb' )
|
20
|
+
|
21
|
+
include Proteus
|
22
|
+
|
23
|
+
|
24
|
+
describe TemplateRenderer do
|
25
|
+
|
26
|
+
#-----------------------------------------------------------------------------
|
27
|
+
#
|
28
|
+
# Input Constants
|
29
|
+
#
|
30
|
+
#-----------------------------------------------------------------------------
|
31
|
+
|
32
|
+
#-----------------------------------------------------------------------------
|
33
|
+
#
|
34
|
+
# Set up, tear down
|
35
|
+
#
|
36
|
+
#-----------------------------------------------------------------------------
|
37
|
+
|
38
|
+
#-----------------------------------------------------------------------------
|
39
|
+
#
|
40
|
+
# Tests
|
41
|
+
#
|
42
|
+
#-----------------------------------------------------------------------------
|
43
|
+
|
44
|
+
it "should render components by parsing the template property using ERB"
|
45
|
+
|
46
|
+
it "should render component templates in the scope of the component instance"
|
47
|
+
|
48
|
+
it "should render scalars by calling their to_s method"
|
49
|
+
|
50
|
+
it "should render arrays by concatenating their rendered elements"
|
51
|
+
|
52
|
+
it "should render hashes by rendering their values, then calling the hash's to_s method"
|
53
|
+
|
54
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
metadata
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: proteus
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.9.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- William Madden
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-06-20 00:00:00 +10:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: Proteus is an abstraction of general document definition and display markup that allows you to create and reuse complex patterns of structured content.
|
17
|
+
email: w.a.madden@gmail.com
|
18
|
+
executables:
|
19
|
+
- pro
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files: []
|
23
|
+
|
24
|
+
files:
|
25
|
+
- lib/TemplateRenderer.rb
|
26
|
+
- lib/ClassParser.rb
|
27
|
+
- lib/DefinitionParser.rb
|
28
|
+
- lib/ComponentInstance.rb
|
29
|
+
- lib/InstanceProxy.rb
|
30
|
+
- lib/ComponentClass.rb
|
31
|
+
- lib/FileHelper.rb
|
32
|
+
- lib/DefinitionHelper.rb
|
33
|
+
- lib/PropertyHash.rb
|
34
|
+
- lib/InstanceParser.rb
|
35
|
+
- lib/exceptions.rb
|
36
|
+
- lib/InputParser.rb
|
37
|
+
- lib/Facade.rb
|
38
|
+
- bin/pro
|
39
|
+
- Rakefile
|
40
|
+
- README
|
41
|
+
- COPYING
|
42
|
+
- test/spec
|
43
|
+
- test/spec/Facade_spec.rb
|
44
|
+
- test/spec/test_lib_dir2
|
45
|
+
- test/spec/test_lib_dir2/File1.def
|
46
|
+
- test/spec/test_lib_dir2/File2.def
|
47
|
+
- test/spec/DefinitionHelper_spec.rb
|
48
|
+
- test/spec/DefinitionParser_spec.rb
|
49
|
+
- test/spec/lib
|
50
|
+
- test/spec/lib/TestComponent3.def
|
51
|
+
- test/spec/lib/TestComponent1.def
|
52
|
+
- test/spec/lib/NS2
|
53
|
+
- test/spec/lib/NS2/TestComponent6.def
|
54
|
+
- test/spec/lib/NS1
|
55
|
+
- test/spec/lib/NS1/TestComponent10.def
|
56
|
+
- test/spec/lib/NS1/TestComponent5.def
|
57
|
+
- test/spec/lib/NS1/TestComponent11.def
|
58
|
+
- test/spec/lib/NS1/TestComponent4.def
|
59
|
+
- test/spec/lib/NS1/TestComponent9.def
|
60
|
+
- test/spec/lib/NS1/TestComponent8.def
|
61
|
+
- test/spec/FileHelper_spec.rb
|
62
|
+
- test/spec/ClassParser_spec.rb
|
63
|
+
- test/spec/InstanceParser_spec.rb
|
64
|
+
- test/spec/ComponentClass_spec.rb
|
65
|
+
- test/spec/test_lib_dir1
|
66
|
+
- test/spec/test_lib_dir1/File1.def
|
67
|
+
- test/spec/test_lib_dir1/NS1
|
68
|
+
- test/spec/test_lib_dir1/NS1/NS2
|
69
|
+
- test/spec/test_lib_dir1/NS1/NS2/File5.def
|
70
|
+
- test/spec/test_lib_dir1/NS1/File4.def
|
71
|
+
- test/spec/test_lib_dir1/File3.def
|
72
|
+
- test/spec/InputParser_spec.rb
|
73
|
+
- test/spec/ComponentInstance_spec.rb
|
74
|
+
- test/spec/TemplateRenderer_spec.rb
|
75
|
+
has_rdoc: true
|
76
|
+
homepage: http://proteus.rubyforge.org
|
77
|
+
post_install_message:
|
78
|
+
rdoc_options:
|
79
|
+
- --title
|
80
|
+
- Proteus
|
81
|
+
- --line-numbers
|
82
|
+
require_paths:
|
83
|
+
- lib
|
84
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: "0"
|
89
|
+
version:
|
90
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: "0"
|
95
|
+
version:
|
96
|
+
requirements: []
|
97
|
+
|
98
|
+
rubyforge_project: proteus
|
99
|
+
rubygems_version: 1.3.1
|
100
|
+
signing_key:
|
101
|
+
specification_version: 2
|
102
|
+
summary: Tool for generating structured text documents from abstract markup.
|
103
|
+
test_files:
|
104
|
+
- test/spec/Facade_spec.rb
|
105
|
+
- test/spec/DefinitionHelper_spec.rb
|
106
|
+
- test/spec/DefinitionParser_spec.rb
|
107
|
+
- test/spec/FileHelper_spec.rb
|
108
|
+
- test/spec/ClassParser_spec.rb
|
109
|
+
- test/spec/InstanceParser_spec.rb
|
110
|
+
- test/spec/ComponentClass_spec.rb
|
111
|
+
- test/spec/InputParser_spec.rb
|
112
|
+
- test/spec/ComponentInstance_spec.rb
|
113
|
+
- test/spec/TemplateRenderer_spec.rb
|