jax 1.0.1 → 1.1.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. data/.gitmodules +3 -0
  2. data/.travis.yml +32 -0
  3. data/CHANGELOG +126 -0
  4. data/README.md +1 -1
  5. data/Rakefile +125 -19
  6. data/bin/jax +1 -1
  7. data/builtin/{shaders → app/shaders}/basic/common.ejs +0 -0
  8. data/builtin/{shaders → app/shaders}/basic/fragment.ejs +0 -0
  9. data/builtin/{shaders → app/shaders}/basic/vertex.ejs +0 -0
  10. data/builtin/{shaders → app/shaders}/depthmap/common.ejs +0 -0
  11. data/builtin/{shaders → app/shaders}/depthmap/fragment.ejs +0 -0
  12. data/builtin/{shaders → app/shaders}/depthmap/material.js +0 -0
  13. data/builtin/{shaders → app/shaders}/depthmap/vertex.ejs +0 -0
  14. data/builtin/{shaders → app/shaders}/fog/common.ejs +0 -0
  15. data/builtin/{shaders → app/shaders}/fog/fragment.ejs +0 -0
  16. data/builtin/{shaders → app/shaders}/fog/manifest.yml +0 -0
  17. data/builtin/{shaders → app/shaders}/fog/material.js +0 -0
  18. data/builtin/{shaders → app/shaders}/fog/vertex.ejs +0 -0
  19. data/builtin/{shaders → app/shaders}/functions/depth_map.ejs +0 -0
  20. data/builtin/{shaders → app/shaders}/functions/lights.ejs +0 -0
  21. data/builtin/{shaders → app/shaders}/functions/noise.ejs +0 -0
  22. data/builtin/{shaders → app/shaders}/lighting/common.ejs +0 -0
  23. data/builtin/{shaders → app/shaders}/lighting/fragment.ejs +0 -0
  24. data/builtin/{shaders → app/shaders}/lighting/manifest.yml +0 -0
  25. data/builtin/{shaders → app/shaders}/lighting/material.js +0 -0
  26. data/builtin/{shaders → app/shaders}/lighting/vertex.ejs +0 -0
  27. data/builtin/{shaders → app/shaders}/normal_map/common.ejs +0 -0
  28. data/builtin/{shaders → app/shaders}/normal_map/fragment.ejs +0 -0
  29. data/builtin/{shaders → app/shaders}/normal_map/manifest.yml +0 -0
  30. data/builtin/{shaders → app/shaders}/normal_map/material.js +0 -0
  31. data/builtin/{shaders → app/shaders}/normal_map/vertex.ejs +0 -0
  32. data/builtin/{shaders → app/shaders}/paraboloid/common.ejs +0 -0
  33. data/builtin/{shaders → app/shaders}/paraboloid/fragment.ejs +0 -0
  34. data/builtin/{shaders → app/shaders}/paraboloid/manifest.yml +0 -0
  35. data/builtin/{shaders → app/shaders}/paraboloid/material.js +0 -0
  36. data/builtin/{shaders → app/shaders}/paraboloid/vertex.ejs +0 -0
  37. data/builtin/{shaders → app/shaders}/picking/common.ejs +0 -0
  38. data/builtin/{shaders → app/shaders}/picking/fragment.ejs +0 -0
  39. data/builtin/{shaders → app/shaders}/picking/material.js +0 -0
  40. data/builtin/{shaders → app/shaders}/picking/vertex.ejs +0 -0
  41. data/builtin/{shaders → app/shaders}/shadow_map/common.ejs +0 -0
  42. data/builtin/{shaders → app/shaders}/shadow_map/fragment.ejs +0 -0
  43. data/builtin/{shaders → app/shaders}/shadow_map/manifest.yml +0 -0
  44. data/builtin/{shaders → app/shaders}/shadow_map/material.js +0 -0
  45. data/builtin/{shaders → app/shaders}/shadow_map/vertex.ejs +0 -0
  46. data/builtin/{shaders → app/shaders}/texture/common.ejs +0 -0
  47. data/builtin/{shaders → app/shaders}/texture/fragment.ejs +0 -0
  48. data/builtin/{shaders → app/shaders}/texture/manifest.yml +0 -0
  49. data/builtin/{shaders → app/shaders}/texture/material.js +0 -0
  50. data/builtin/{shaders → app/shaders}/texture/vertex.ejs +0 -0
  51. data/jax.gems +1 -1
  52. data/jax.gemspec +9 -7
  53. data/lib/jax.rb +23 -9
  54. data/lib/jax/application.rb +118 -60
  55. data/lib/jax/application/builtin.rb +12 -0
  56. data/lib/jax/application/builtin/configurable.rb +5 -0
  57. data/lib/jax/application/builtin/configuration.rb +5 -0
  58. data/lib/jax/application/configurable.rb +19 -0
  59. data/lib/jax/application/configuration.rb +46 -13
  60. data/lib/jax/application/railties.rb +26 -0
  61. data/lib/jax/core_ext/kernel.rb +7 -0
  62. data/lib/jax/engine.rb +64 -0
  63. data/lib/jax/engine/configurable.rb +19 -0
  64. data/lib/jax/engine/configuration.rb +49 -0
  65. data/lib/jax/generators/app.rb +3 -2
  66. data/lib/jax/generators/app/app_generator.rb +9 -2
  67. data/lib/jax/generators/app/templates/config/environment.rb.tt +5 -0
  68. data/lib/jax/generators/app/templates/public/index.html.tt +26 -0
  69. data/lib/jax/generators/app/templates/public/javascripts/jax.js +8726 -1
  70. data/lib/jax/generators/app/templates/public/stylesheets/%file_name%.css.tt +11 -0
  71. data/lib/jax/generators/app/templates/public/webgl_not_supported.html +1 -1
  72. data/lib/jax/generators/app/templates/spec/javascripts/support/jasmine.yml +1 -0
  73. data/lib/jax/generators/app/templates/spec/javascripts/support/spec_helpers/jax_spec_environment_helper.js +13 -5
  74. data/lib/jax/generators/app/templates/spec/javascripts/support/spec_helpers/jax_spec_helper.js +6 -10
  75. data/lib/jax/generators/commands.rb +168 -42
  76. data/lib/jax/generators/controller/controller_generator.rb +9 -2
  77. data/lib/jax/generators/interactions.rb +56 -0
  78. data/lib/jax/generators/light_source/light_source_generator.rb +1 -2
  79. data/lib/jax/generators/material/material_generator.rb +1 -2
  80. data/lib/jax/generators/model/model_generator.rb +1 -3
  81. data/lib/jax/generators/packager/package_generator.rb +32 -0
  82. data/lib/jax/generators/plugin/USAGE +4 -0
  83. data/lib/jax/generators/plugin/all.rb +113 -0
  84. data/lib/jax/generators/plugin/credentials.rb +108 -0
  85. data/lib/jax/generators/plugin/plugin_generator.rb +72 -0
  86. data/lib/jax/generators/plugin/plugin_manager.rb +254 -0
  87. data/lib/jax/generators/plugin/templates/new_plugin/app/controllers/.empty_directory +0 -0
  88. data/lib/jax/generators/plugin/templates/new_plugin/app/helpers/.empty_directory +0 -0
  89. data/lib/jax/generators/plugin/templates/new_plugin/app/models/.empty_directory +0 -0
  90. data/lib/jax/generators/plugin/templates/new_plugin/app/resources/.empty_directory +0 -0
  91. data/lib/jax/generators/plugin/templates/new_plugin/app/views/.empty_directory +0 -0
  92. data/lib/jax/generators/plugin/templates/new_plugin/config/routes.rb +3 -0
  93. data/lib/jax/generators/plugin/templates/new_plugin/init.rb +1 -0
  94. data/lib/jax/generators/plugin/templates/new_plugin/install.rb +2 -0
  95. data/lib/jax/generators/plugin/templates/new_plugin/public/.empty_directory +0 -0
  96. data/lib/jax/generators/plugin/templates/new_plugin/spec/.empty_directory +0 -0
  97. data/lib/jax/generators/plugin/templates/new_plugin/uninstall.rb +2 -0
  98. data/lib/jax/generators/script_jax_loader.rb +17 -0
  99. data/lib/jax/generators/shader/shader_generator.rb +2 -3
  100. data/lib/jax/monkeypatch/jasmine/config.rb +25 -1
  101. data/lib/jax/monkeypatch/jasmine/server.rb +1 -1
  102. data/lib/jax/packager.rb +12 -11
  103. data/lib/jax/packager/sprockets_template.rb +15 -6
  104. data/lib/jax/plugin.rb +49 -0
  105. data/lib/jax/plugin/manifest.rb +71 -0
  106. data/lib/jax/resource_compiler.rb +24 -14
  107. data/lib/jax/routes.rb +1 -0
  108. data/lib/jax/shader.rb +16 -1
  109. data/lib/jax/tasks/rake.rb +1 -1
  110. data/lib/jax/version.rb +3 -3
  111. data/spec/benchmark.htm +93 -0
  112. data/spec/fixtures/web/plugins/404.http +39 -0
  113. data/spec/fixtures/web/plugins/all.xml +106 -0
  114. data/spec/fixtures/web/plugins/author/create_account.xml.http +20 -0
  115. data/spec/fixtures/web/plugins/author/create_new_plugin.xml.http +27 -0
  116. data/spec/fixtures/web/plugins/author/login_existing_account.xml.http +19 -0
  117. data/spec/fixtures/web/plugins/author/login_not_found.xml.http +14 -0
  118. data/spec/fixtures/web/plugins/author/login_password_invalid.xml.http +12 -0
  119. data/spec/fixtures/web/plugins/clouds.xml +51 -0
  120. data/spec/fixtures/web/plugins/example.tgz.http +0 -0
  121. data/spec/fixtures/web/plugins/example.tgz.http.old +0 -0
  122. data/spec/fixtures/web/plugins/none.http +13 -0
  123. data/spec/fixtures/web/plugins/vert.xml +68 -0
  124. data/spec/fixtures/web/plugins/vertex-blob.xml +37 -0
  125. data/spec/fixtures/web/plugins/vertex-height-map.xml +44 -0
  126. data/spec/generators/app_generator_test.rb +42 -0
  127. data/spec/generators/controller_generator_test.rb +47 -0
  128. data/spec/generators/light_generator_test.rb +37 -0
  129. data/spec/generators/material_generator_test.rb +22 -0
  130. data/spec/generators/model_generator_test.rb +26 -0
  131. data/spec/generators/plugin_generator_test.rb +114 -0
  132. data/spec/generators/plugin_manager/push_test.rb +59 -0
  133. data/spec/generators/plugin_manager_test.rb +192 -0
  134. data/spec/generators/shader_generator_test.rb +38 -0
  135. data/spec/lib/jax/application_test.rb +18 -0
  136. data/spec/lib/jax/generators/plugin/credentials_test.rb +72 -0
  137. data/spec/lib/jax/packager_test.rb +87 -0
  138. data/spec/lib/jax/plugin_test.rb +27 -0
  139. data/spec/lib/jax/reloading_test.rb +23 -0
  140. data/spec/lib/jax/routes_test.rb +28 -0
  141. data/spec/lib/jax/shader_test.rb +29 -0
  142. data/spec/lib/jax/tasks/jax_rake_test.rb +85 -0
  143. data/spec/support/bases/generator_test_case.rb +108 -0
  144. data/spec/support/bases/isolated_test_case.rb +148 -0
  145. data/spec/support/fixtures_helper.rb +21 -0
  146. data/spec/support/spec_shell.rb +14 -1
  147. data/spec/test_app.rb +3 -0
  148. data/spec/test_helper.rb +55 -0
  149. metadata +200 -92
  150. data/spec/generators/app_generator_spec.rb +0 -47
  151. data/spec/generators/controller_generator_spec.rb +0 -68
  152. data/spec/generators/light_generator_spec.rb +0 -51
  153. data/spec/generators/material_generator_spec.rb +0 -35
  154. data/spec/generators/model_generator_spec.rb +0 -43
  155. data/spec/lib/jax/routes_spec.rb +0 -24
  156. data/spec/lib/jax/shader_spec.rb +0 -57
  157. data/spec/lib/jax/tasks/jax_rake_spec.rb +0 -92
  158. data/spec/spec_helper.rb +0 -11
