concrete 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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
+