concrete 0.2.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.
Files changed (128) hide show
  1. data/CHANGELOG +32 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +87 -0
  4. data/concrete/basic_inline_editor.js +73 -0
  5. data/concrete/clipboard.js +72 -0
  6. data/concrete/concrete.js +58 -0
  7. data/concrete/constraint_checker.js +297 -0
  8. data/concrete/editor.js +964 -0
  9. data/concrete/element_extension.js +68 -0
  10. data/concrete/external_identifier_provider.js +112 -0
  11. data/concrete/helper.js +63 -0
  12. data/concrete/identifier_provider.js +168 -0
  13. data/concrete/inline_editor.js +55 -0
  14. data/concrete/metamodel_provider.js +171 -0
  15. data/concrete/model_interface.js +429 -0
  16. data/concrete/scroller.js +106 -0
  17. data/concrete/selector.js +302 -0
  18. data/concrete/template_provider.js +141 -0
  19. data/concrete/ui/abstract_dialog.js +80 -0
  20. data/concrete/ui/concrete_ui.js +28 -0
  21. data/concrete/ui/create_module_dialog.js +55 -0
  22. data/concrete/ui/images/close.png +0 -0
  23. data/concrete/ui/images/document-new.png +0 -0
  24. data/concrete/ui/images/document-save.png +0 -0
  25. data/concrete/ui/images/edit-find-replace.png +0 -0
  26. data/concrete/ui/images/emblem-symbolic-link.png +0 -0
  27. data/concrete/ui/images/help-browser.png +0 -0
  28. data/concrete/ui/images/minus_11px.png +0 -0
  29. data/concrete/ui/images/plus_11px.png +0 -0
  30. data/concrete/ui/images/preferences-system.png +0 -0
  31. data/concrete/ui/images/process-stop.png +0 -0
  32. data/concrete/ui/images/system-search.png +0 -0
  33. data/concrete/ui/layout_manager.js +54 -0
  34. data/concrete/ui/module_browser.js +88 -0
  35. data/concrete/ui/module_editor.js +217 -0
  36. data/concrete/ui/open_element_dialog.js +90 -0
  37. data/concrete/ui/preferences_dialog.js +75 -0
  38. data/concrete/ui/proceed_dialog.js +52 -0
  39. data/concrete/ui/search_replace_dialog.js +323 -0
  40. data/concrete/ui/style.css +296 -0
  41. data/concrete/ui/toolbar.js +74 -0
  42. data/concrete/ui/workbench.js +165 -0
  43. data/doc/concrete_developers_guide.html +1054 -0
  44. data/doc/concrete_developers_guide.txt +502 -0
  45. data/doc/concrete_users_guide.html +694 -0
  46. data/doc/concrete_users_guide.txt +223 -0
  47. data/example/formula_editor/example_data/example1.json +11 -0
  48. data/example/formula_editor/formula_editor.html +83 -0
  49. data/example/formula_editor/sqrt_horz.png +0 -0
  50. data/example/formula_editor/sqrt_vert.png +0 -0
  51. data/example/formula_editor/style.css +31 -0
  52. data/example/metamodel_editor/edit.rb +54 -0
  53. data/example/metamodel_editor/example_data/formula_metamodel.json +18 -0
  54. data/example/metamodel_editor/example_data/meta_metamodel.json +22 -0
  55. data/example/metamodel_editor/example_data/statemachine_metamodel.json +32 -0
  56. data/example/metamodel_editor/metamodel_editor.html +120 -0
  57. data/example/metamodel_editor/metamodel_editor2.html +135 -0
  58. data/example/metamodel_editor/metamodel_editor3.html +151 -0
  59. data/example/metamodel_editor/style.css +8 -0
  60. data/example/metamodel_editor/style2.css +19 -0
  61. data/example/metamodel_editor/style3.css +35 -0
  62. data/example/minimal_editor/minimal_editor.html +43 -0
  63. data/example/statemachine_editor/example_data/example1.json +11 -0
  64. data/example/statemachine_editor/state_background.png +0 -0
  65. data/example/statemachine_editor/statemachine_editor0.html +55 -0
  66. data/example/statemachine_editor/statemachine_editor1.html +62 -0
  67. data/example/statemachine_editor/statemachine_editor2.html +103 -0
  68. data/example/statemachine_editor/style0.css +8 -0
  69. data/example/statemachine_editor/style1.css +32 -0
  70. data/example/statemachine_editor/style2.css +43 -0
  71. data/example/themes/cobalt.css +176 -0
  72. data/example/themes/dialog-error.png +0 -0
  73. data/example/themes/dialog-information.png +0 -0
  74. data/example/themes/dialog-warning.png +0 -0
  75. data/example/themes/dots_12px.png +0 -0
  76. data/example/themes/fold_button_dots_when_hidden.css +18 -0
  77. data/example/themes/fold_button_plus_minus.css +21 -0
  78. data/example/themes/fold_button_plus_when_hidden.css +18 -0
  79. data/example/themes/light_blue.css +177 -0
  80. data/example/themes/minus_11px.png +0 -0
  81. data/example/themes/minus_13px.png +0 -0
  82. data/example/themes/minus_9px.png +0 -0
  83. data/example/themes/plus_11px.png +0 -0
  84. data/example/themes/plus_13px.png +0 -0
  85. data/example/themes/plus_9px.png +0 -0
  86. data/example/themes/white.css +177 -0
  87. data/lib/concrete/concrete_syntax_provider.rb +63 -0
  88. data/lib/concrete/config.rb +36 -0
  89. data/lib/concrete/file_cache_map.rb +88 -0
  90. data/lib/concrete/index_builder.rb +108 -0
  91. data/lib/concrete/metamodel/concrete_mmm.rb +45 -0
  92. data/lib/concrete/metamodel/ecore_to_concrete.rb +80 -0
  93. data/lib/concrete/server.rb +92 -0
  94. data/lib/concrete/util/logger.rb +24 -0
  95. data/lib/concrete/util/string_writer.rb +17 -0
  96. data/lib/concrete/working_set.rb +41 -0
  97. data/rakefile +33 -0
  98. data/redist/prototype.js +4320 -0
  99. data/redist/scriptaculous/builder.js +136 -0
  100. data/redist/scriptaculous/controls.js +991 -0
  101. data/redist/scriptaculous/dragdrop.js +975 -0
  102. data/redist/scriptaculous/effects.js +1130 -0
  103. data/redist/scriptaculous/scriptaculous.js +60 -0
  104. data/redist/scriptaculous/slider.js +275 -0
  105. data/redist/scriptaculous/sound.js +55 -0
  106. data/redist/scriptaculous/unittest.js +568 -0
  107. data/test/concrete_test.rb +5 -0
  108. data/test/file_cache_map_test.rb +90 -0
  109. data/test/file_cache_map_test/testdir/fileA +1 -0
  110. data/test/index_builder_test.rb +68 -0
  111. data/test/index_builder_test/ecore_index.js +85 -0
  112. data/test/index_builder_test/ecore_index_expected.js +85 -0
  113. data/test/integration/external_elements_test.html +114 -0
  114. data/test/metamodel_test.rb +40 -0
  115. data/test/metamodel_test/concrete_mmm_expected.js +19 -0
  116. data/test/metamodel_test/concrete_mmm_generated.js +19 -0
  117. data/test/metamodel_test/concrete_mmm_regenerated.js +19 -0
  118. data/test/unit/external_identifier_provider_test.html +138 -0
  119. data/test/unit/identifier_provider_test.html +269 -0
  120. data/test/unit/metamodel_provider_test.html +318 -0
  121. data/test/unit/model_interface_test.html +257 -0
  122. data/test/unit/template_provider_test.html +171 -0
  123. data/test/unit/test.css +90 -0
  124. data/test/working_set_test.rb +54 -0
  125. data/test/working_set_test/file1.txt +0 -0
  126. data/test/working_set_test/file2 +0 -0
  127. data/test/working_set_test/subdir/file3.xml +0 -0
  128. metadata +201 -0
