jax 0.0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +12 -0
- data/.gitmodules +3 -0
- data/.rvmrc +7 -0
- data/Gemfile +4 -0
- data/README.rdoc +32 -0
- data/Rakefile +144 -0
- data/bin/jax +11 -0
- data/builtin/shaders/basic/common.ejs +11 -0
- data/builtin/shaders/basic/fragment.ejs +5 -0
- data/builtin/shaders/basic/vertex.ejs +13 -0
- data/builtin/shaders/depthmap/common.ejs +1 -0
- data/builtin/shaders/depthmap/fragment.ejs +5 -0
- data/builtin/shaders/depthmap/vertex.ejs +7 -0
- data/builtin/shaders/fog/common.ejs +7 -0
- data/builtin/shaders/fog/fragment.ejs +23 -0
- data/builtin/shaders/fog/manifest.yml +12 -0
- data/builtin/shaders/fog/material.js +34 -0
- data/builtin/shaders/fog/vertex.ejs +10 -0
- data/builtin/shaders/functions/depth_map.ejs +24 -0
- data/builtin/shaders/functions/lights.ejs +155 -0
- data/builtin/shaders/lighting/common.ejs +5 -0
- data/builtin/shaders/lighting/fragment.ejs +34 -0
- data/builtin/shaders/lighting/manifest.yml +4 -0
- data/builtin/shaders/lighting/material.js +26 -0
- data/builtin/shaders/lighting/vertex.ejs +7 -0
- data/builtin/shaders/normal_map/common.ejs +12 -0
- data/builtin/shaders/normal_map/fragment.ejs +26 -0
- data/builtin/shaders/normal_map/manifest.yml +17 -0
- data/builtin/shaders/normal_map/material.js +16 -0
- data/builtin/shaders/normal_map/vertex.ejs +57 -0
- data/builtin/shaders/paraboloid-depthmap/common.ejs +6 -0
- data/builtin/shaders/paraboloid-depthmap/fragment.ejs +8 -0
- data/builtin/shaders/paraboloid-depthmap/material.js +15 -0
- data/builtin/shaders/paraboloid-depthmap/vertex.ejs +26 -0
- data/builtin/shaders/shadow_map/common.ejs +14 -0
- data/builtin/shaders/shadow_map/fragment.ejs +66 -0
- data/builtin/shaders/shadow_map/manifest.yml +1 -0
- data/builtin/shaders/shadow_map/material.js +26 -0
- data/builtin/shaders/shadow_map/vertex.ejs +46 -0
- data/builtin/shaders/texture/common.ejs +4 -0
- data/builtin/shaders/texture/fragment.ejs +11 -0
- data/builtin/shaders/texture/manifest.yml +17 -0
- data/builtin/shaders/texture/material.js +18 -0
- data/builtin/shaders/texture/vertex.ejs +9 -0
- data/guides/assets/images/book_icon.gif +0 -0
- data/guides/assets/images/bullet.gif +0 -0
- data/guides/assets/images/chapters_icon.gif +0 -0
- data/guides/assets/images/check_bullet.gif +0 -0
- data/guides/assets/images/credits_pic_blank.gif +0 -0
- data/guides/assets/images/edge_badge.png +0 -0
- data/guides/assets/images/feature_tile.gif +0 -0
- data/guides/assets/images/footer_tile.gif +0 -0
- data/guides/assets/images/getting_started/clean_passing_jasmine_suite.png +0 -0
- data/guides/assets/images/getting_started/rock.png +0 -0
- data/guides/assets/images/getting_started/rock_normal.png +0 -0
- data/guides/assets/images/grey_bullet.gif +0 -0
- data/guides/assets/images/header_backdrop.png +0 -0
- data/guides/assets/images/header_tile.gif +0 -0
- data/guides/assets/images/icons/README +5 -0
- data/guides/assets/images/icons/callouts/1.png +0 -0
- data/guides/assets/images/icons/callouts/10.png +0 -0
- data/guides/assets/images/icons/callouts/11.png +0 -0
- data/guides/assets/images/icons/callouts/12.png +0 -0
- data/guides/assets/images/icons/callouts/13.png +0 -0
- data/guides/assets/images/icons/callouts/14.png +0 -0
- data/guides/assets/images/icons/callouts/15.png +0 -0
- data/guides/assets/images/icons/callouts/2.png +0 -0
- data/guides/assets/images/icons/callouts/3.png +0 -0
- data/guides/assets/images/icons/callouts/4.png +0 -0
- data/guides/assets/images/icons/callouts/5.png +0 -0
- data/guides/assets/images/icons/callouts/6.png +0 -0
- data/guides/assets/images/icons/callouts/7.png +0 -0
- data/guides/assets/images/icons/callouts/8.png +0 -0
- data/guides/assets/images/icons/callouts/9.png +0 -0
- data/guides/assets/images/icons/caution.png +0 -0
- data/guides/assets/images/icons/example.png +0 -0
- data/guides/assets/images/icons/home.png +0 -0
- data/guides/assets/images/icons/important.png +0 -0
- data/guides/assets/images/icons/next.png +0 -0
- data/guides/assets/images/icons/note.png +0 -0
- data/guides/assets/images/icons/prev.png +0 -0
- data/guides/assets/images/icons/tip.png +0 -0
- data/guides/assets/images/icons/up.png +0 -0
- data/guides/assets/images/icons/warning.png +0 -0
- data/guides/assets/images/nav_arrow.gif +0 -0
- data/guides/assets/images/tab_grey.gif +0 -0
- data/guides/assets/images/tab_info.gif +0 -0
- data/guides/assets/images/tab_note.gif +0 -0
- data/guides/assets/images/tab_red.gif +0 -0
- data/guides/assets/images/tab_yellow.gif +0 -0
- data/guides/assets/images/tab_yellow.png +0 -0
- data/guides/assets/javascripts/guides.js +7 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushAS3.js +59 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushAppleScript.js +75 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushBash.js +59 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushCSharp.js +65 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushColdFusion.js +100 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushCpp.js +97 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushCss.js +91 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushDelphi.js +55 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushDiff.js +41 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushErlang.js +52 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushGroovy.js +67 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushJScript.js +52 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushJava.js +57 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushJavaFX.js +58 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushPerl.js +72 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushPhp.js +88 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushPlain.js +33 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushPowerShell.js +74 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushPython.js +64 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushRuby.js +55 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushSass.js +94 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushScala.js +51 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushSql.js +66 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushVb.js +56 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushXml.js +69 -0
- data/guides/assets/javascripts/syntaxhighlighter/shCore.js +17 -0
- data/guides/assets/stylesheets/fixes.css +16 -0
- data/guides/assets/stylesheets/main.css +445 -0
- data/guides/assets/stylesheets/print.css +52 -0
- data/guides/assets/stylesheets/reset.css +43 -0
- data/guides/assets/stylesheets/style.css +13 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCore.css +226 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreDefault.css +328 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreDjango.css +331 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreEclipse.css +339 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreEmacs.css +324 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreFadeToGrey.css +328 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreMDUltra.css +324 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreMidnight.css +324 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreRDark.css +324 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeDefault.css +117 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeDjango.css +120 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeEclipse.css +128 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeEmacs.css +113 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeFadeToGrey.css +117 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeJaxGuides.css +116 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeMDUltra.css +113 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeMidnight.css +113 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeRDark.css +113 -0
- data/guides/jax_guides.rb +41 -0
- data/guides/jax_guides/common.rb +7 -0
- data/guides/jax_guides/generator.rb +287 -0
- data/guides/jax_guides/helpers.rb +29 -0
- data/guides/jax_guides/indexer.rb +69 -0
- data/guides/jax_guides/levenshtein.rb +31 -0
- data/guides/jax_guides/textile_extensions.rb +61 -0
- data/guides/source/getting_started.textile +1171 -0
- data/guides/source/index.html.erb +50 -0
- data/guides/source/layout.html.erb +158 -0
- data/guides/source/lighting.textile +5 -0
- data/guides/source/materials.textile +5 -0
- data/guides/source/shaders.textile +5 -0
- data/guides/source/testing.textile +5 -0
- data/guides/w3c_validator.rb +91 -0
- data/jax.gems +1 -0
- data/jax.gemspec +40 -0
- data/lib/jax.rb +28 -0
- data/lib/jax/application.rb +92 -0
- data/lib/jax/application/configuration.rb +27 -0
- data/lib/jax/generators/app.rb +17 -0
- data/lib/jax/generators/app/app_generator.rb +78 -0
- data/lib/jax/generators/app/templates/Gemfile.tt +3 -0
- data/lib/jax/generators/app/templates/Rakefile +6 -0
- data/lib/jax/generators/app/templates/app/controllers/application_controller.js.tt +5 -0
- data/lib/jax/generators/app/templates/app/helpers/application_helper.js.tt +3 -0
- data/lib/jax/generators/app/templates/app/models/.empty_directory +0 -0
- data/lib/jax/generators/app/templates/app/resources/.empty_directory +0 -0
- data/lib/jax/generators/app/templates/app/views/.empty_directory +0 -0
- data/lib/jax/generators/app/templates/config/application.rb.tt +6 -0
- data/lib/jax/generators/app/templates/config/boot.rb +13 -0
- data/lib/jax/generators/app/templates/config/routes.rb.tt +5 -0
- data/lib/jax/generators/app/templates/public/javascripts/jax.js +7561 -0
- data/lib/jax/generators/app/templates/public/webgl_not_supported.html +26 -0
- data/lib/jax/generators/app/templates/script/jax +7 -0
- data/lib/jax/generators/app/templates/spec/javascripts/controllers/application_controller_spec.js +11 -0
- data/lib/jax/generators/app/templates/spec/javascripts/helpers/application_helper_spec.js +12 -0
- data/lib/jax/generators/app/templates/spec/javascripts/support/jasmine.yml +90 -0
- data/lib/jax/generators/app/templates/spec/javascripts/support/jasmine_config.rb +23 -0
- data/lib/jax/generators/app/templates/spec/javascripts/support/jasmine_runner.rb +32 -0
- data/lib/jax/generators/app/templates/spec/javascripts/support/spec_helpers/jax_spec_helper.js +216 -0
- data/lib/jax/generators/app/templates/spec/javascripts/support/spec_layout.html.erb +63 -0
- data/lib/jax/generators/commands.rb +81 -0
- data/lib/jax/generators/controller/USAGE +9 -0
- data/lib/jax/generators/controller/controller_generator.rb +59 -0
- data/lib/jax/generators/controller/templates/controller_source.js.tt +16 -0
- data/lib/jax/generators/controller/templates/controller_test.js.tt +11 -0
- data/lib/jax/generators/controller/templates/helper.js.tt +3 -0
- data/lib/jax/generators/controller/templates/helper_test.js.tt +12 -0
- data/lib/jax/generators/controller/templates/view.js.tt +4 -0
- data/lib/jax/generators/light_source/USAGE +14 -0
- data/lib/jax/generators/light_source/light_source_generator.rb +47 -0
- data/lib/jax/generators/light_source/templates/light.yml.tt +39 -0
- data/lib/jax/generators/material/USAGE +29 -0
- data/lib/jax/generators/material/material_generator.rb +81 -0
- data/lib/jax/generators/material/templates/append.yml.tt +7 -0
- data/lib/jax/generators/material/templates/material.yml.tt +33 -0
- data/lib/jax/generators/model/USAGE +5 -0
- data/lib/jax/generators/model/model_generator.rb +42 -0
- data/lib/jax/generators/model/templates/model.js.tt +11 -0
- data/lib/jax/generators/model/templates/test.js.tt +11 -0
- data/lib/jax/generators/script_jax_loader.rb +32 -0
- data/lib/jax/monkeypatch/jasmine.rb +3 -0
- data/lib/jax/monkeypatch/jasmine/config.rb +21 -0
- data/lib/jax/monkeypatch/jasmine/server.rb +50 -0
- data/lib/jax/packager.rb +58 -0
- data/lib/jax/packager/sprockets_template.rb +49 -0
- data/lib/jax/resource_compiler.rb +50 -0
- data/lib/jax/routes.rb +61 -0
- data/lib/jax/shader.rb +158 -0
- data/lib/jax/tasks/rake.rb +34 -0
- data/lib/jax/version.rb +12 -0
- data/public/images/brickwall.jpg +0 -0
- data/public/images/jacks.jpg +0 -0
- data/public/images/normal_map.jpg +0 -0
- data/public/images/rock.png +0 -0
- data/public/images/rockNormal.png +0 -0
- data/public/images/rss.png +0 -0
- data/public/webgl_not_supported.html +26 -0
- data/spec/example_app/Gemfile +1 -0
- data/spec/example_app/Rakefile +15 -0
- data/spec/example_app/app/controllers/application_controller.js +5 -0
- data/spec/example_app/app/controllers/courthouse_controller.js +24 -0
- data/spec/example_app/app/controllers/lighting_controller.js +69 -0
- data/spec/example_app/app/controllers/shadows_controller.js +130 -0
- data/spec/example_app/app/controllers/textures_controller.js +52 -0
- data/spec/example_app/app/helpers/application_helper.js +3 -0
- data/spec/example_app/app/helpers/textures_helper.js +3 -0
- data/spec/example_app/app/models/character.js +23 -0
- data/spec/example_app/app/models/door.js +10 -0
- data/spec/example_app/app/models/scene.js +19 -0
- data/spec/example_app/app/resources/characters/judge.yml +3 -0
- data/spec/example_app/app/resources/doors/courthouse_door.yml +5 -0
- data/spec/example_app/app/resources/light_sources/directional_light.yml +13 -0
- data/spec/example_app/app/resources/light_sources/point_light.yml +31 -0
- data/spec/example_app/app/resources/light_sources/spot_light.yml +15 -0
- data/spec/example_app/app/resources/light_sources/sun.yml +7 -0
- data/spec/example_app/app/resources/light_sources/textures_point.yml +34 -0
- data/spec/example_app/app/resources/materials/bricks.yml +36 -0
- data/spec/example_app/app/resources/materials/lighting_with_shadows.yml +27 -0
- data/spec/example_app/app/resources/scenes/courthouse.yml +4 -0
- data/spec/example_app/app/views/courthouse/index.js +4 -0
- data/spec/example_app/app/views/lighting/index.js +4 -0
- data/spec/example_app/app/views/shadows/index.js +6 -0
- data/spec/example_app/app/views/textures/index.js +4 -0
- data/spec/example_app/config/application.rb +6 -0
- data/spec/example_app/config/boot.rb +13 -0
- data/spec/example_app/config/routes.rb +6 -0
- data/spec/example_app/public/images/185__normalmap.png +0 -0
- data/spec/example_app/public/images/face_norm.jpg +0 -0
- data/spec/example_app/public/images/rock.png +0 -0
- data/spec/example_app/public/images/rockNormal.png +0 -0
- data/spec/example_app/public/images/rss.png +0 -0
- data/spec/example_app/public/webgl_not_supported.html +26 -0
- data/spec/example_app/script/jax +7 -0
- data/spec/example_app/spec/javascripts/controllers/textures_controller_spec.js +11 -0
- data/spec/example_app/spec/javascripts/helpers/application_helper_spec.js +12 -0
- data/spec/example_app/spec/javascripts/resources/directional_light_spec.js +16 -0
- data/spec/example_app/spec/javascripts/resources/point_light_spec.js +17 -0
- data/spec/example_app/spec/javascripts/resources/spot_light_spec.js +18 -0
- data/spec/example_app/spec/javascripts/support/jasmine.yml +89 -0
- data/spec/example_app/spec/javascripts/support/jasmine_runner.rb +32 -0
- data/spec/example_app/spec/javascripts/support/spec_helpers/jax_spec_helper.js +93 -0
- data/spec/example_app/spec/javascripts/support/spec_layout.html.erb +84 -0
- data/spec/generators/app_generator_spec.rb +46 -0
- data/spec/generators/controller_generator_spec.rb +68 -0
- data/spec/generators/light_generator_spec.rb +51 -0
- data/spec/generators/material_generator_spec.rb +35 -0
- data/spec/generators/model_generator_spec.rb +43 -0
- data/spec/javascripts/Player.js +58 -0
- data/spec/javascripts/helpers/SpecHelper.js +216 -0
- data/spec/javascripts/jax/builtin/materials/core_materials_spec.js +41 -0
- data/spec/javascripts/jax/builtin/materials/dual_paraboloid_spec.js +37 -0
- data/spec/javascripts/jax/builtin/materials/fog_spec.js +19 -0
- data/spec/javascripts/jax/builtin/materials/lighting_spec.js +19 -0
- data/spec/javascripts/jax/builtin/materials/normal_map_spec.js +19 -0
- data/spec/javascripts/jax/builtin/materials/shadow_map_spec.js +19 -0
- data/spec/javascripts/jax/builtin/materials/texture_spec.js +19 -0
- data/spec/javascripts/jax/builtin/meshes/cube_spec.js +10 -0
- data/spec/javascripts/jax/builtin/meshes/plane_spec.js +8 -0
- data/spec/javascripts/jax/builtin/meshes/quad_spec.js +8 -0
- data/spec/javascripts/jax/builtin/meshes/sphere_spec.js +8 -0
- data/spec/javascripts/jax/builtin/meshes/teapot_spec.js +8 -0
- data/spec/javascripts/jax/builtin/meshes/torus_spec.js +8 -0
- data/spec/javascripts/jax/compatibility_spec.js +50 -0
- data/spec/javascripts/jax/context_spec.js +82 -0
- data/spec/javascripts/jax/controller_spec.js +145 -0
- data/spec/javascripts/jax/core/delegation_spec.js +48 -0
- data/spec/javascripts/jax/core/events_spec.js +17 -0
- data/spec/javascripts/jax/core/matrix_stack_spec.js +28 -0
- data/spec/javascripts/jax/core/utils_spec.js +256 -0
- data/spec/javascripts/jax/helper_spec.js +33 -0
- data/spec/javascripts/jax/model_spec.js +87 -0
- data/spec/javascripts/jax/optimizations/material_limitations_spec.js +87 -0
- data/spec/javascripts/jax/optimizations/shaders/basic_spec.js +68 -0
- data/spec/javascripts/jax/prototype/extensions_spec.js +34 -0
- data/spec/javascripts/jax/route_set_spec.js +67 -0
- data/spec/javascripts/jax/view_manager_spec.js +17 -0
- data/spec/javascripts/jax/webgl/camera_spec.js +159 -0
- data/spec/javascripts/jax/webgl/framebuffer_spec.js +46 -0
- data/spec/javascripts/jax/webgl/lighting_spec.js +61 -0
- data/spec/javascripts/jax/webgl/material_spec.js +118 -0
- data/spec/javascripts/jax/webgl/mesh_spec.js +86 -0
- data/spec/javascripts/jax/webgl/shader/manifest_spec.js +60 -0
- data/spec/javascripts/jax/webgl/shader_chain_spec.js +192 -0
- data/spec/javascripts/jax/webgl/shader_spec.js +276 -0
- data/spec/javascripts/jax/webgl/tangent_space_spec.js +142 -0
- data/spec/javascripts/jax/webgl/texture_spec.js +162 -0
- data/spec/javascripts/jax/webgl_spec.js +5 -0
- data/spec/javascripts/jax/world_spec.js +88 -0
- data/spec/javascripts/jax_spec.js +27 -0
- data/spec/javascripts/support/jasmine.yml +85 -0
- data/spec/javascripts/support/jasmine_runner.rb +32 -0
- data/spec/lib/jax/routes_spec.rb +24 -0
- data/spec/lib/jax/shader_spec.rb +57 -0
- data/spec/lib/jax/tasks/jax_rake_spec.rb +79 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/support/file_exist_matcher.rb +23 -0
- data/spec/support/spec_shell.rb +97 -0
- data/src/jax.js +84 -0
- data/src/jax/anim_frame.js +47 -0
- data/src/jax/builtin/all.js +7 -0
- data/src/jax/builtin/meshes/cube.js +62 -0
- data/src/jax/builtin/meshes/plane.js +36 -0
- data/src/jax/builtin/meshes/quad.js +80 -0
- data/src/jax/builtin/meshes/sphere.js +46 -0
- data/src/jax/builtin/meshes/teapot.js +38 -0
- data/src/jax/builtin/meshes/torus.js +46 -0
- data/src/jax/compatibility.js +140 -0
- data/src/jax/context.js +253 -0
- data/src/jax/controller.js +157 -0
- data/src/jax/core.js +39 -0
- data/src/jax/core/math.js +40 -0
- data/src/jax/core/matrix_stack.js +306 -0
- data/src/jax/core/util.js +226 -0
- data/src/jax/events.js +179 -0
- data/src/jax/geometry.js +3 -0
- data/src/jax/geometry/plane.js +59 -0
- data/src/jax/helper.js +8 -0
- data/src/jax/model.js +163 -0
- data/src/jax/prototype/class.js +78 -0
- data/src/jax/prototype/core.js +112 -0
- data/src/jax/prototype/extensions.js +124 -0
- data/src/jax/route_set.js +125 -0
- data/src/jax/vendor/ejs.js +4 -0
- data/src/jax/vendor/glMatrix.js +3 -0
- data/src/jax/view.js +37 -0
- data/src/jax/view_manager.js +46 -0
- data/src/jax/webgl.js +98 -0
- data/src/jax/webgl/camera.js +526 -0
- data/src/jax/webgl/core.js +6 -0
- data/src/jax/webgl/core/buffer.js +161 -0
- data/src/jax/webgl/core/edge.js +6 -0
- data/src/jax/webgl/core/events.js +25 -0
- data/src/jax/webgl/core/face.js +8 -0
- data/src/jax/webgl/core/framebuffer.js +206 -0
- data/src/jax/webgl/material.js +375 -0
- data/src/jax/webgl/mesh.js +412 -0
- data/src/jax/webgl/scene.js +11 -0
- data/src/jax/webgl/scene/frustum.js +260 -0
- data/src/jax/webgl/scene/light_manager.js +112 -0
- data/src/jax/webgl/scene/light_source.js +248 -0
- data/src/jax/webgl/shader.js +282 -0
- data/src/jax/webgl/shader/delegator.js +13 -0
- data/src/jax/webgl/shader/delegator/attribute.js +53 -0
- data/src/jax/webgl/shader/delegator/uniform.js +71 -0
- data/src/jax/webgl/shader/manifest.js +64 -0
- data/src/jax/webgl/shader/program.js +140 -0
- data/src/jax/webgl/shader_chain.js +256 -0
- data/src/jax/webgl/texture.js +312 -0
- data/src/jax/webgl/world.js +119 -0
- data/vendor/ejs/.svn/all-wcprops +17 -0
- data/vendor/ejs/.svn/entries +114 -0
- data/vendor/ejs/.svn/text-base/Eratta.txt.svn-base +3 -0
- data/vendor/ejs/.svn/text-base/license.txt.svn-base +21 -0
- data/vendor/ejs/Eratta.txt +3 -0
- data/vendor/ejs/example/.svn/all-wcprops +29 -0
- data/vendor/ejs/example/.svn/entries +164 -0
- data/vendor/ejs/example/.svn/prop-base/ejs.gif.svn-base +5 -0
- data/vendor/ejs/example/.svn/text-base/demo.html.svn-base +54 -0
- data/vendor/ejs/example/.svn/text-base/ejs.gif.svn-base +0 -0
- data/vendor/ejs/example/.svn/text-base/example.css.svn-base +31 -0
- data/vendor/ejs/example/.svn/text-base/example.js.svn-base +88 -0
- data/vendor/ejs/example/demo.html +54 -0
- data/vendor/ejs/example/ejs.gif +0 -0
- data/vendor/ejs/example/example.css +31 -0
- data/vendor/ejs/example/example.js +88 -0
- data/vendor/ejs/lib/.svn/all-wcprops +11 -0
- data/vendor/ejs/lib/.svn/entries +62 -0
- data/vendor/ejs/lib/.svn/text-base/ejs_fulljslint.js.svn-base +3774 -0
- data/vendor/ejs/lib/ejs_fulljslint.js +3774 -0
- data/vendor/ejs/license.txt +21 -0
- data/vendor/ejs/script/.svn/all-wcprops +17 -0
- data/vendor/ejs/script/.svn/entries +96 -0
- data/vendor/ejs/script/.svn/prop-base/yuicompressor-2.2.4.jar.svn-base +5 -0
- data/vendor/ejs/script/.svn/text-base/production.bat.svn-base +4 -0
- data/vendor/ejs/script/.svn/text-base/yuicompressor-2.2.4.jar.svn-base +0 -0
- data/vendor/ejs/script/production.bat +4 -0
- data/vendor/ejs/script/yuicompressor-2.2.4.jar +0 -0
- data/vendor/ejs/src/.svn/all-wcprops +17 -0
- data/vendor/ejs/src/.svn/entries +96 -0
- data/vendor/ejs/src/.svn/text-base/ejs.js.svn-base +505 -0
- data/vendor/ejs/src/.svn/text-base/view.js.svn-base +200 -0
- data/vendor/ejs/src/ejs.js +505 -0
- data/vendor/ejs/src/view.js +200 -0
- data/vendor/ejs/test/.svn/all-wcprops +23 -0
- data/vendor/ejs/test/.svn/entries +139 -0
- data/vendor/ejs/test/.svn/text-base/index.html.svn-base +18 -0
- data/vendor/ejs/test/.svn/text-base/setup_test.html.svn-base +44 -0
- data/vendor/ejs/test/.svn/text-base/sidebar.html.svn-base +28 -0
- data/vendor/ejs/test/included/.svn/all-wcprops +23 -0
- data/vendor/ejs/test/included/.svn/entries +130 -0
- data/vendor/ejs/test/included/.svn/text-base/prototype.js.svn-base +4184 -0
- data/vendor/ejs/test/included/.svn/text-base/test.css.svn-base +44 -0
- data/vendor/ejs/test/included/.svn/text-base/unittest.js.svn-base +564 -0
- data/vendor/ejs/test/included/prototype.js +4184 -0
- data/vendor/ejs/test/included/test.css +44 -0
- data/vendor/ejs/test/included/unittest.js +564 -0
- data/vendor/ejs/test/index.html +18 -0
- data/vendor/ejs/test/setup_test.html +44 -0
- data/vendor/ejs/test/sidebar.html +28 -0
- data/vendor/ejs/test/templates/.svn/all-wcprops +11 -0
- data/vendor/ejs/test/templates/.svn/entries +62 -0
- data/vendor/ejs/test/templates/.svn/text-base/test.ejs.svn-base +3 -0
- data/vendor/ejs/test/templates/test.ejs +3 -0
- data/vendor/ejs/test/tests/.svn/all-wcprops +23 -0
- data/vendor/ejs/test/tests/.svn/entries +130 -0
- data/vendor/ejs/test/tests/.svn/text-base/rendering.js.svn-base +94 -0
- data/vendor/ejs/test/tests/.svn/text-base/templating.js.svn-base +43 -0
- data/vendor/ejs/test/tests/.svn/text-base/views.js.svn-base +100 -0
- data/vendor/ejs/test/tests/rendering.js +94 -0
- data/vendor/ejs/test/tests/templating.js +43 -0
- data/vendor/ejs/test/tests/views.js +100 -0
- data/vendor/glmatrix/benchmark/js/CanvasMatrix.js +722 -0
- data/vendor/glmatrix/benchmark/js/EWGL_math.js +742 -0
- data/vendor/glmatrix/benchmark/js/mjs.js +1230 -0
- data/vendor/glmatrix/benchmark/matrix_benchmark.html +419 -0
- data/vendor/glmatrix/glMatrix-min.js +32 -0
- data/vendor/glmatrix/glMatrix.js +1815 -0
- data/vendor/glmatrix/unit tests/glMatrix-test.js +74 -0
- data/vendor/glmatrix/unit tests/qunit.css +119 -0
- data/vendor/glmatrix/unit tests/qunit.js +1069 -0
- data/vendor/glmatrix/unit tests/test_glMatrix.html +21 -0
- data/vendor/yuicompressor-2.4.2.jar +0 -0
- metadata +748 -0
@@ -0,0 +1,50 @@
|
|
1
|
+
<% content_for :page_title do %>
|
2
|
+
Jax Guides
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<% content_for :header_section do %>
|
6
|
+
<h2>Jax Guides</h2>
|
7
|
+
|
8
|
+
<p>
|
9
|
+
These guides are designed to make you immediately productive with Jax,
|
10
|
+
and to help you understand how all of the pieces fit together.
|
11
|
+
</p>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<% content_for :index_section do %>
|
15
|
+
<div id="subCol">
|
16
|
+
<dl>
|
17
|
+
<dd class="work-in-progress">Guides marked with this icon are currently being worked on. While they might still be useful to you, they may contain incomplete information and even errors. You can help by reviewing them and posting your comments and corrections to the author.</dd>
|
18
|
+
</dl>
|
19
|
+
</div>
|
20
|
+
<% end %>
|
21
|
+
|
22
|
+
<h3>Start Here</h3>
|
23
|
+
|
24
|
+
<dl>
|
25
|
+
<%= guide('Getting Started with Jax', 'getting_started.html', :work_in_progress => true) do %>
|
26
|
+
<p>Everything you need to know to install Jax and create your first application.</p>
|
27
|
+
<% end %>
|
28
|
+
</dl>
|
29
|
+
|
30
|
+
<h3>Digging Deeper</h3>
|
31
|
+
|
32
|
+
<dl>
|
33
|
+
|
34
|
+
<%= guide("Materials", 'materials.html', :work_in_progress => true) do %>
|
35
|
+
<p>This guide demonstrates how to create, use and dynamically alter Materials in Jax.</p>
|
36
|
+
<% end %>
|
37
|
+
|
38
|
+
<%= guide("Lighting", 'lighting.html', :work_in_progress => true) do %>
|
39
|
+
<p>This guide shows how to make the most of lighting support in Jax, and outlines potential caveats.</p>
|
40
|
+
<% end %>
|
41
|
+
|
42
|
+
<%= guide("Custom Shaders", 'shaders.html', :work_in_progress => true) do %>
|
43
|
+
<p>This guide shows how to add and use your own shaders to add advanced custom visual effects.</p>
|
44
|
+
<% end %>
|
45
|
+
|
46
|
+
<%= guide("Testing Jax Applications", 'testing.html', :work_in_progress => true) do %>
|
47
|
+
<p>This is a comprehensive guide to testing a Jax application. It covers everything from "What is a test?" to the testing APIs.</p>
|
48
|
+
<% end %>
|
49
|
+
|
50
|
+
</dl>
|
@@ -0,0 +1,158 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
|
4
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
5
|
+
<head>
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
7
|
+
|
8
|
+
<title><%= yield(:page_title) || 'Jax guides' %></title>
|
9
|
+
|
10
|
+
<link rel="stylesheet" type="text/css" href="stylesheets/style.css" />
|
11
|
+
<link rel="stylesheet" type="text/css" href="stylesheets/print.css" media="print" />
|
12
|
+
|
13
|
+
<link rel="stylesheet" type="text/css" href="stylesheets/syntaxhighlighter/shCore.css" />
|
14
|
+
<link rel="stylesheet" type="text/css" href="stylesheets/syntaxhighlighter/shThemeJaxGuides.css" />
|
15
|
+
|
16
|
+
<link rel="stylesheet" type="text/css" href="stylesheets/fixes.css" />
|
17
|
+
</head>
|
18
|
+
<body class="guide">
|
19
|
+
<% if @edge %>
|
20
|
+
<div>
|
21
|
+
<img src="images/edge_badge.png" alt="edge-badge" id="edge-badge" />
|
22
|
+
</div>
|
23
|
+
<% end %>
|
24
|
+
<div id="topNav">
|
25
|
+
<div class="wrapper">
|
26
|
+
<strong>More at <a href="http://jaxgl.com">jaxgl.com:</a> </strong>
|
27
|
+
<a href="http://blog.jaxgl.com/what-is-jax">Overview</a> |
|
28
|
+
<!-- <a href="http://jaxgl.com/download">Download</a> | -->
|
29
|
+
<!-- <a href="http://jaxgl.com/deploy">Deploy</a> | -->
|
30
|
+
<a href="http://github.com/sinisterchipmunk/jax">Code</a> |
|
31
|
+
<!-- <a href="http://jaxgl.com/documentation">Documentation</a> | -->
|
32
|
+
<a href="http://blog.jaxgl.com/forum">Forums</a> |
|
33
|
+
<a href="http://blog.jaxgl.com/">Blog</a>
|
34
|
+
</div>
|
35
|
+
</div>
|
36
|
+
<!--
|
37
|
+
I want to use a similar index to below, once the Jax guides start to take shape:
|
38
|
+
|
39
|
+
<div id="header">
|
40
|
+
<div class="wrapper clearfix">
|
41
|
+
<h1><a href="index.html" title="Return to home page">Guides.jaxgl.com</a></h1>
|
42
|
+
<p class="hide"><a href="#mainCol">Skip navigation</a>.</p>
|
43
|
+
<ul class="nav">
|
44
|
+
<li><a href="index.html">Home</a></li>
|
45
|
+
<li class="index"><a href="index.html" onclick="guideMenu(); return false;" id="guidesMenu">Guides Index</a>
|
46
|
+
<div id="guides" class="clearfix" style="display: none;">
|
47
|
+
<hr />
|
48
|
+
<dl class="L">
|
49
|
+
<dt>Start Here</dt>
|
50
|
+
<dd><a href="getting_started.html">Getting Started with Rails</a></dd>
|
51
|
+
<dt>Models</dt>
|
52
|
+
<dd><a href="migrations.html">Rails Database Migrations</a></dd>
|
53
|
+
<dd><a href="active_record_validations_callbacks.html">Active Record Validations and Callbacks</a></dd>
|
54
|
+
<dd><a href="association_basics.html">Active Record Associations</a></dd>
|
55
|
+
<dd><a href="active_record_querying.html">Active Record Query Interface</a></dd>
|
56
|
+
<dt>Views</dt>
|
57
|
+
<dd><a href="layouts_and_rendering.html">Layouts and Rendering in Rails</a></dd>
|
58
|
+
<dd><a href="form_helpers.html">Action View Form Helpers</a></dd>
|
59
|
+
<dt>Controllers</dt>
|
60
|
+
<dd><a href="action_controller_overview.html">Action Controller Overview</a></dd>
|
61
|
+
<dd><a href="routing.html">Rails Routing from the Outside In</a></dd>
|
62
|
+
</dl>
|
63
|
+
<dl class="R">
|
64
|
+
<dt>Digging Deeper</dt>
|
65
|
+
<dd><a href="active_support_core_extensions.html">Active Support Core Extensions</a></dd>
|
66
|
+
<dd><a href="i18n.html">Rails Internationalization API</a></dd>
|
67
|
+
<dd><a href="action_mailer_basics.html">Action Mailer Basics</a></dd>
|
68
|
+
<dd><a href="testing.html">Testing Rails Applications</a></dd>
|
69
|
+
<dd><a href="security.html">Securing Rails Applications</a></dd>
|
70
|
+
<dd><a href="debugging_rails_applications.html">Debugging Rails Applications</a></dd>
|
71
|
+
<dd><a href="performance_testing.html">Performance Testing Rails Applications</a></dd>
|
72
|
+
<dd><a href="configuring.html">Configuring Rails Applications</a></dd>
|
73
|
+
<dd><a href="command_line.html">Rails Command Line Tools and Rake Tasks</a></dd>
|
74
|
+
<dd><a href="caching_with_rails.html">Caching with Rails</a></dd>
|
75
|
+
|
76
|
+
<dt>Extending Rails</dt>
|
77
|
+
<dd><a href="plugins.html">The Basics of Creating Rails Plugins</a></dd>
|
78
|
+
<dd><a href="rails_on_rack.html">Rails on Rack</a></dd>
|
79
|
+
<dd><a href="generators.html">Creating and Customizing Rails Generators</a></dd>
|
80
|
+
|
81
|
+
<dt>Contributing to Ruby on Rails</dt>
|
82
|
+
<dd><a href="contributing_to_ruby_on_rails.html">Contributing to Ruby on Rails</a></dd>
|
83
|
+
<dd><a href="api_documentation_guidelines.html">API Documentation Guidelines</a></dd>
|
84
|
+
<dd><a href="ruby_on_rails_guides_guidelines.html">Ruby on Rails Guides Guidelines</a></dd>
|
85
|
+
|
86
|
+
<dt>Release Notes</dt>
|
87
|
+
<dd><a href="3_0_release_notes.html">Ruby on Rails 3.0 Release Notes</a></dd>
|
88
|
+
<dd><a href="2_3_release_notes.html">Ruby on Rails 2.3 Release Notes</a></dd>
|
89
|
+
<dd><a href="2_2_release_notes.html">Ruby on Rails 2.2 Release Notes</a></dd>
|
90
|
+
</dl>
|
91
|
+
</div>
|
92
|
+
</li>
|
93
|
+
<li><a href="contribute.html">Contribute</a></li>
|
94
|
+
</ul>
|
95
|
+
</div>
|
96
|
+
</div>
|
97
|
+
-->
|
98
|
+
<hr class="hide" />
|
99
|
+
|
100
|
+
<div id="feature">
|
101
|
+
<div class="wrapper">
|
102
|
+
<%= yield :header_section %>
|
103
|
+
|
104
|
+
<%= yield :index_section %>
|
105
|
+
</div>
|
106
|
+
</div>
|
107
|
+
|
108
|
+
<div id="container">
|
109
|
+
<div class="wrapper">
|
110
|
+
<div id="mainCol">
|
111
|
+
<%= yield.html_safe %>
|
112
|
+
|
113
|
+
<h3>Feedback</h3>
|
114
|
+
<p>
|
115
|
+
You're encouraged to help improve the quality of this guide.
|
116
|
+
</p>
|
117
|
+
<p>
|
118
|
+
If you see any typos or factual errors you are confident to
|
119
|
+
patch, please clone <%= link_to 'Jax', 'https://github.com/sinisterchipmunk/jax' %>,
|
120
|
+
correct the issue and send a pull request.
|
121
|
+
Your commits will be reviewed, and then merged into master.
|
122
|
+
</p>
|
123
|
+
<!--
|
124
|
+
<p>
|
125
|
+
You may also find incomplete content, or stuff that is not up to date.
|
126
|
+
Please do add any missing documentation for master. Check the
|
127
|
+
<%= link_to 'Jax Guides Guidelines', 'jax_guides_guidelines.html' %>
|
128
|
+
for style and conventions.
|
129
|
+
</p>
|
130
|
+
-->
|
131
|
+
<p>
|
132
|
+
Also, any kind of discussion regarding Jax documentation is
|
133
|
+
very welcome in the <%= link_to 'forums', 'http://blog.jaxgl.com/forum' %>.
|
134
|
+
</p>
|
135
|
+
</div>
|
136
|
+
</div>
|
137
|
+
</div>
|
138
|
+
|
139
|
+
<hr class="hide" />
|
140
|
+
<div id="footer">
|
141
|
+
<div class="wrapper">
|
142
|
+
<p>This work is licensed under a <a href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-Share Alike 3.0</a> License</p>
|
143
|
+
</div>
|
144
|
+
</div>
|
145
|
+
|
146
|
+
<script type="text/javascript" src="javascripts/guides.js"></script>
|
147
|
+
<script type="text/javascript" src="javascripts/syntaxhighlighter/shCore.js"></script>
|
148
|
+
<script type="text/javascript" src="javascripts/syntaxhighlighter/shBrushRuby.js"></script>
|
149
|
+
<script type="text/javascript" src="javascripts/syntaxhighlighter/shBrushXml.js"></script>
|
150
|
+
<script type="text/javascript" src="javascripts/syntaxhighlighter/shBrushCss.js"></script>
|
151
|
+
<script type="text/javascript" src="javascripts/syntaxhighlighter/shBrushCpp.js"></script>
|
152
|
+
<script type="text/javascript" src="javascripts/syntaxhighlighter/shBrushJScript.js"></script>
|
153
|
+
<script type="text/javascript" src="javascripts/syntaxhighlighter/shBrushPlain.js"></script>
|
154
|
+
<script type="text/javascript">
|
155
|
+
SyntaxHighlighter.all()
|
156
|
+
</script>
|
157
|
+
</body>
|
158
|
+
</html>
|
@@ -0,0 +1,91 @@
|
|
1
|
+
# ---------------------------------------------------------------------------
|
2
|
+
#
|
3
|
+
# This script validates the generated guides against the W3C Validator.
|
4
|
+
#
|
5
|
+
# Guides are taken from the output directory, from where all .html files are
|
6
|
+
# submitted to the validator.
|
7
|
+
#
|
8
|
+
# This script is prepared to be launched from the railties directory as a rake task:
|
9
|
+
#
|
10
|
+
# rake validate_guides
|
11
|
+
#
|
12
|
+
# If nothing is specified, all files will be validated, but you can check just
|
13
|
+
# some of them using this environment variable:
|
14
|
+
#
|
15
|
+
# ONLY
|
16
|
+
# Use ONLY if you want to validate only one or a set of guides. Prefixes are
|
17
|
+
# enough:
|
18
|
+
#
|
19
|
+
# # validates only association_basics.html
|
20
|
+
# ONLY=assoc rake validate_guides
|
21
|
+
#
|
22
|
+
# Separate many using commas:
|
23
|
+
#
|
24
|
+
# # validates only association_basics.html and migrations.html
|
25
|
+
# ONLY=assoc,migrations rake validate_guides
|
26
|
+
#
|
27
|
+
# ---------------------------------------------------------------------------
|
28
|
+
|
29
|
+
require 'rubygems'
|
30
|
+
require 'w3c_validators'
|
31
|
+
include W3CValidators
|
32
|
+
|
33
|
+
module JaxGuides
|
34
|
+
class Validator
|
35
|
+
|
36
|
+
def validate
|
37
|
+
validator = MarkupValidator.new
|
38
|
+
STDOUT.sync = true
|
39
|
+
errors_on_guides = {}
|
40
|
+
|
41
|
+
guides_to_validate.each do |f|
|
42
|
+
results = validator.validate_file(f)
|
43
|
+
|
44
|
+
if results.validity
|
45
|
+
print "."
|
46
|
+
else
|
47
|
+
print "E"
|
48
|
+
errors_on_guides[f] = results.errors
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
show_results(errors_on_guides)
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
def guides_to_validate
|
57
|
+
guides = Dir["./guides/output/*.html"]
|
58
|
+
guides.delete("./guides/output/layout.html")
|
59
|
+
ENV.key?('ONLY') ? select_only(guides) : guides
|
60
|
+
end
|
61
|
+
|
62
|
+
def select_only(guides)
|
63
|
+
prefixes = ENV['ONLY'].split(",").map(&:strip)
|
64
|
+
guides.select do |guide|
|
65
|
+
prefixes.any? {|p| guide.start_with?("./guides/output/#{p}")}
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def show_results(error_list)
|
70
|
+
if error_list.size == 0
|
71
|
+
puts "\n\nAll checked guides validate OK!"
|
72
|
+
else
|
73
|
+
error_summary = error_detail = ""
|
74
|
+
|
75
|
+
error_list.each_pair do |name, errors|
|
76
|
+
error_summary += "\n #{name}"
|
77
|
+
error_detail += "\n\n #{name} has #{errors.size} validation error(s):\n"
|
78
|
+
errors.each do |error|
|
79
|
+
error_detail += "\n "+error.to_s.gsub("\n", "")
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
puts "\n\nThere are #{error_list.size} guides with validation errors:\n" + error_summary
|
84
|
+
puts "\nHere are the detailed errors for each guide:" + error_detail
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
JaxGuides::Validator.new.validate
|
data/jax.gems
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
bundler -v1.0.10
|
data/jax.gemspec
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "jax/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "jax"
|
7
|
+
s.version = Jax::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Colin MacKenzie IV"]
|
10
|
+
s.email = ["sinisterchipmunk@gmail.com"]
|
11
|
+
s.homepage = "http://jaxgl.com"
|
12
|
+
s.summary = %q{Framework for creating rich WebGL-enabled applications using JavaScript and Ruby}
|
13
|
+
s.description = %q{Framework for creating rich WebGL-enabled applications using JavaScript and Ruby}
|
14
|
+
|
15
|
+
s.add_dependency 'bundler', '~> 1.0.10'
|
16
|
+
s.add_dependency "thor", '~> 0.14.6'
|
17
|
+
s.add_dependency 'jasmine', '~> 1.0.2.0'
|
18
|
+
s.add_dependency 'activesupport', '~> 3.0'
|
19
|
+
s.add_dependency "i18n", '~> 0.5.0' # FIXME Jax doesn't really require this but ActiveSupport won't load without it!
|
20
|
+
s.add_dependency 'sprockets', '~> 1.0.2'
|
21
|
+
|
22
|
+
s.add_development_dependency 'rspec', '~> 2.0'
|
23
|
+
s.add_development_dependency 'coderay', '~> 0.9.7'
|
24
|
+
|
25
|
+
# required by guides
|
26
|
+
s.add_development_dependency 'actionpack', '~> 3.0'
|
27
|
+
s.add_development_dependency 'RedCloth', '~> 4.2'
|
28
|
+
s.add_development_dependency 'w3c_validators', '~> 1.1.1'
|
29
|
+
|
30
|
+
# required by pdoc
|
31
|
+
s.add_development_dependency 'treetop', '~> 1.4.9'
|
32
|
+
s.add_development_dependency 'bluecloth', '~> 2.0.11'
|
33
|
+
|
34
|
+
s.rubyforge_project = "jax"
|
35
|
+
|
36
|
+
s.files = `git ls-files`.split("\n")
|
37
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
38
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
39
|
+
s.require_paths = ["lib"]
|
40
|
+
end
|
data/lib/jax.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
module Jax
|
2
|
+
autoload :Generators, File.join(File.dirname(__FILE__), "jax/generators/commands")
|
3
|
+
autoload :VERSION, File.join(File.dirname(__FILE__), "jax/version")
|
4
|
+
autoload :Version, File.join(File.dirname(__FILE__), "jax/version")
|
5
|
+
autoload :Application, File.join(File.dirname(__FILE__), "jax/application")
|
6
|
+
autoload :Packager, File.join(File.dirname(__FILE__), "jax/packager")
|
7
|
+
autoload :ResourceCompiler, File.join(File.dirname(__FILE__), "jax/resource_compiler")
|
8
|
+
autoload :Routes, File.join(File.dirname(__FILE__), "jax/routes")
|
9
|
+
autoload :Shader, File.join(File.dirname(__FILE__), "jax/shader")
|
10
|
+
|
11
|
+
class << self
|
12
|
+
def application
|
13
|
+
@application ||= nil
|
14
|
+
end
|
15
|
+
|
16
|
+
def application=(application)
|
17
|
+
@application = application
|
18
|
+
end
|
19
|
+
|
20
|
+
def root
|
21
|
+
application && application.root
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
if defined?(APP_PATH) && Jax.application.nil?
|
27
|
+
require APP_PATH
|
28
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
require "active_support/core_ext"
|
2
|
+
|
3
|
+
module Jax
|
4
|
+
class Application
|
5
|
+
autoload :Configuration, "jax/application/configuration"
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def inherited(base)
|
9
|
+
raise "You cannot have more than one Jax::Application" if Jax.application
|
10
|
+
super
|
11
|
+
|
12
|
+
base.called_from = begin
|
13
|
+
# Remove the line number from backtraces making sure we don't leave anything behind
|
14
|
+
call_stack = caller.map { |p| p.sub(/:\d+.*/, '') }
|
15
|
+
File.dirname(call_stack.detect { |p| p !~ %r[jax[\w.-]*/lib/jax] })
|
16
|
+
end
|
17
|
+
|
18
|
+
Jax.application = base.instance
|
19
|
+
Jax.application.config.root ||= Jax.application.find_root_with_flag("app")
|
20
|
+
end
|
21
|
+
|
22
|
+
def config
|
23
|
+
@config ||= Jax::Application::Configuration.new
|
24
|
+
end
|
25
|
+
|
26
|
+
def instance
|
27
|
+
@instance ||= new
|
28
|
+
end
|
29
|
+
|
30
|
+
def called_from
|
31
|
+
@called_from ||= nil
|
32
|
+
end
|
33
|
+
|
34
|
+
def called_from=(where)
|
35
|
+
@called_from = where
|
36
|
+
end
|
37
|
+
|
38
|
+
def routes
|
39
|
+
Jax.application.config.routes
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
delegate :config, :to => "self.class"
|
44
|
+
delegate :root, :to => :config
|
45
|
+
delegate :routes, :to => :config
|
46
|
+
|
47
|
+
def shaders
|
48
|
+
# @shaders ||= begin
|
49
|
+
shaders = []
|
50
|
+
|
51
|
+
shader_paths.each do |name, path|
|
52
|
+
shaders << Jax::Shader.from(path)
|
53
|
+
end
|
54
|
+
|
55
|
+
def shaders.find(name)
|
56
|
+
select { |s| s.name == name }.first
|
57
|
+
end
|
58
|
+
|
59
|
+
shaders
|
60
|
+
# end
|
61
|
+
end
|
62
|
+
|
63
|
+
def shader_paths
|
64
|
+
shader_paths = {}
|
65
|
+
config.shader_load_paths.each do |path|
|
66
|
+
full_path = File.directory?(path) ? path : File.expand_path(path, config.root)
|
67
|
+
glob = File.join(full_path, "*/{fragment,vertex}.ejs")
|
68
|
+
Dir[glob].each do |dir|
|
69
|
+
shader_base = File.dirname(dir)
|
70
|
+
shader_name = File.basename(shader_base)
|
71
|
+
shader_paths[shader_name] = shader_base
|
72
|
+
end
|
73
|
+
end
|
74
|
+
shader_paths
|
75
|
+
end
|
76
|
+
|
77
|
+
def find_root_with_flag(flag, default=nil)
|
78
|
+
root_path = self.class.called_from
|
79
|
+
|
80
|
+
while root_path && File.directory?(root_path) && !File.exist?("#{root_path}/#{flag}")
|
81
|
+
parent = File.dirname(root_path)
|
82
|
+
root_path = parent != root_path && parent
|
83
|
+
end
|
84
|
+
|
85
|
+
root = File.exist?("#{root_path}/#{flag}") ? root_path : default
|
86
|
+
raise "Could not find root path for #{self}" unless root
|
87
|
+
|
88
|
+
RbConfig::CONFIG['host_os'] =~ /mswin|mingw/ ?
|
89
|
+
Pathname.new(root).expand_path : Pathname.new(root).realpath
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|