xamplr-gen 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +22 -0
- data/COPYING +619 -0
- data/LICENSE +4 -0
- data/Makefile +11 -0
- data/README.md +33 -0
- data/Rakefile +66 -0
- data/VERSION +1 -0
- data/bin/xampl-gen +17 -0
- data/features/step_definitions/xamplr-gen_steps.rb +0 -0
- data/features/support/env.rb +6 -0
- data/features/xamplr-gen.feature +9 -0
- data/lib/xamplr-gen.rb +13 -0
- data/lib/xamplr-gen/.cvsignore +1 -0
- data/lib/xamplr-gen/graphml-out.rb +449 -0
- data/lib/xamplr-gen/my.gen.elements.xml +461 -0
- data/lib/xamplr-gen/simpleTemplate/danger.rx +4 -0
- data/lib/xamplr-gen/simpleTemplate/obsolete/input-c.r4 +35 -0
- data/lib/xamplr-gen/simpleTemplate/obsolete/play.r6.txt +12 -0
- data/lib/xamplr-gen/simpleTemplate/obsolete/play_more.r6.txt +20 -0
- data/lib/xamplr-gen/simpleTemplate/obsolete/test001.r5 +8 -0
- data/lib/xamplr-gen/simpleTemplate/obsolete/test002.r5 +13 -0
- data/lib/xamplr-gen/simpleTemplate/obsolete/test003.r5 +37 -0
- data/lib/xamplr-gen/simpleTemplate/old/r6.000.rb +122 -0
- data/lib/xamplr-gen/simpleTemplate/old/r6.001.rb +145 -0
- data/lib/xamplr-gen/simpleTemplate/play.r6 +12 -0
- data/lib/xamplr-gen/simpleTemplate/play_more.r6 +20 -0
- data/lib/xamplr-gen/simpleTemplate/play_noblanks.r6 +21 -0
- data/lib/xamplr-gen/simpleTemplate/playq.r6 +16 -0
- data/lib/xamplr-gen/simpleTemplate/r6.rb +87 -0
- data/lib/xamplr-gen/simpleTemplate/simple-template.rb +75 -0
- data/lib/xamplr-gen/templates/.cvsignore +3 -0
- data/lib/xamplr-gen/templates/child.template +47 -0
- data/lib/xamplr-gen/templates/child_indexed.template +89 -0
- data/lib/xamplr-gen/templates/child_modules.template +5 -0
- data/lib/xamplr-gen/templates/element_classes.template +11 -0
- data/lib/xamplr-gen/templates/element_data.template +283 -0
- data/lib/xamplr-gen/templates/element_empty.template +277 -0
- data/lib/xamplr-gen/templates/element_mixed.template +278 -0
- data/lib/xamplr-gen/templates/element_simple.template +277 -0
- data/lib/xamplr-gen/templates/package.template +38 -0
- data/lib/xamplr-gen/xampl-cl-gen.rb +89 -0
- data/lib/xamplr-gen/xampl-generator.rb +561 -0
- data/lib/xamplr-gen/xampl-hand-generated.rb +1534 -0
- data/lib/xamplr-gen/yuml-out.rb +127 -0
- data/licence.rb +17 -0
- data/test/helper.rb +10 -0
- data/test/test_xamplr-gen.rb +7 -0
- data/xamplr-gen.gemspec +98 -0
- metadata +124 -0
@@ -0,0 +1,127 @@
|
|
1
|
+
|
2
|
+
module XamplGenerator
|
3
|
+
|
4
|
+
class YUMLOut
|
5
|
+
|
6
|
+
def initialize(elements_map)
|
7
|
+
@elements_map = elements_map
|
8
|
+
end
|
9
|
+
|
10
|
+
def generate_class_nodes(element, include_mixins)
|
11
|
+
return if ignore_package(element.package)
|
12
|
+
|
13
|
+
class_name = "#{ element.package }::#{ element.class_name }"
|
14
|
+
mixin_name = "#{ element.package }::#{ element.class_name }"
|
15
|
+
|
16
|
+
@class_by_nstag[element.nstag] = element
|
17
|
+
@class_names_by_nstag[element.nstag] = class_name
|
18
|
+
|
19
|
+
if element.persisted then
|
20
|
+
write_entity_node(class_name, element.kind)
|
21
|
+
else
|
22
|
+
write_internal_node(class_name, element.kind)
|
23
|
+
end
|
24
|
+
|
25
|
+
if include_mixins then
|
26
|
+
write_mixin_node(class_name)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def generate_edges(element, include_mixins)
|
31
|
+
return if ignore_package(element.package)
|
32
|
+
|
33
|
+
element_name = @class_names_by_nstag[ element.nstag ]
|
34
|
+
|
35
|
+
element.child_element_child.each do | celement |
|
36
|
+
next if ignore_package(celement.package)
|
37
|
+
|
38
|
+
celement_name = @class_names_by_nstag[ celement.name ]
|
39
|
+
referenced_element = @class_by_nstag[ celement.name ]
|
40
|
+
|
41
|
+
if referenced_element.persisted then
|
42
|
+
write_entity_ref_edge(element_name, celement_name)
|
43
|
+
else
|
44
|
+
write_internal_ref_edge(element_name, celement_name)
|
45
|
+
end
|
46
|
+
if include_mixins then
|
47
|
+
write_mixin_ref_edge(element_name, celement_name)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def ignore_package(package)
|
53
|
+
return true if @excluded_packages.member?(package)
|
54
|
+
return false if @included_packages.nil?
|
55
|
+
return true unless @included_packages.member?(package)
|
56
|
+
return false
|
57
|
+
end
|
58
|
+
|
59
|
+
def write_yuml(base_filename, excluded_packages=[ ], included_packages=nil, include_mixins=false)
|
60
|
+
filename = "#{ base_filename }.yuml"
|
61
|
+
|
62
|
+
@excluded_packages = Set.new(excluded_packages)
|
63
|
+
@included_packages = included_packages ? Set.new(included_packages) : nil
|
64
|
+
|
65
|
+
@class_names_by_nstag = {} # NOTE -- this is used by yuml!!
|
66
|
+
@class_by_nstag = {} # NOTE -- this is used by yuml!!
|
67
|
+
|
68
|
+
@initialise_output = true
|
69
|
+
|
70
|
+
File.open(filename, "w") do | out |
|
71
|
+
@out = out
|
72
|
+
|
73
|
+
@elements_map.each_value do |elements|
|
74
|
+
elements.element_child.each do |element|
|
75
|
+
generate_class_nodes(element, include_mixins)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
@elements_map.each_value do |elements|
|
80
|
+
elements.element_child.each do |element|
|
81
|
+
generate_edges(element, include_mixins)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
return nil
|
87
|
+
end
|
88
|
+
|
89
|
+
def new_statement
|
90
|
+
if @initialise_output then
|
91
|
+
@initialise_output = false
|
92
|
+
else
|
93
|
+
@out << ",\n"
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
def write_entity_node(class_name, kind)
|
98
|
+
new_statement
|
99
|
+
@out << "[#{ class_name }{bg:red}]"
|
100
|
+
end
|
101
|
+
|
102
|
+
def write_internal_node(class_name, kind)
|
103
|
+
new_statement
|
104
|
+
@out << "[#{ class_name }{bg:blue}]"
|
105
|
+
end
|
106
|
+
|
107
|
+
def write_mixin_node(class_name)
|
108
|
+
new_statement
|
109
|
+
@out << "[#{ class_name }Mixin]"
|
110
|
+
end
|
111
|
+
|
112
|
+
def write_entity_ref_edge(class_node, external_node)
|
113
|
+
new_statement
|
114
|
+
@out << "[#{ class_node }]->[#{ external_node }]"
|
115
|
+
end
|
116
|
+
|
117
|
+
def write_internal_ref_edge(class_node, internal_node)
|
118
|
+
new_statement
|
119
|
+
@out << "[#{ class_node }]->[#{ internal_node }]"
|
120
|
+
end
|
121
|
+
|
122
|
+
def write_mixin_ref_edge(class_node, mixin_node)
|
123
|
+
new_statement
|
124
|
+
@out << "[#{ mixin_node }Mixin]^[#{ class_node }]"
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
data/licence.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#this file is part of the xamplr-gen project (http://xampl.com/)
|
2
|
+
#
|
3
|
+
# Copyright (C) <year> <name of author>
|
4
|
+
#
|
5
|
+
#This program is free software: you can redistribute it and/or modify
|
6
|
+
#it under the terms of the GNU Affero General Public License as published by
|
7
|
+
#the Free Software Foundation, either version 3 of the License, or
|
8
|
+
#(at your option) any later version.
|
9
|
+
#
|
10
|
+
#This program is distributed in the hope that it will be useful,
|
11
|
+
#but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
#GNU Affero General Public License for more details.
|
14
|
+
#
|
15
|
+
#You should have received a copy of the GNU Affero General Public License
|
16
|
+
#along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
#
|
data/test/helper.rb
ADDED
data/xamplr-gen.gemspec
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{xamplr-gen}
|
8
|
+
s.version = "1.9.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Bob Hutchison"]
|
12
|
+
s.date = %q{2009-12-27}
|
13
|
+
s.default_executable = %q{xampl-gen}
|
14
|
+
s.description = %q{This is the xampl code generator for Ruby.}
|
15
|
+
s.email = %q{hutch@xampl.com}
|
16
|
+
s.executables = ["xampl-gen"]
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"LICENSE",
|
19
|
+
"README.md"
|
20
|
+
]
|
21
|
+
s.files = [
|
22
|
+
".document",
|
23
|
+
".gitignore",
|
24
|
+
"COPYING",
|
25
|
+
"LICENSE",
|
26
|
+
"Makefile",
|
27
|
+
"README.md",
|
28
|
+
"Rakefile",
|
29
|
+
"VERSION",
|
30
|
+
"bin/xampl-gen",
|
31
|
+
"features/step_definitions/xamplr-gen_steps.rb",
|
32
|
+
"features/support/env.rb",
|
33
|
+
"features/xamplr-gen.feature",
|
34
|
+
"lib/xamplr-gen.rb",
|
35
|
+
"lib/xamplr-gen/.cvsignore",
|
36
|
+
"lib/xamplr-gen/graphml-out.rb",
|
37
|
+
"lib/xamplr-gen/my.gen.elements.xml",
|
38
|
+
"lib/xamplr-gen/simpleTemplate/danger.rx",
|
39
|
+
"lib/xamplr-gen/simpleTemplate/obsolete/input-c.r4",
|
40
|
+
"lib/xamplr-gen/simpleTemplate/obsolete/play.r6.txt",
|
41
|
+
"lib/xamplr-gen/simpleTemplate/obsolete/play_more.r6.txt",
|
42
|
+
"lib/xamplr-gen/simpleTemplate/obsolete/test001.r5",
|
43
|
+
"lib/xamplr-gen/simpleTemplate/obsolete/test002.r5",
|
44
|
+
"lib/xamplr-gen/simpleTemplate/obsolete/test003.r5",
|
45
|
+
"lib/xamplr-gen/simpleTemplate/old/r6.000.rb",
|
46
|
+
"lib/xamplr-gen/simpleTemplate/old/r6.001.rb",
|
47
|
+
"lib/xamplr-gen/simpleTemplate/play.r6",
|
48
|
+
"lib/xamplr-gen/simpleTemplate/play_more.r6",
|
49
|
+
"lib/xamplr-gen/simpleTemplate/play_noblanks.r6",
|
50
|
+
"lib/xamplr-gen/simpleTemplate/playq.r6",
|
51
|
+
"lib/xamplr-gen/simpleTemplate/r6.rb",
|
52
|
+
"lib/xamplr-gen/simpleTemplate/simple-template.rb",
|
53
|
+
"lib/xamplr-gen/templates/.cvsignore",
|
54
|
+
"lib/xamplr-gen/templates/child.template",
|
55
|
+
"lib/xamplr-gen/templates/child_indexed.template",
|
56
|
+
"lib/xamplr-gen/templates/child_modules.template",
|
57
|
+
"lib/xamplr-gen/templates/element_classes.template",
|
58
|
+
"lib/xamplr-gen/templates/element_data.template",
|
59
|
+
"lib/xamplr-gen/templates/element_empty.template",
|
60
|
+
"lib/xamplr-gen/templates/element_mixed.template",
|
61
|
+
"lib/xamplr-gen/templates/element_simple.template",
|
62
|
+
"lib/xamplr-gen/templates/package.template",
|
63
|
+
"lib/xamplr-gen/xampl-cl-gen.rb",
|
64
|
+
"lib/xamplr-gen/xampl-generator.rb",
|
65
|
+
"lib/xamplr-gen/xampl-hand-generated.rb",
|
66
|
+
"lib/xamplr-gen/yuml-out.rb",
|
67
|
+
"licence.rb",
|
68
|
+
"test/helper.rb",
|
69
|
+
"test/test_xamplr-gen.rb",
|
70
|
+
"xamplr-gen.gemspec"
|
71
|
+
]
|
72
|
+
s.homepage = %q{http://github.com/hutch/xamplr-gen}
|
73
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
74
|
+
s.require_paths = ["lib"]
|
75
|
+
s.rubygems_version = %q{1.3.5}
|
76
|
+
s.summary = %q{This is the xampl code generator for Ruby}
|
77
|
+
s.test_files = [
|
78
|
+
"test/helper.rb",
|
79
|
+
"test/test_xamplr-gen.rb"
|
80
|
+
]
|
81
|
+
|
82
|
+
if s.respond_to? :specification_version then
|
83
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
84
|
+
s.specification_version = 3
|
85
|
+
|
86
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
87
|
+
s.add_development_dependency(%q<cucumber>, [">= 0"])
|
88
|
+
s.add_runtime_dependency(%q<xamplr>, [">= 1.9.0"])
|
89
|
+
else
|
90
|
+
s.add_dependency(%q<cucumber>, [">= 0"])
|
91
|
+
s.add_dependency(%q<xamplr>, [">= 1.9.0"])
|
92
|
+
end
|
93
|
+
else
|
94
|
+
s.add_dependency(%q<cucumber>, [">= 0"])
|
95
|
+
s.add_dependency(%q<xamplr>, [">= 1.9.0"])
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
metadata
ADDED
@@ -0,0 +1,124 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: xamplr-gen
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.9.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Bob Hutchison
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-12-27 00:00:00 -05:00
|
13
|
+
default_executable: xampl-gen
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: cucumber
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: xamplr
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.9.0
|
34
|
+
version:
|
35
|
+
description: This is the xampl code generator for Ruby.
|
36
|
+
email: hutch@xampl.com
|
37
|
+
executables:
|
38
|
+
- xampl-gen
|
39
|
+
extensions: []
|
40
|
+
|
41
|
+
extra_rdoc_files:
|
42
|
+
- LICENSE
|
43
|
+
- README.md
|
44
|
+
files:
|
45
|
+
- .document
|
46
|
+
- .gitignore
|
47
|
+
- COPYING
|
48
|
+
- LICENSE
|
49
|
+
- Makefile
|
50
|
+
- README.md
|
51
|
+
- Rakefile
|
52
|
+
- VERSION
|
53
|
+
- bin/xampl-gen
|
54
|
+
- features/step_definitions/xamplr-gen_steps.rb
|
55
|
+
- features/support/env.rb
|
56
|
+
- features/xamplr-gen.feature
|
57
|
+
- lib/xamplr-gen.rb
|
58
|
+
- lib/xamplr-gen/.cvsignore
|
59
|
+
- lib/xamplr-gen/graphml-out.rb
|
60
|
+
- lib/xamplr-gen/my.gen.elements.xml
|
61
|
+
- lib/xamplr-gen/simpleTemplate/danger.rx
|
62
|
+
- lib/xamplr-gen/simpleTemplate/obsolete/input-c.r4
|
63
|
+
- lib/xamplr-gen/simpleTemplate/obsolete/play.r6.txt
|
64
|
+
- lib/xamplr-gen/simpleTemplate/obsolete/play_more.r6.txt
|
65
|
+
- lib/xamplr-gen/simpleTemplate/obsolete/test001.r5
|
66
|
+
- lib/xamplr-gen/simpleTemplate/obsolete/test002.r5
|
67
|
+
- lib/xamplr-gen/simpleTemplate/obsolete/test003.r5
|
68
|
+
- lib/xamplr-gen/simpleTemplate/old/r6.000.rb
|
69
|
+
- lib/xamplr-gen/simpleTemplate/old/r6.001.rb
|
70
|
+
- lib/xamplr-gen/simpleTemplate/play.r6
|
71
|
+
- lib/xamplr-gen/simpleTemplate/play_more.r6
|
72
|
+
- lib/xamplr-gen/simpleTemplate/play_noblanks.r6
|
73
|
+
- lib/xamplr-gen/simpleTemplate/playq.r6
|
74
|
+
- lib/xamplr-gen/simpleTemplate/r6.rb
|
75
|
+
- lib/xamplr-gen/simpleTemplate/simple-template.rb
|
76
|
+
- lib/xamplr-gen/templates/.cvsignore
|
77
|
+
- lib/xamplr-gen/templates/child.template
|
78
|
+
- lib/xamplr-gen/templates/child_indexed.template
|
79
|
+
- lib/xamplr-gen/templates/child_modules.template
|
80
|
+
- lib/xamplr-gen/templates/element_classes.template
|
81
|
+
- lib/xamplr-gen/templates/element_data.template
|
82
|
+
- lib/xamplr-gen/templates/element_empty.template
|
83
|
+
- lib/xamplr-gen/templates/element_mixed.template
|
84
|
+
- lib/xamplr-gen/templates/element_simple.template
|
85
|
+
- lib/xamplr-gen/templates/package.template
|
86
|
+
- lib/xamplr-gen/xampl-cl-gen.rb
|
87
|
+
- lib/xamplr-gen/xampl-generator.rb
|
88
|
+
- lib/xamplr-gen/xampl-hand-generated.rb
|
89
|
+
- lib/xamplr-gen/yuml-out.rb
|
90
|
+
- licence.rb
|
91
|
+
- test/helper.rb
|
92
|
+
- test/test_xamplr-gen.rb
|
93
|
+
- xamplr-gen.gemspec
|
94
|
+
has_rdoc: true
|
95
|
+
homepage: http://github.com/hutch/xamplr-gen
|
96
|
+
licenses: []
|
97
|
+
|
98
|
+
post_install_message:
|
99
|
+
rdoc_options:
|
100
|
+
- --charset=UTF-8
|
101
|
+
require_paths:
|
102
|
+
- lib
|
103
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - ">="
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: "0"
|
108
|
+
version:
|
109
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: "0"
|
114
|
+
version:
|
115
|
+
requirements: []
|
116
|
+
|
117
|
+
rubyforge_project:
|
118
|
+
rubygems_version: 1.3.5
|
119
|
+
signing_key:
|
120
|
+
specification_version: 3
|
121
|
+
summary: This is the xampl code generator for Ruby
|
122
|
+
test_files:
|
123
|
+
- test/helper.rb
|
124
|
+
- test/test_xamplr-gen.rb
|