@@ -0,0 +1,171 @@
1
+ <html>
2
+ <head>
3
+ <title>Concrete Unit test file</title>
4
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
5
+ <script src="../../redist/prototype.js" type="text/javascript"></script>
6
+ <script src="../../redist/scriptaculous/unittest.js" type="text/javascript"></script>
7
+ <script type="text/javascript" language="javascript" charset="utf-8">
8
+ // <![CDATA[
9
+ var Concrete = {}
10
+ // ]]>
11
+ </script>
12
+ <script src="../../concrete/metamodel_provider.js" type="text/javascript"></script>
13
+ <script src="../../concrete/element_extension.js" type="text/javascript"></script>
14
+ <script src="../../concrete/template_provider.js" type="text/javascript"></script>
15
+ <link rel="stylesheet" href="test.css" type="text/css" />
16
+ </head>
17
+ <body>
18
+ <h1>Concrete Unit test file</h1>
19
+ <p>
20
+ Tests for template_provider.js
21
+ </p>
22
+
23
+ <!-- Log output -->
24
+ <div id="testlog"> </div>
25
+
26
+ <div id="metamodel" style="display: none">
27
+ [
28
+ {_class: "Class", name: "ClassA", features: [
29
+ {_class: "Feature", name: "feat1", kind: "attribute"},
30
+ {_class: "Feature", name: "feat2", kind: "reference"},
31
+ {_class: "Feature", name: "feat3", kind: "containment"},
32
+ {_class: "Feature", name: "feat4", kind: "attribute"}
33
+ ]},
34
+ {_class: "Class", name: "ClassB", features: [
35
+ {_class: "Feature", name: "feat1", kind: "attribute"}
36
+ ]},
37
+ {_class: "Class", name: "ClassC", features: [
38
+ {_class: "Feature", name: "feat1", kind: "attribute"}
39
+ ]},
40
+ {_class: "Class", name: "ClassD"},
41
+ {_class: "Class", name: "ClassE", superTypes: ["ClassB"], features: [
42
+ {_class: "Feature", name: "feat2", kind: "attribute"}
43
+ ]},
44
+ ]
45
+ </div>
46
+
47
+ <div id="genericTemplates" style="display: none">
48
+ <!-- generic templates will be created here -->
49
+ </div>
50
+
51
+ <div id="domBasedTemplates" style="display: none">
52
+ <div class="ct_element ctc_ClassA">
53
+ <div class="ct_attribute ctn_feat1">
54
+ <span class="ct_slot"></slot>
55
+ </div>
56
+ <div class="ct_reference ctn_feat2">
57
+ <span class="ct_slot"></slot>
58
+ </div>
59
+ <div class="ct_containment ctn_feat3">
60
+ <span class="ct_slot"></slot>
61
+ </div>
62
+ <div class="ct_attribute ctn_feat4">
63
+ <span class="ct_slot"></slot>
64
+ </div>
65
+ </div>
66
+ <div class="ct_element ctc_ClassB">
67
+ <div class="ct_attribute ctn_feat1">
68
+ </div>
69
+ </div>
70
+ <div class="ct_element ctc_ClassC">
71
+ </div>
72
+ <div class="ct_element ctc_ClassE">
73
+ <div class="ct_attribute ctn_feat1">
74
+ <span class="ct_slot"></slot>
75
+ </div>
76
+ <div class="ct_attribute ctn_feat2">
77
+ <span class="ct_slot"></slot>
78
+ </div>
79
+ </div>
80
+ </div>
81
+
82
+
83
+ <!-- Tests follow -->
84
+ <script type="text/javascript" language="javascript" charset="utf-8">
85
+ // <![CDATA[
86
+
87
+ new Test.Unit.Runner({
88
+
89
+ setup: function() {
90
+ },
91
+
92
+ testGeneric: function() { with(this) {
93
+ var tp = new Concrete.TemplateProvider($('genericTemplates'));
94
+ var mp = new Concrete.MetamodelProvider($('metamodel').textContent.evalJSON());
95
+
96
+ checkTemplateClassA(this, tp, mp);
97
+ checkTemplateClassE(this, tp, mp);
98
+ }},
99
+
100
+ testDomBased: function() { with(this) {
101
+ var tp = new Concrete.TemplateProvider($('domBasedTemplates'));
102
+ var mp = new Concrete.MetamodelProvider($('metamodel').textContent.evalJSON());
103
+
104
+ checkTemplateClassA(this, tp, mp);
105
+ checkTemplateClassE(this, tp, mp);
106
+ }},
107
+
108
+ testDomBasedErrors: function() { with(this) {
109
+ var tp = new Concrete.TemplateProvider($('domBasedTemplates'));
110
+ var mp = new Concrete.MetamodelProvider($('metamodel').textContent.evalJSON());
111
+
112
+ var classB = mp.metaclasses[1];
113
+ // slot not found
114
+ assertRaise("Error", function() {
115
+ tp.templateByClass(classB);
116
+ });
117
+ var classC = mp.metaclasses[2];
118
+ // feature not found
119
+ assertRaise("Error", function() {
120
+ tp.templateByClass(classC);
121
+ });
122
+ }},
123
+ })
124
+
125
+ function checkTemplateClassA(runner, tp, mp) { with(runner) {
126
+ var classA = mp.metaclasses[0];
127
+
128
+ var tmplA = tp.templateByClass(classA);
129
+ // call second time
130
+ assertEqual(tmplA, tp.templateByClass(classA))
131
+ assertEqual(classA, tmplA.mmClass);
132
+
133
+ assert(tmplA.hasClassName("ct_element"));
134
+ assert(tmplA.hasClassName("ctc_ClassA"));
135
+
136
+ var attrs = tmplA.select(".ct_attribute");
137
+ assertEqual(2, attrs.size());
138
+ assertEqual(classA.features[0], attrs[0].mmFeature);
139
+ assertEqual(classA.features[3], attrs[1].mmFeature);
140
+
141
+ var refs = tmplA.select(".ct_reference");
142
+ assertEqual(1, refs.size());
143
+ assertEqual(classA.features[1], refs[0].mmFeature);
144
+
145
+ var conts = tmplA.select(".ct_containment");
146
+ assertEqual(1, conts.size());
147
+ assertEqual(classA.features[2], conts[0].mmFeature);
148
+ }};
149
+
150
+ function checkTemplateClassE(runner, tp, mp) { with(runner) {
151
+ var classB = mp.metaclasses[1];
152
+ var classE = mp.metaclasses[4];
153
+
154
+ var tmplE = tp.templateByClass(classE);
155
+ // call second time
156
+ assertEqual(tmplE, tp.templateByClass(classE))
157
+ assertEqual(classE, tmplE.mmClass);
158
+
159
+ assert(tmplE.hasClassName("ct_element"));
160
+ assert(tmplE.hasClassName("ctc_ClassE"));
161
+
162
+ var attrs = tmplE.select(".ct_attribute");
163
+ assertEqual(2, attrs.size());
164
+ assertEqual(classB.features[0], attrs[0].mmFeature);
165
+ assertEqual(classE.features[0], attrs[1].mmFeature);
166
+ }};
167
+
168
+ // ]]>
169
+ </script>
170
+ </body>
171
+ </html>
@@ -0,0 +1,90 @@
1
+ body, div, p, h1, h2, h3, ul, ol, span, a, table, td, form, img, li {
2
+ font-family: sans-serif;
3
+ }
4
+
5
+ body {
6
+ font-size:0.8em;
7
+ }
8
+
9
+ .navigation {
10
+ background: #9DC569;
11
+ color: #fff;
12
+ }
13
+
14
+ .navigation h1 {
15
+ font-size: 20px;
16
+ }
17
+
18
+ .navigation h2 {
19
+ font-size: 16px;
20
+ font-weight: normal;
21
+ margin: 0;
22
+ border: 1px solid #e8a400;
23
+ border-bottom: 0;
24
+ background: #ffc;
25
+ color: #E8A400;
26
+ padding: 8px;
27
+ padding-bottom: 0;
28
+ }
29
+
30
+ .navigation ul {
31
+ margin-top: 0;
32
+ border: 1px solid #E8A400;
33
+ border-top: none;
34
+ background: #ffc;
35
+ padding: 8px;
36
+ margin-left: 0;
37
+ }
38
+
39
+ .navigation ul li {
40
+ font-size: 12px;
41
+ list-style-type: none;
42
+ margin-top: 1px;
43
+ margin-bottom: 1px;
44
+ color: #555;
45
+ }
46
+
47
+ .navigation a {
48
+ color: #ffc;
49
+ }
50
+
51
+ .navigation ul li a {
52
+ color: #000;
53
+ }
54
+
55
+ #log {
56
+ padding-bottom: 1em;
57
+ border-bottom: 2px solid #000;
58
+ margin-bottom: 2em;
59
+ }
60
+
61
+ #logsummary {
62
+ margin-bottom: 1em;
63
+ padding: 1ex;
64
+ border: 1px solid #000;
65
+ font-weight: bold;
66
+ }
67
+
68
+ #logtable {
69
+ width:100%;
70
+ border-collapse: collapse;
71
+ border: 1px dotted #666;
72
+ }
73
+
74
+ #logtable td, #logtable th {
75
+ text-align: left;
76
+ padding: 3px 8px;
77
+ border: 1px dotted #666;
78
+ }
79
+
80
+ #logtable .passed {
81
+ background-color: #cfc;
82
+ }
83
+
84
+ #logtable .failed, #logtable .error {
85
+ background-color: #fcc;
86
+ }
87
+
88
+ #logtable .nameCell {
89
+ cursor: pointer;
90
+ }
@@ -0,0 +1,54 @@
1
+ $:.unshift(File.dirname(__FILE__)+"/../lib")
2
+
3
+ require 'test/unit'
4
+ require 'fileutils'
5
+ require 'concrete/working_set'
6
+
7
+ class WorkingSetTest < Test::Unit::TestCase
8
+
9
+ TestDir = File.dirname(__FILE__)+"/working_set_test"
10
+
11
+ def test_addremove
12
+ ws = Concrete::WorkingSet.new(File.dirname(__FILE__))
13
+ addTestFiles(ws)
14
+ assert_equal ["working_set_test/file1.txt", "working_set_test/file2", "working_set_test/subdir/file3.xml"], ws.fileIdentifiers
15
+ ws.addFile(TestDir+"/file1.txt")
16
+ assert_equal ["working_set_test/file1.txt", "working_set_test/file2", "working_set_test/subdir/file3.xml"], ws.fileIdentifiers
17
+ ws.removeFile(TestDir+"/file1.txt")
18
+ assert_equal ["working_set_test/file2", "working_set_test/subdir/file3.xml"], ws.fileIdentifiers
19
+ ws.removeFile(TestDir+"/file2")
20
+ assert_equal ["working_set_test/subdir/file3.xml"], ws.fileIdentifiers
21
+ ws.removeFile(TestDir+"/subdir/file3.xml")
22
+ assert_equal [], ws.fileIdentifiers
23
+ ws.removeFile(TestDir+"/file2")
24
+ assert_equal [], ws.fileIdentifiers
25
+ end
26
+
27
+ def test_addremove_root2
28
+ ws = Concrete::WorkingSet.new(File.dirname(__FILE__)+"/..")
29
+ addTestFiles(ws)
30
+ assert_equal ["test/working_set_test/file1.txt", "test/working_set_test/file2", "test/working_set_test/subdir/file3.xml"], ws.fileIdentifiers
31
+ end
32
+
33
+ def test_addremove_root3
34
+ ws = Concrete::WorkingSet.new(File.dirname(__FILE__)+"/working_set_test")
35
+ addTestFiles(ws)
36
+ assert_equal ["file1.txt", "file2", "subdir/file3.xml"], ws.fileIdentifiers
37
+ end
38
+
39
+ def test_getFile
40
+ ws = Concrete::WorkingSet.new(File.dirname(__FILE__))
41
+ addTestFiles(ws)
42
+ file1 = ws.getFile("working_set_test/file1.txt")
43
+ assert file1.index("working_set_test/file1.txt") > 0
44
+ assert File.exist?(file1)
45
+ end
46
+
47
+ def addTestFiles(ws)
48
+ ws.addFile(TestDir+"/file1.txt")
49
+ ws.addFile(TestDir+"/file2")
50
+ ws.addFile(TestDir+"/subdir/file3.xml")
51
+ end
52
+
53
+ end
54
+
File without changes
File without changes
File without changes
metadata ADDED
@@ -0,0 +1,201 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: concrete
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Martin Thiede
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-06-14 00:00:00 +02:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rgen
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.5.2
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: andand
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.3.1
34
+ version:
35
+ description:
36
+ email:
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files: []
42
+
43
+ files:
44
+ - concrete/basic_inline_editor.js
45
+ - concrete/clipboard.js
46
+ - concrete/concrete.js
47
+ - concrete/constraint_checker.js
48
+ - concrete/editor.js
49
+ - concrete/element_extension.js
50
+ - concrete/external_identifier_provider.js
51
+ - concrete/helper.js
52
+ - concrete/identifier_provider.js
53
+ - concrete/inline_editor.js
54
+ - concrete/metamodel_provider.js
55
+ - concrete/model_interface.js
56
+ - concrete/scroller.js
57
+ - concrete/selector.js
58
+ - concrete/template_provider.js
59
+ - concrete/ui/abstract_dialog.js
60
+ - concrete/ui/concrete_ui.js
61
+ - concrete/ui/create_module_dialog.js
62
+ - concrete/ui/images/close.png
63
+ - concrete/ui/images/document-new.png
64
+ - concrete/ui/images/document-save.png
65
+ - concrete/ui/images/edit-find-replace.png
66
+ - concrete/ui/images/emblem-symbolic-link.png
67
+ - concrete/ui/images/help-browser.png
68
+ - concrete/ui/images/minus_11px.png
69
+ - concrete/ui/images/plus_11px.png
70
+ - concrete/ui/images/preferences-system.png
71
+ - concrete/ui/images/process-stop.png
72
+ - concrete/ui/images/system-search.png
73
+ - concrete/ui/layout_manager.js
74
+ - concrete/ui/module_browser.js
75
+ - concrete/ui/module_editor.js
76
+ - concrete/ui/open_element_dialog.js
77
+ - concrete/ui/preferences_dialog.js
78
+ - concrete/ui/proceed_dialog.js
79
+ - concrete/ui/search_replace_dialog.js
80
+ - concrete/ui/style.css
81
+ - concrete/ui/toolbar.js
82
+ - concrete/ui/workbench.js
83
+ - doc/concrete_developers_guide.html
84
+ - doc/concrete_developers_guide.txt
85
+ - doc/concrete_users_guide.html
86
+ - doc/concrete_users_guide.txt
87
+ - example/formula_editor/example_data/example1.json
88
+ - example/formula_editor/formula_editor.html
89
+ - example/formula_editor/sqrt_horz.png
90
+ - example/formula_editor/sqrt_vert.png
91
+ - example/formula_editor/style.css
92
+ - example/metamodel_editor/edit.rb
93
+ - example/metamodel_editor/example_data/formula_metamodel.json
94
+ - example/metamodel_editor/example_data/meta_metamodel.json
95
+ - example/metamodel_editor/example_data/statemachine_metamodel.json
96
+ - example/metamodel_editor/metamodel_editor.html
97
+ - example/metamodel_editor/metamodel_editor2.html
98
+ - example/metamodel_editor/metamodel_editor3.html
99
+ - example/metamodel_editor/style.css
100
+ - example/metamodel_editor/style2.css
101
+ - example/metamodel_editor/style3.css
102
+ - example/minimal_editor/minimal_editor.html
103
+ - example/statemachine_editor/example_data/example1.json
104
+ - example/statemachine_editor/statemachine_editor0.html
105
+ - example/statemachine_editor/statemachine_editor1.html
106
+ - example/statemachine_editor/statemachine_editor2.html
107
+ - example/statemachine_editor/state_background.png
108
+ - example/statemachine_editor/style0.css
109
+ - example/statemachine_editor/style1.css
110
+ - example/statemachine_editor/style2.css
111
+ - example/themes/cobalt.css
112
+ - example/themes/dialog-error.png
113
+ - example/themes/dialog-information.png
114
+ - example/themes/dialog-warning.png
115
+ - example/themes/dots_12px.png
116
+ - example/themes/fold_button_dots_when_hidden.css
117
+ - example/themes/fold_button_plus_minus.css
118
+ - example/themes/fold_button_plus_when_hidden.css
119
+ - example/themes/light_blue.css
120
+ - example/themes/minus_11px.png
121
+ - example/themes/minus_13px.png
122
+ - example/themes/minus_9px.png
123
+ - example/themes/plus_11px.png
124
+ - example/themes/plus_13px.png
125
+ - example/themes/plus_9px.png
126
+ - example/themes/white.css
127
+ - lib/concrete/concrete_syntax_provider.rb
128
+ - lib/concrete/config.rb
129
+ - lib/concrete/file_cache_map.rb
130
+ - lib/concrete/index_builder.rb
131
+ - lib/concrete/metamodel/concrete_mmm.rb
132
+ - lib/concrete/metamodel/ecore_to_concrete.rb
133
+ - lib/concrete/server.rb
134
+ - lib/concrete/util/logger.rb
135
+ - lib/concrete/util/string_writer.rb
136
+ - lib/concrete/working_set.rb
137
+ - redist/prototype.js
138
+ - redist/scriptaculous/builder.js
139
+ - redist/scriptaculous/controls.js
140
+ - redist/scriptaculous/dragdrop.js
141
+ - redist/scriptaculous/effects.js
142
+ - redist/scriptaculous/scriptaculous.js
143
+ - redist/scriptaculous/slider.js
144
+ - redist/scriptaculous/sound.js
145
+ - redist/scriptaculous/unittest.js
146
+ - test/concrete_test.rb
147
+ - test/file_cache_map_test/testdir/fileA
148
+ - test/file_cache_map_test.rb
149
+ - test/index_builder_test/ecore_index.js
150
+ - test/index_builder_test/ecore_index_expected.js
151
+ - test/index_builder_test.rb
152
+ - test/integration/external_elements_test.html
153
+ - test/metamodel_test/concrete_mmm_expected.js
154
+ - test/metamodel_test/concrete_mmm_generated.js
155
+ - test/metamodel_test/concrete_mmm_regenerated.js
156
+ - test/metamodel_test.rb
157
+ - test/unit/external_identifier_provider_test.html
158
+ - test/unit/identifier_provider_test.html
159
+ - test/unit/metamodel_provider_test.html
160
+ - test/unit/model_interface_test.html
161
+ - test/unit/template_provider_test.html
162
+ - test/unit/test.css
163
+ - test/working_set_test/file1.txt
164
+ - test/working_set_test/file2
165
+ - test/working_set_test/subdir/file3.xml
166
+ - test/working_set_test.rb
167
+ - CHANGELOG
168
+ - MIT-LICENSE
169
+ - rakefile
170
+ - README.rdoc
171
+ has_rdoc: true
172
+ homepage:
173
+ licenses: []
174
+
175
+ post_install_message:
176
+ rdoc_options: []
177
+
178
+ require_paths:
179
+ - lib
180
+ - lib
181
+ required_ruby_version: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ version: 1.8.6
186
+ version:
187
+ required_rubygems_version: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ version: "0"
192
+ version:
193
+ requirements: []
194
+
195
+ rubyforge_project:
196
+ rubygems_version: 1.3.5
197
+ signing_key:
198
+ specification_version: 3
199
+ summary: Concrete is a lightweight, web-based model editor which can be configured for different DSLs
200
+ test_files: []
201
+