data/lib/jax/version.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  module Jax
2
2
  module Version
3
3
  MAJOR = 1
4
- MINOR = 0
5
- TINY = 1
6
- PREREL = nil
4
+ MINOR = 1
5
+ TINY = 0
6
+ PREREL = "rc1"
7
7
 
8
8
  STRING = PREREL ? "#{MAJOR}.#{MINOR}.#{TINY}.#{PREREL}" : "#{MAJOR}.#{MINOR}.#{TINY}"
9
9
  end
@@ -0,0 +1,93 @@
1
+ <html>
2
+ <head>
3
+ <script type="text/javascript" src="/__root__/dist/jax.js"></script>
4
+ <script type="text/javascript">
5
+ Jax.environment = Jax.PRODUCTION;
6
+
7
+ // shaders
8
+ Jax.shaders['basic'] = new Jax.Shader({ common:"shared uniform mat4 ivMatrix, mvMatrix, pMatrix, vMatrix;\nshared uniform mat3 vnMatrix, nMatrix;\n\nshared uniform vec4 materialDiffuse, materialAmbient, materialSpecular;\nshared uniform float materialShininess;\n\nshared uniform int PASS_TYPE;\n\nshared varying vec2 vTexCoords;\nshared varying vec3 vNormal, vSurfacePos;\nshared varying vec4 vBaseColor;\n",
9
+ fragment:"void main(void) {\n gl_FragColor = vBaseColor;\n}\n",
10
+ vertex:"shared attribute vec2 VERTEX_TEXCOORDS;\nshared attribute vec3 VERTEX_NORMAL;\nshared attribute vec4 VERTEX_POSITION, VERTEX_COLOR, VERTEX_TANGENT;\n\nvoid main(void) {\n vBaseColor = VERTEX_COLOR;\n vNormal = nMatrix * VERTEX_NORMAL;\n vTexCoords = VERTEX_TEXCOORDS;\n \n vSurfacePos = (mvMatrix * VERTEX_POSITION).xyz;\n\n gl_Position = pMatrix * mvMatrix * VERTEX_POSITION;\n}\n",
11
+ exports: {},
12
+ name: "basic"});
13
+
14
+ // controllers
15
+ var BenchmarkController = Jax.Controller.create("benchmark", {
16
+ index: function() {
17
+ this.context.glCullFace(GL_BACK);
18
+ this.context.glEnable(GL_CULL_FACE);
19
+
20
+ this.cubes = [];
21
+ var count = document.getElementById('benchmark-object-count').value;
22
+ var maxz = count / 20;
23
+ for (var i = 0; i < count; i++) {
24
+ var z = parseInt(i / 20), x = ((i % 20) % 5), y = parseInt((i % 20) / 5);
25
+ var color = [1-z/maxz,x / 5,(y / 5) * 0.75 + 0.25,0.85];
26
+ var cube = new Jax.Model({
27
+ mesh: new Jax.Mesh.Cube({size:0.5,color:color}),
28
+ position: [x - 2.0, y - 1.5, -(maxz-z)],
29
+ angle: vec3.normalize([Math.random(), Math.random(), Math.random()])
30
+ });
31
+ this.world.addObject(cube);
32
+ this.cubes.push(cube);
33
+ }
34
+ this.player.camera.setPosition(0,0,3);
35
+ },
36
+
37
+ update: function(timechange) {
38
+ var amount = timechange;
39
+ for (var i = 0; i < this.cubes.length; i++) {
40
+ this.cubes[i].camera.rotate(amount, this.cubes[i].angle);
41
+ }
42
+ }
43
+ });
44
+
45
+ // views
46
+ Jax.views.push('benchmark/index', function() {
47
+ this.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
48
+ this.world.render();
49
+ });
50
+
51
+ Jax.routes.map("benchmark/index", BenchmarkController, 'index');
52
+
53
+ function startBenchmark() {
54
+ document.getElementById('result').style.display = "none";
55
+ document.getElementById('framerate').style.display = "block";
56
+ document.getElementById('start-button').disabled = true;
57
+ var benchmark = {start: new Date(),avg_fps:0,fps_count:0,fps_iters:0};
58
+ var jax = new Jax.Context("benchmark-canvas");
59
+ jax.redirectTo("benchmark/index");
60
+ var fpscounter = setInterval(function() {
61
+ var fps = jax.getFramesPerSecond();
62
+ if (fps == 0 || !isFinite(fps) || isNaN(fps)) return;
63
+ benchmark.fps_count += fps;
64
+ benchmark.fps_iters++;
65
+ benchmark.avg_fps = benchmark.fps_count / benchmark.fps_iters;
66
+ document.getElementById('fps').innerHTML = fps;
67
+ }, 250);
68
+
69
+ setTimeout(function() {
70
+ jax.dispose();
71
+ clearInterval(fpscounter);
72
+ benchmark.stop = new Date();
73
+
74
+ document.getElementById('start-button').disabled = false;
75
+ document.getElementById('result').style.display = "block";
76
+ document.getElementById('framerate').style.display = "none";
77
+ result = new EJS({text:"Duration: <%=(stop-start)/1000%>sec<br/>Average framerate: <%=avg_fps%>"});
78
+ document.getElementById('result').innerHTML = result.render(benchmark);
79
+ }, parseInt(document.getElementById('benchmark-duration').value) * 1000);
80
+ }
81
+ </script>
82
+ </head>
83
+ <body>
84
+ <div id="result" style="display:none;"></div>
85
+ <div id="framerate" style="display:none;">FPS: <span id="fps">Calculating...</span></div>
86
+ <canvas id="benchmark-canvas" width="400" height="300"></canvas>
87
+ <div>
88
+ Benchmark duration (in seconds): <input id="benchmark-duration" value="10" /><br/>
89
+ Object count: <input id="benchmark-object-count" value="20" /><br/>
90
+ <input type="button" id="start-button" value="Start Benchmark" onclick="startBenchmark();return false;" />
91
+ </div>
92
+ </body>
93
+ </html>
@@ -0,0 +1,39 @@
1
+ HTTP/1.1 404 Not Found
2
+ Content-Type: text/html
3
+ X-Runtime: 0.072585
4
+ Server: WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18)
5
+ Date: Sun, 19 Jun 2011 01:30:29 GMT
6
+ Connection: Keep-Alive
7
+
8
+ <html xmlns="http://www.w3.org/1999/xhtml">
9
+ <head>
10
+ <title>Action Controller: Exception caught</title>
11
+ <style>
12
+ body { background-color: #fff; color: #333; }
13
+
14
+ body, p, ol, ul, td {
15
+ font-family: verdana, arial, helvetica, sans-serif;
16
+ font-size: 13px;
17
+ line-height: 18px;
18
+ }
19
+
20
+ pre {
21
+ background-color: #eee;
22
+ padding: 10px;
23
+ font-size: 11px;
24
+ }
25
+
26
+ a { color: #000; }
27
+ a:visited { color: #666; }
28
+ a:hover { color: #fff; background-color:#000; }
29
+ </style>
30
+ </head>
31
+ <body>
32
+
33
+ <h1>Routing Error</h1>
34
+ <p><pre>No route matches &quot;/plugins/cloud&quot;</pre></p>
35
+
36
+
37
+
38
+ </body>
39
+ </html>
@@ -0,0 +1,106 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/xml; charset=utf-8
3
+ Etag: "cb47c0782df774abbb201d37b9abe155"
4
+ Cache-Control: max-age=0, private, must-revalidate
5
+ X-Ua-Compatible: IE=Edge
6
+ X-Runtime: 0.098555
7
+ Server: WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18)
8
+ Date: Fri, 10 Jun 2011 13:30:31 GMT
9
+ Connection: Keep-Alive
10
+
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <jax-plugins type="array">
13
+ <jax-plugin>
14
+ <author-id type="integer">1</author-id>
15
+ <created-at type="datetime">2011-06-07T10:51:41Z</created-at>
16
+ <description>Adds a height map generated dynamically in the vertex shader using Perlin noise.</description>
17
+ <id type="integer">1</id>
18
+ <name>vertex-height-map</name>
19
+ <updated-at type="datetime">2011-06-07T10:51:41Z</updated-at>
20
+ <author>
21
+ <created-at type="datetime">2011-06-07T02:28:44Z</created-at>
22
+ <email>sinisterchipmunk@gmail.com</email>
23
+ <id type="integer">Colin MacKenzie IV</id>
24
+ <login>sinisterchipmunk</login>
25
+ <updated-at type="datetime">2011-06-07T02:28:44Z</updated-at>
26
+ </author>
27
+ <releases type="array">
28
+ <release>
29
+ <created-at type="datetime">2011-06-07T10:51:41Z</created-at>
30
+ <id type="integer">1</id>
31
+ <jax-plugin-id type="integer">1</jax-plugin-id>
32
+ <updated-at type="datetime">2011-06-07T10:51:41Z</updated-at>
33
+ <version>1.0.0</version>
34
+ </release>
35
+ <release>
36
+ <created-at type="datetime">2011-06-07T12:04:22Z</created-at>
37
+ <id type="integer">2</id>
38
+ <jax-plugin-id type="integer">1</jax-plugin-id>
39
+ <updated-at type="datetime">2011-06-07T12:04:22Z</updated-at>
40
+ <version>1.0.1</version>
41
+ </release>
42
+ </releases>
43
+ </jax-plugin>
44
+ <jax-plugin>
45
+ <author-id type="integer">1</author-id>
46
+ <created-at type="datetime">2011-06-07T10:51:41Z</created-at>
47
+ <description>Adds a shader for dynamic cloud generation.</description>
48
+ <id type="integer">2</id>
49
+ <name>clouds</name>
50
+ <updated-at type="datetime">2011-06-07T10:51:41Z</updated-at>
51
+ <author>
52
+ <created-at type="datetime">2011-06-07T02:28:44Z</created-at>
53
+ <email>sinisterchipmunk@gmail.com</email>
54
+ <id type="integer">Colin MacKenzie IV</id>
55
+ <login>sinisterchipmunk</login>
56
+ <updated-at type="datetime">2011-06-07T02:28:44Z</updated-at>
57
+ </author>
58
+ <releases type="array">
59
+ <release>
60
+ <created-at type="datetime">2011-06-07T10:51:41Z</created-at>
61
+ <id type="integer">1</id>
62
+ <jax-plugin-id type="integer">1</jax-plugin-id>
63
+ <updated-at type="datetime">2011-06-07T10:51:41Z</updated-at>
64
+ <version>1.0.0</version>
65
+ </release>
66
+ <release>
67
+ <created-at type="datetime">2011-06-07T12:04:22Z</created-at>
68
+ <id type="integer">2</id>
69
+ <jax-plugin-id type="integer">1</jax-plugin-id>
70
+ <updated-at type="datetime">2011-06-07T12:04:22Z</updated-at>
71
+ <version>1.0.1</version>
72
+ </release>
73
+ <release>
74
+ <created-at type="datetime">2011-06-07T12:04:22Z</created-at>
75
+ <id type="integer">3</id>
76
+ <jax-plugin-id type="integer">1</jax-plugin-id>
77
+ <updated-at type="datetime">2011-06-07T12:04:22Z</updated-at>
78
+ <version>1.0.2</version>
79
+ </release>
80
+ </releases>
81
+ </jax-plugin>
82
+ <jax-plugin>
83
+ <author-id type="integer">1</author-id>
84
+ <created-at type="datetime">2011-06-07T10:51:41Z</created-at>
85
+ <description>Adds a shader that deforms meshes, producing "blobs".</description>
86
+ <id type="integer">2</id>
87
+ <name>vertex-blob</name>
88
+ <updated-at type="datetime">2011-06-07T10:51:41Z</updated-at>
89
+ <author>
90
+ <created-at type="datetime">2011-06-07T02:28:44Z</created-at>
91
+ <email>sinisterchipmunk@gmail.com</email>
92
+ <id type="integer">Colin MacKenzie IV</id>
93
+ <login>sinisterchipmunk</login>
94
+ <updated-at type="datetime">2011-06-07T02:28:44Z</updated-at>
95
+ </author>
96
+ <releases type="array">
97
+ <release>
98
+ <created-at type="datetime">2011-06-07T10:51:41Z</created-at>
99
+ <id type="integer">1</id>
100
+ <jax-plugin-id type="integer">1</jax-plugin-id>
101
+ <updated-at type="datetime">2011-06-07T10:51:41Z</updated-at>
102
+ <version>1.0.0</version>
103
+ </release>
104
+ </releases>
105
+ </jax-plugin>
106
+ </jax-plugins>
@@ -0,0 +1,20 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/xml; charset=utf-8
3
+ Etag: "4597e0c288d01ef99b721ec590fa86c7"
4
+ Cache-Control: max-age=0, private, must-revalidate
5
+ X-Ua-Compatible: IE=Edge
6
+ X-Runtime: 0.173563
7
+ Server: WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18)
8
+ Date: Mon, 20 Jun 2011 14:46:14 GMT
9
+ Content-Length: 350
10
+ Connection: Keep-Alive
11
+
12
+ <?xml version="1.0" encoding="UTF-8"?>
13
+ <author>
14
+ <created-at type="datetime">2011-06-20T14:46:14Z</created-at>
15
+ <email>missing@gmail.com</email>
16
+ <id type="integer">6</id>
17
+ <login>missing@gmail.com</login>
18
+ <updated-at type="datetime">2011-06-20T14:46:14Z</updated-at>
19
+ <single-access-token>WXTzIXC2ODdbLAyvVL9p</single-access-token>
20
+ </author>
@@ -0,0 +1,27 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/xml; charset=utf-8
3
+ Etag: "a8f4ef6fa2751afc34294e94ab6c9a3d"
4
+ Cache-Control: max-age=0, private, must-revalidate
5
+ X-Ua-Compatible: IE=Edge
6
+ X-Runtime: 0.250274
7
+ Server: WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18)
8
+ Date: Mon, 20 Jun 2011 15:35:35 GMT
9
+ Content-Length: 610
10
+ Connection: Keep-Alive
11
+
12
+ <?xml version="1.0" encoding="UTF-8"?>
13
+ <jax-plugin>
14
+ <author-id type="integer">6</author-id>
15
+ <created-at type="datetime">2011-06-20T15:35:35Z</created-at>
16
+ <description>a cloudy day</description>
17
+ <id type="integer">2</id>
18
+ <name>clouds</name>
19
+ <updated-at type="datetime">2011-06-20T15:35:35Z</updated-at>
20
+ <latest-release>
21
+ <created-at type="datetime">2011-06-20T15:35:35Z</created-at>
22
+ <id type="integer">3</id>
23
+ <jax-plugin-id type="integer">2</jax-plugin-id>
24
+ <updated-at type="datetime">2011-06-20T15:35:35Z</updated-at>
25
+ <version>1.0.0</version>
26
+ </latest-release>
27
+ </jax-plugin>
@@ -0,0 +1,19 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/xml; charset=utf-8
3
+ Etag: "4597e0c288d01ef99b721ec590fa86c7"
4
+ Cache-Control: max-age=0, private, must-revalidate
5
+ X-Ua-Compatible: IE=Edge
6
+ X-Runtime: 0.107102
7
+ Server: WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18)
8
+ Date: Mon, 20 Jun 2011 14:53:27 GMT
9
+ Connection: Keep-Alive
10
+
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <author>
13
+ <created-at type="datetime">2011-06-20T14:46:14Z</created-at>
14
+ <email>sinisterchipmunk@gmail.com</email>
15
+ <id type="integer">6</id>
16
+ <login>sinisterchipmunk@gmail.com</login>
17
+ <updated-at type="datetime">2011-06-20T14:46:14Z</updated-at>
18
+ <single-access-token>WXTzIXC2ODdbLAyvVL9p</single-access-token>
19
+ </author>
@@ -0,0 +1,14 @@
1
+ HTTP/1.1 422
2
+ Content-Type: application/xml; charset=utf-8
3
+ Cache-Control: no-cache
4
+ X-Ua-Compatible: IE=Edge
5
+ X-Runtime: 0.053330
6
+ Server: WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18)
7
+ Date: Mon, 20 Jun 2011 14:29:53 GMT
8
+ Content-Length: 87
9
+ Connection: Keep-Alive
10
+
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <hash>
13
+ <error>Login not found</error>
14
+ </hash>
@@ -0,0 +1,12 @@
1
+ HTTP/1.1 401 Unauthorized
2
+ WWW-Authenticate: Basic realm="Application"
3
+ Content-Type: text/html; charset=utf-8
4
+ Cache-Control: no-cache
5
+ X-Ua-Compatible: IE=Edge
6
+ X-Runtime: 0.101305
7
+ Server: WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18)
8
+ Date: Mon, 20 Jun 2011 14:57:18 GMT
9
+ Content-Length: 27
10
+ Connection: Keep-Alive
11
+
12
+ HTTP Basic: Access denied.
@@ -0,0 +1,51 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/xml; charset=utf-8
3
+ Etag: "cb47c0782df774abbb201d37b9abe155"
4
+ Cache-Control: max-age=0, private, must-revalidate
5
+ X-Ua-Compatible: IE=Edge
6
+ X-Runtime: 0.098555
7
+ Server: WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18)
8
+ Date: Fri, 10 Jun 2011 13:30:31 GMT
9
+ Connection: Keep-Alive
10
+
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <jax-plugins type="array">
13
+ <jax-plugin>
14
+ <author-id type="integer">1</author-id>
15
+ <created-at type="datetime">2011-06-07T10:51:41Z</created-at>
16
+ <description>Adds a shader for dynamic cloud generation.</description>
17
+ <id type="integer">2</id>
18
+ <name>clouds</name>
19
+ <updated-at type="datetime">2011-06-07T10:51:41Z</updated-at>
20
+ <author>
21
+ <created-at type="datetime">2011-06-07T02:28:44Z</created-at>
22
+ <email>sinisterchipmunk@gmail.com</email>
23
+ <id type="integer">Colin MacKenzie IV</id>
24
+ <login>sinisterchipmunk</login>
25
+ <updated-at type="datetime">2011-06-07T02:28:44Z</updated-at>
26
+ </author>
27
+ <releases type="array">
28
+ <release>
29
+ <created-at type="datetime">2011-06-07T10:51:41Z</created-at>
30
+ <id type="integer">1</id>
31
+ <jax-plugin-id type="integer">1</jax-plugin-id>
32
+ <updated-at type="datetime">2011-06-07T10:51:41Z</updated-at>
33
+ <version>1.0.0</version>
34
+ </release>
35
+ <release>
36
+ <created-at type="datetime">2011-06-07T12:04:22Z</created-at>
37
+ <id type="integer">2</id>
38
+ <jax-plugin-id type="integer">1</jax-plugin-id>
39
+ <updated-at type="datetime">2011-06-07T12:04:22Z</updated-at>
40
+ <version>1.0.1</version>
41
+ </release>
42
+ <release>
43
+ <created-at type="datetime">2011-06-07T12:04:22Z</created-at>
44
+ <id type="integer">3</id>
45
+ <jax-plugin-id type="integer">1</jax-plugin-id>
46
+ <updated-at type="datetime">2011-06-07T12:04:22Z</updated-at>
47
+ <version>1.0.2</version>
48
+ </release>
49
+ </releases>
50
+ </jax-plugin>
51
+ </jax-plugins>
@@ -0,0 +1,13 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/xml; charset=utf-8
3
+ Etag: "4f31ca96db448bb738a3923db737871d"
4
+ Cache-Control: max-age=0, private, must-revalidate
5
+ X-Ua-Compatible: IE=Edge
6
+ X-Runtime: 0.095591
7
+ Server: WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18)
8
+ Date: Sun, 19 Jun 2011 01:53:53 GMT
9
+ Content-Length: 67
10
+ Connection: Keep-Alive
11
+
12
+ <?xml version="1.0" encoding="UTF-8"?>
13
+ <nil-classes type="array"/>
@@ -0,0 +1,68 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/xml; charset=utf-8
3
+ Etag: "cb47c0782df774abbb201d37b9abe155"
4
+ Cache-Control: max-age=0, private, must-revalidate
5
+ X-Ua-Compatible: IE=Edge
6
+ X-Runtime: 0.098555
7
+ Server: WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18)
8
+ Date: Fri, 10 Jun 2011 13:30:31 GMT
9
+ Connection: Keep-Alive
10
+
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <jax-plugins type="array">
13
+ <jax-plugin>
14
+ <author-id type="integer">1</author-id>
15
+ <created-at type="datetime">2011-06-07T10:51:41Z</created-at>
16
+ <description>Adds a height map generated dynamically in the vertex shader using Perlin noise.</description>
17
+ <id type="integer">1</id>
18
+ <name>vertex-height-map</name>
19
+ <updated-at type="datetime">2011-06-07T10:51:41Z</updated-at>
20
+ <author>
21
+ <created-at type="datetime">2011-06-07T02:28:44Z</created-at>
22
+ <email>sinisterchipmunk@gmail.com</email>
23
+ <id type="integer">Colin MacKenzie IV</id>
24
+ <login>sinisterchipmunk</login>
25
+ <updated-at type="datetime">2011-06-07T02:28:44Z</updated-at>
26
+ </author>
27
+ <releases type="array">
28
+ <release>
29
+ <created-at type="datetime">2011-06-07T10:51:41Z</created-at>
30
+ <id type="integer">1</id>
31
+ <jax-plugin-id type="integer">1</jax-plugin-id>
32
+ <updated-at type="datetime">2011-06-07T10:51:41Z</updated-at>
33
+ <version>1.0.0</version>
34
+ </release>
35
+ <release>
36
+ <created-at type="datetime">2011-06-07T12:04:22Z</created-at>
37
+ <id type="integer">2</id>
38
+ <jax-plugin-id type="integer">1</jax-plugin-id>
39
+ <updated-at type="datetime">2011-06-07T12:04:22Z</updated-at>
40
+ <version>1.0.1</version>
41
+ </release>
42
+ </releases>
43
+ </jax-plugin>
44
+ <jax-plugin>
45
+ <author-id type="integer">1</author-id>
46
+ <created-at type="datetime">2011-06-07T10:51:41Z</created-at>
47
+ <description>Adds a shader that deforms meshes, producing "blobs".</description>
48
+ <id type="integer">2</id>
49
+ <name>vertex-blob</name>
50
+ <updated-at type="datetime">2011-06-07T10:51:41Z</updated-at>
51
+ <author>
52
+ <created-at type="datetime">2011-06-07T02:28:44Z</created-at>
53
+ <email>sinisterchipmunk@gmail.com</email>
54
+ <id type="integer">Colin MacKenzie IV</id>
55
+ <login>sinisterchipmunk</login>
56
+ <updated-at type="datetime">2011-06-07T02:28:44Z</updated-at>
57
+ </author>
58
+ <releases type="array">
59
+ <release>
60
+ <created-at type="datetime">2011-06-07T10:51:41Z</created-at>
61
+ <id type="integer">1</id>
62
+ <jax-plugin-id type="integer">1</jax-plugin-id>
63
+ <updated-at type="datetime">2011-06-07T10:51:41Z</updated-at>
64
+ <version>1.0.0</version>
65
+ </release>
66
+ </releases>
67
+ </jax-plugin>
68
+ </jax-plugins>