jax 2.0.7 → 2.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +6 -3
- data/CHANGELOG +6 -0
- data/Gemfile +4 -0
- data/Rakefile +2 -11
- data/features/rails/specs.feature +9 -0
- data/features/support/env.rb +1 -1
- data/jax.gemspec +14 -14
- data/lib/assets/javascripts/jax/anim_frame.js.coffee +20 -0
- data/lib/assets/javascripts/jax/context.js +8 -3
- data/lib/assets/javascripts/jax/webgl/texture.js +4 -1
- data/lib/generators/jax/shader/shader_generator.rb +4 -0
- data/lib/jax/engine.rb +6 -1
- data/lib/jax/script_loader.rb +1 -1
- data/lib/jax/testing/rails_environment.rb +1 -1
- data/lib/jax/version.rb +1 -1
- data/spec/bin/jax_spec.rb +13 -0
- data/spec/generators/jax/shader_generator_spec.rb +13 -0
- data/spec/javascripts/jax/context_spec.js +1 -0
- data/spec/javascripts/jax/webgl/texture_spec.js +5 -1
- data/spec/lib/jax/shader_spec.rb +22 -0
- data/spec/spec_helper.rb +3 -2
- metadata +59 -59
- data/lib/assets/javascripts/jax/anim_frame.js +0 -64
data/.travis.yml
CHANGED
data/CHANGELOG
CHANGED
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -8,15 +8,6 @@ rescue LoadError
|
|
8
8
|
puts
|
9
9
|
puts " gem install bundler"
|
10
10
|
exit
|
11
|
-
rescue Bundler::GemNotFound
|
12
|
-
# this runs recursively forever under jruby, so special case failure for that.
|
13
|
-
if ENV['NO_MORE_ATTEMPTS'] || RUBY_PLATFORM == "java"
|
14
|
-
raise
|
15
|
-
else
|
16
|
-
ENV['NO_MORE_ATTEMPTS'] = '1'
|
17
|
-
system("bundle", "install")
|
18
|
-
exec("bundle", "exec", "rake", *ARGV)
|
19
|
-
end
|
20
11
|
end
|
21
12
|
|
22
13
|
require 'cucumber/rake/task'
|
@@ -109,7 +100,7 @@ namespace :doc do
|
|
109
100
|
|
110
101
|
errors = false
|
111
102
|
|
112
|
-
Dir[File.expand_path("src/**/*.js", File.dirname(__FILE__))].each do |fi|
|
103
|
+
Dir[File.expand_path("src/**/*.js*", File.dirname(__FILE__))].each do |fi|
|
113
104
|
next unless File.file?(fi)
|
114
105
|
lfi = fi.sub(/^#{Regexp::escape File.expand_path("src/", File.dirname(__FILE__))}\/?/, '')
|
115
106
|
candidates.each do |candidate|
|
@@ -166,7 +157,7 @@ namespace :doc do
|
|
166
157
|
PDoc.run({
|
167
158
|
:source_files => (['lib/assets/javascripts/jax.js', 'vendor/assets/javascripts/gl-matrix-pdoc.js'] +
|
168
159
|
# Dir['vendor/ejs/src/**/*.js'] +
|
169
|
-
Dir['lib/assets/javascripts/jax/**/*.{js,js.erb}']),
|
160
|
+
Dir['lib/assets/javascripts/{jax,doc}/**/*.{js,js.erb,js.coffee,js.coffee.erb}']),
|
170
161
|
:destination => "doc",
|
171
162
|
# :index_page => 'src/README.markdown',
|
172
163
|
:syntax_highlighter => 'coderay',
|
@@ -22,3 +22,12 @@ Feature: Rails Specs
|
|
22
22
|
Given file "spec/javascripts/script_spec.js.coffee" contains "2"
|
23
23
|
When I visit "/jasmine"
|
24
24
|
Then I should see a "script" element with attribute "src" equal to "/spec/script_spec.js"
|
25
|
+
|
26
|
+
@allow-rescue
|
27
|
+
Scenario: CS spec failing to compile
|
28
|
+
Given file "spec/javascripts/script_spec.js.coffee" contains "this is invalid!"
|
29
|
+
When I visit "/spec/script_spec.js"
|
30
|
+
Then I should see "Error"
|
31
|
+
|
32
|
+
When I visit "/spec/script_spec.js"
|
33
|
+
Then I should not see "has already been required"
|
data/features/support/env.rb
CHANGED
data/jax.gemspec
CHANGED
@@ -16,22 +16,22 @@ Gem::Specification.new do |s|
|
|
16
16
|
seamlessly with Ruby on Rails to build dynamic WebGL applications.
|
17
17
|
}
|
18
18
|
|
19
|
-
s.add_dependency 'rails', '~> 3
|
20
|
-
s.add_dependency 'jquery-rails', '
|
21
|
-
s.add_dependency 'jasmine', '~> 1
|
22
|
-
s.add_dependency 'rest-client', '~> 1
|
19
|
+
s.add_dependency 'rails', '~> 3'
|
20
|
+
s.add_dependency 'jquery-rails', '>= 1'
|
21
|
+
s.add_dependency 'jasmine', '~> 1'
|
22
|
+
s.add_dependency 'rest-client', '~> 1'
|
23
23
|
|
24
|
-
s.add_development_dependency 'rspec', '~> 2
|
25
|
-
s.add_development_dependency 'coffee-rails', '~> 3
|
26
|
-
s.add_development_dependency 'coderay', '~>
|
27
|
-
s.add_development_dependency 'sqlite3', '~> 1
|
28
|
-
s.add_development_dependency 'sass-rails', '~> 3
|
29
|
-
s.add_development_dependency 'uglifier', '~> 1
|
30
|
-
s.add_development_dependency 'genspec'
|
31
|
-
s.add_development_dependency 'selenium-webdriver', '~> 2
|
32
|
-
s.add_development_dependency 'fakeweb', '~> 1.3
|
24
|
+
s.add_development_dependency 'rspec', '~> 2'
|
25
|
+
s.add_development_dependency 'coffee-rails', '~> 3'
|
26
|
+
s.add_development_dependency 'coderay', '~> 1'
|
27
|
+
s.add_development_dependency 'sqlite3', '~> 1'
|
28
|
+
s.add_development_dependency 'sass-rails', '~> 3'
|
29
|
+
s.add_development_dependency 'uglifier', '~> 1'
|
30
|
+
s.add_development_dependency 'genspec'
|
31
|
+
s.add_development_dependency 'selenium-webdriver', '~> 2'
|
32
|
+
s.add_development_dependency 'fakeweb', '~> 1.3'
|
33
33
|
s.add_development_dependency 'ansi'
|
34
|
-
s.add_development_dependency 'cucumber-rails', '~> 1
|
34
|
+
s.add_development_dependency 'cucumber-rails', '~> 1'
|
35
35
|
|
36
36
|
# required by guides
|
37
37
|
s.add_development_dependency 'RedCloth', '~> 4.2'
|
@@ -0,0 +1,20 @@
|
|
1
|
+
lastTime = 0
|
2
|
+
vendors = ['ms', 'moz', 'webkit', 'o']
|
3
|
+
|
4
|
+
@cancelAnimationFrame or= @cancelRequestAnimationFrame
|
5
|
+
|
6
|
+
unless @requestAnimationFrame
|
7
|
+
for vendor in vendors
|
8
|
+
@requestAnimationFrame or= @[vendor+'RequestAnimationFrame']
|
9
|
+
@cancelAnimationFrame = @cancelRequestAnimationFrame or= @[vendor+'CancelRequestAnimationFrame']
|
10
|
+
|
11
|
+
unless @requestAnimationFrame
|
12
|
+
@requestAnimationFrame = (callback, element) ->
|
13
|
+
currTime = new Date().getTime()
|
14
|
+
timeToCall = Math.max 0, 16 - (currTime - lastTime)
|
15
|
+
id = @setTimeout (-> callback currTime + timeToCall), timeToCall
|
16
|
+
lastTime = currTime + timeToCall
|
17
|
+
id
|
18
|
+
|
19
|
+
unless @cancelAnimationFrame
|
20
|
+
@cancelAnimationFrame = @cancelRequestAnimationFrame = (id) -> clearTimeout id
|
@@ -177,7 +177,8 @@ Jax.Context = (function() {
|
|
177
177
|
function startRendering(self) {
|
178
178
|
if (self.isRendering()) return;
|
179
179
|
|
180
|
-
function render() {
|
180
|
+
function render(currentTime) {
|
181
|
+
Jax.uptime = currentTime;
|
181
182
|
try {
|
182
183
|
if (self.isDisposed()) return;
|
183
184
|
if (self.calculateFramerate) updateFramerate(self);
|
@@ -187,7 +188,9 @@ Jax.Context = (function() {
|
|
187
188
|
self.current_view.render();
|
188
189
|
var len = self.afterRenderFuncs.length;
|
189
190
|
for (var i = 0; i < len; i++) self.afterRenderFuncs[i].call(self);
|
190
|
-
self.render_interval =
|
191
|
+
self.render_interval = requestAnimationFrame(render, self.canvas);
|
192
|
+
// firefox compatibility
|
193
|
+
if (self.render_interval == null) self.render_interval = 1;
|
191
194
|
}
|
192
195
|
else {
|
193
196
|
self.stopRendering();
|
@@ -197,7 +200,9 @@ Jax.Context = (function() {
|
|
197
200
|
}
|
198
201
|
}
|
199
202
|
|
200
|
-
self.render_interval =
|
203
|
+
self.render_interval = requestAnimationFrame(render, Jax.render_speed);
|
204
|
+
// firefox compatibility
|
205
|
+
if (self.render_interval == null) self.render_interval = 1;
|
201
206
|
}
|
202
207
|
|
203
208
|
function startUpdating(self) {
|
@@ -193,7 +193,7 @@ Jax.Texture = (function() {
|
|
193
193
|
generate_mipmap: true,
|
194
194
|
mipmap_hint: GL_DONT_CARE,
|
195
195
|
format: GL_RGBA,
|
196
|
-
target:
|
196
|
+
target: null,
|
197
197
|
data_type: GL_UNSIGNED_BYTE,
|
198
198
|
wrap_s: GL_REPEAT,
|
199
199
|
wrap_t: GL_REPEAT,
|
@@ -212,12 +212,14 @@ Jax.Texture = (function() {
|
|
212
212
|
|
213
213
|
if (path_or_array) {
|
214
214
|
if (typeof(path_or_array) == "string") {
|
215
|
+
this.options.target = this.options.target || GL_TEXTURE_2D;
|
215
216
|
this.image = new Image();
|
216
217
|
this.image.onload = function() { imageLoaded(self, false, this); };
|
217
218
|
this.image.onerror = this.image.onabort = function() { imageFailed(self, this); };
|
218
219
|
this.image.src = path_or_array;
|
219
220
|
} else {
|
220
221
|
var onload = function() { imageLoaded(self, true, this); };
|
222
|
+
this.options.target = this.options.target || GL_TEXTURE_CUBE_MAP;
|
221
223
|
this.images = [];
|
222
224
|
this.images.load_count = 0;
|
223
225
|
for (i = 0; i < path_or_array.length; i++) {
|
@@ -230,6 +232,7 @@ Jax.Texture = (function() {
|
|
230
232
|
}
|
231
233
|
else {
|
232
234
|
// nothing to load
|
235
|
+
this.options.target = this.options.target || GL_TEXTURE_2D;
|
233
236
|
this.options.generate_mipmap = !!(options && options.generate_mipmap);
|
234
237
|
this.loaded = true;
|
235
238
|
}
|
@@ -4,6 +4,10 @@ require 'rails/generators/rails/model/model_generator'
|
|
4
4
|
module Jax
|
5
5
|
module Generators
|
6
6
|
class ShaderGenerator < Jax::Generators::NamedBase
|
7
|
+
def create_shader_path
|
8
|
+
empty_directory File.join("app/assets/jax/shaders", file_name)
|
9
|
+
end
|
10
|
+
|
7
11
|
def create_common_shader_file
|
8
12
|
template "shader_common.glsl.erb",
|
9
13
|
File.join('app/assets/jax/shaders', file_name, "common.glsl")
|
data/lib/jax/engine.rb
CHANGED
@@ -1,4 +1,9 @@
|
|
1
|
-
require 'rails
|
1
|
+
require 'rails'
|
2
|
+
|
3
|
+
# this appears to be necessary for rbx, jruby, ruby1.8 -- but it may be a bug in rails
|
4
|
+
# so possibly could be removed in later versions.
|
5
|
+
# Symptom: undefined method `singleton_class' for Jax:Module
|
6
|
+
require 'active_support/core_ext'
|
2
7
|
|
3
8
|
module Jax
|
4
9
|
class Engine < ::Rails::Engine
|
data/lib/jax/script_loader.rb
CHANGED
data/lib/jax/version.rb
CHANGED
data/spec/bin/jax_spec.rb
CHANGED
@@ -84,6 +84,19 @@ describe 'bin/jax' do
|
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
|
+
describe "in a spaced jax app" do
|
88
|
+
let(:shell) { GenSpec::Shell.new }
|
89
|
+
|
90
|
+
before do
|
91
|
+
Jax::Generators::ApplicationGenerator.start ["spaced app", "--skip-bundle"], :shell => shell
|
92
|
+
FileUtils.chdir "spaced app"
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should not fail to generate" do
|
96
|
+
proc { subject }.should_not raise_error
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
87
100
|
describe "in a jax application" do
|
88
101
|
before(:each) do
|
89
102
|
Jax::Generators::ApplicationGenerator.start ["test_app", "--skip-bundle"], :shell => GenSpec::Shell.new
|
@@ -2,6 +2,19 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'jax:shader' do
|
4
4
|
with_args "clouds" do
|
5
|
+
describe "when destroyed" do
|
6
|
+
with_generator_options :behavior => :revoke do
|
7
|
+
within_source_root do
|
8
|
+
FileUtils.mkdir_p "app/assets/jax/shaders/clouds"
|
9
|
+
FileUtils.touch "app/assets/jax/shaders/clouds/manifest.js"
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should delete shader directory" do
|
13
|
+
subject.should delete("app/assets/jax/shaders/clouds")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
5
18
|
it "should generate manifest file" do
|
6
19
|
subject.should generate("app/assets/jax/shaders/clouds/manifest.yml")
|
7
20
|
end
|
@@ -279,6 +279,7 @@ describe("Jax.Context", function() {
|
|
279
279
|
// silence error. this prevents console.log() and alert() from firing.
|
280
280
|
error.silence = true;
|
281
281
|
fired = true;
|
282
|
+
if (error.phase != 'update') alert(error);
|
282
283
|
expect(error.phase).toEqual('update');
|
283
284
|
});
|
284
285
|
|
@@ -78,7 +78,11 @@ describe("Texture", function() {
|
|
78
78
|
});
|
79
79
|
|
80
80
|
describe("with 6 POT textures", function() {
|
81
|
-
beforeEach(function() { tex = new Jax.Texture([_img,_img,_img,_img,_img,_img]
|
81
|
+
beforeEach(function() { tex = new Jax.Texture([_img,_img,_img,_img,_img,_img]); });
|
82
|
+
|
83
|
+
it("should set default target appropriately", function() {
|
84
|
+
expect(tex.options.target).toEqual(GL_TEXTURE_CUBE_MAP);
|
85
|
+
});
|
82
86
|
|
83
87
|
_it("should bind successfully", function() {
|
84
88
|
expect(function() { tex.bind(SPEC_CONTEXT); }).not.toThrow();
|
data/spec/lib/jax/shader_spec.rb
CHANGED
@@ -9,6 +9,28 @@ require 'spec_helper'
|
|
9
9
|
describe Jax::Shader do
|
10
10
|
# include MockAssets
|
11
11
|
|
12
|
+
context "directory but shader files missing" do
|
13
|
+
before do
|
14
|
+
create_directory 'app/assets/jax/shaders/my_shader'
|
15
|
+
create_shader 'another_shader', :fragment => '1'
|
16
|
+
create_asset 'all_shaders.js', '//= require_everything_matching "shaders"'
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should not produce a shader at all" do
|
20
|
+
proc { asset('shaders/my_shader/fragment.glsl') }.should raise_error(/asset not found/)
|
21
|
+
proc { asset('shaders/my_shader/vertex.glsl') }.should raise_error(/asset not found/)
|
22
|
+
proc { asset('shaders/my_shader/manifest.js') }.should raise_error(/asset not found/)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should not build the shader at all" do
|
26
|
+
appjs = asset('all_shaders.js')
|
27
|
+
|
28
|
+
appjs.should =~ /another_shader/ # sanity check
|
29
|
+
appjs.should_not =~ /my_shader/
|
30
|
+
appjs.should_not =~ /MyShader/
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
12
34
|
context "exports" do
|
13
35
|
context "with implicit value" do
|
14
36
|
before :each do
|
data/spec/spec_helper.rb
CHANGED
@@ -14,7 +14,7 @@ Dir[File.expand_path("support/**/*.rb", File.dirname(__FILE__))].each { |fi| req
|
|
14
14
|
require 'jax/rails/application'
|
15
15
|
Jax::Rails::Application.config.assets.digest = false
|
16
16
|
# IMPORTANT: it is necessary to set this _prior_ to app initialization in order to pick up asset dirs
|
17
|
-
::Rails.application.config.root = File.expand_path("
|
17
|
+
::Rails.application.config.root = File.expand_path("../tmp/rails-specs", File.dirname(__FILE__))
|
18
18
|
Jax::Rails::Application.initialize!
|
19
19
|
|
20
20
|
# see support/test_model_generator.rb
|
@@ -54,11 +54,12 @@ FakeWeb.register_uri(:post, "http://plugins.jaxgl.com/plugins", :response => fix
|
|
54
54
|
|
55
55
|
RSpec.configure do |c|
|
56
56
|
c.include Jax::Testing::RailsEnvironment
|
57
|
-
c.include Rack::Test::Methods
|
57
|
+
c.include Rack::Test::Methods, :example_group => { :file_path => Regexp.compile(/jax[\\\/]rails/) }
|
58
58
|
c.include FixturesHelper
|
59
59
|
|
60
60
|
c.before(:each) do
|
61
61
|
FileUtils.rm_rf File.expand_path("../tmp/cache", File.dirname(__FILE__))
|
62
|
+
FileUtils.rm_rf Rails.root.join('tmp/cache')
|
62
63
|
setup_rails_environment
|
63
64
|
end
|
64
65
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jax
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,154 +9,154 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-04-29 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &2160774320 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 3
|
21
|
+
version: '3'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2160774320
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: jquery-rails
|
27
|
-
requirement: &
|
27
|
+
requirement: &2160773480 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
|
-
- -
|
30
|
+
- - ! '>='
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1
|
32
|
+
version: '1'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2160773480
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: jasmine
|
38
|
-
requirement: &
|
38
|
+
requirement: &2160772640 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 1
|
43
|
+
version: '1'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2160772640
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rest-client
|
49
|
-
requirement: &
|
49
|
+
requirement: &2160771880 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1
|
54
|
+
version: '1'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2160771880
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rspec
|
60
|
-
requirement: &
|
60
|
+
requirement: &2160770860 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
64
64
|
- !ruby/object:Gem::Version
|
65
|
-
version: 2
|
65
|
+
version: '2'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2160770860
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: coffee-rails
|
71
|
-
requirement: &
|
71
|
+
requirement: &2160769880 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: 3
|
76
|
+
version: '3'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2160769880
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: coderay
|
82
|
-
requirement: &
|
82
|
+
requirement: &2160769080 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
86
86
|
- !ruby/object:Gem::Version
|
87
|
-
version:
|
87
|
+
version: '1'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2160769080
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: sqlite3
|
93
|
-
requirement: &
|
93
|
+
requirement: &2160768260 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ~>
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
version: 1
|
98
|
+
version: '1'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *2160768260
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: sass-rails
|
104
|
-
requirement: &
|
104
|
+
requirement: &2160767460 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ~>
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: 3
|
109
|
+
version: '3'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *2160767460
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: uglifier
|
115
|
-
requirement: &
|
115
|
+
requirement: &2160766660 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ~>
|
119
119
|
- !ruby/object:Gem::Version
|
120
|
-
version: 1
|
120
|
+
version: '1'
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *2160766660
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: genspec
|
126
|
-
requirement: &
|
126
|
+
requirement: &2160765580 !ruby/object:Gem::Requirement
|
127
127
|
none: false
|
128
128
|
requirements:
|
129
|
-
- -
|
129
|
+
- - ! '>='
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0
|
131
|
+
version: '0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
|
-
version_requirements: *
|
134
|
+
version_requirements: *2160765580
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: selenium-webdriver
|
137
|
-
requirement: &
|
137
|
+
requirement: &2160764460 !ruby/object:Gem::Requirement
|
138
138
|
none: false
|
139
139
|
requirements:
|
140
140
|
- - ~>
|
141
141
|
- !ruby/object:Gem::Version
|
142
|
-
version: 2
|
142
|
+
version: '2'
|
143
143
|
type: :development
|
144
144
|
prerelease: false
|
145
|
-
version_requirements: *
|
145
|
+
version_requirements: *2160764460
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: fakeweb
|
148
|
-
requirement: &
|
148
|
+
requirement: &2160763400 !ruby/object:Gem::Requirement
|
149
149
|
none: false
|
150
150
|
requirements:
|
151
151
|
- - ~>
|
152
152
|
- !ruby/object:Gem::Version
|
153
|
-
version: 1.3
|
153
|
+
version: '1.3'
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
|
-
version_requirements: *
|
156
|
+
version_requirements: *2160763400
|
157
157
|
- !ruby/object:Gem::Dependency
|
158
158
|
name: ansi
|
159
|
-
requirement: &
|
159
|
+
requirement: &2160762780 !ruby/object:Gem::Requirement
|
160
160
|
none: false
|
161
161
|
requirements:
|
162
162
|
- - ! '>='
|
@@ -164,21 +164,21 @@ dependencies:
|
|
164
164
|
version: '0'
|
165
165
|
type: :development
|
166
166
|
prerelease: false
|
167
|
-
version_requirements: *
|
167
|
+
version_requirements: *2160762780
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
169
|
name: cucumber-rails
|
170
|
-
requirement: &
|
170
|
+
requirement: &2160761760 !ruby/object:Gem::Requirement
|
171
171
|
none: false
|
172
172
|
requirements:
|
173
173
|
- - ~>
|
174
174
|
- !ruby/object:Gem::Version
|
175
|
-
version: 1
|
175
|
+
version: '1'
|
176
176
|
type: :development
|
177
177
|
prerelease: false
|
178
|
-
version_requirements: *
|
178
|
+
version_requirements: *2160761760
|
179
179
|
- !ruby/object:Gem::Dependency
|
180
180
|
name: RedCloth
|
181
|
-
requirement: &
|
181
|
+
requirement: &2160760580 !ruby/object:Gem::Requirement
|
182
182
|
none: false
|
183
183
|
requirements:
|
184
184
|
- - ~>
|
@@ -186,10 +186,10 @@ dependencies:
|
|
186
186
|
version: '4.2'
|
187
187
|
type: :development
|
188
188
|
prerelease: false
|
189
|
-
version_requirements: *
|
189
|
+
version_requirements: *2160760580
|
190
190
|
- !ruby/object:Gem::Dependency
|
191
191
|
name: w3c_validators
|
192
|
-
requirement: &
|
192
|
+
requirement: &2160759660 !ruby/object:Gem::Requirement
|
193
193
|
none: false
|
194
194
|
requirements:
|
195
195
|
- - ~>
|
@@ -197,10 +197,10 @@ dependencies:
|
|
197
197
|
version: '1.2'
|
198
198
|
type: :development
|
199
199
|
prerelease: false
|
200
|
-
version_requirements: *
|
200
|
+
version_requirements: *2160759660
|
201
201
|
- !ruby/object:Gem::Dependency
|
202
202
|
name: treetop
|
203
|
-
requirement: &
|
203
|
+
requirement: &2160758760 !ruby/object:Gem::Requirement
|
204
204
|
none: false
|
205
205
|
requirements:
|
206
206
|
- - ~>
|
@@ -208,10 +208,10 @@ dependencies:
|
|
208
208
|
version: 1.4.9
|
209
209
|
type: :development
|
210
210
|
prerelease: false
|
211
|
-
version_requirements: *
|
211
|
+
version_requirements: *2160758760
|
212
212
|
- !ruby/object:Gem::Dependency
|
213
213
|
name: bluecloth
|
214
|
-
requirement: &
|
214
|
+
requirement: &2160757900 !ruby/object:Gem::Requirement
|
215
215
|
none: false
|
216
216
|
requirements:
|
217
217
|
- - ~>
|
@@ -219,7 +219,7 @@ dependencies:
|
|
219
219
|
version: 2.0.11
|
220
220
|
type: :development
|
221
221
|
prerelease: false
|
222
|
-
version_requirements: *
|
222
|
+
version_requirements: *2160757900
|
223
223
|
description: ! "\n Framework for creating rich WebGL-enabled applications using
|
224
224
|
JavaScript and Ruby.\n Can be used stand-alone to create static JavaScript documents,
|
225
225
|
or integrated\n seamlessly with Ruby on Rails to build dynamic WebGL applications.\n
|
@@ -276,7 +276,7 @@ files:
|
|
276
276
|
- features/support/setup.rb
|
277
277
|
- jax.gemspec
|
278
278
|
- lib/assets/javascripts/jax.js
|
279
|
-
- lib/assets/javascripts/jax/anim_frame.js
|
279
|
+
- lib/assets/javascripts/jax/anim_frame.js.coffee
|
280
280
|
- lib/assets/javascripts/jax/application.js
|
281
281
|
- lib/assets/javascripts/jax/builtin/all.js
|
282
282
|
- lib/assets/javascripts/jax/builtin/meshes/cube.js
|
@@ -648,7 +648,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
648
648
|
version: '0'
|
649
649
|
segments:
|
650
650
|
- 0
|
651
|
-
hash: -
|
651
|
+
hash: -3461560233530444624
|
652
652
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
653
653
|
none: false
|
654
654
|
requirements:
|
@@ -657,7 +657,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
657
657
|
version: '0'
|
658
658
|
segments:
|
659
659
|
- 0
|
660
|
-
hash: -
|
660
|
+
hash: -3461560233530444624
|
661
661
|
requirements: []
|
662
662
|
rubyforge_project: jax
|
663
663
|
rubygems_version: 1.8.10
|
@@ -1,64 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Copyright 2010, Google Inc.
|
3
|
-
* All rights reserved.
|
4
|
-
*
|
5
|
-
* Redistribution and use in source and binary forms, with or without
|
6
|
-
* modification, are permitted provided that the following conditions are
|
7
|
-
* met:
|
8
|
-
*
|
9
|
-
* * Redistributions of source code must retain the above copyright
|
10
|
-
* notice, this list of conditions and the following disclaimer.
|
11
|
-
* * Redistributions in binary form must reproduce the above
|
12
|
-
* copyright notice, this list of conditions and the following disclaimer
|
13
|
-
* in the documentation and/or other materials provided with the
|
14
|
-
* distribution.
|
15
|
-
* * Neither the name of Google Inc. nor the names of its
|
16
|
-
* contributors may be used to endorse or promote products derived from
|
17
|
-
* this software without specific prior written permission.
|
18
|
-
*
|
19
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
20
|
-
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
21
|
-
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
22
|
-
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
23
|
-
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
24
|
-
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
25
|
-
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
26
|
-
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
27
|
-
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
28
|
-
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
29
|
-
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
-
*/
|
31
|
-
|
32
|
-
|
33
|
-
/**
|
34
|
-
* Global#requestAnimFrame(callback, element) -> undefined
|
35
|
-
* - callback (Function): callback to be fired to initiate a render sequence
|
36
|
-
* - element (DOMElement): a DOM element to attach the animation state to
|
37
|
-
*
|
38
|
-
* Provides requestAnimationFrame in a cross browser way.
|
39
|
-
**/
|
40
|
-
if (typeof(window) == "undefined") {
|
41
|
-
global.requestAnimFrame = (function() {
|
42
|
-
return global.requestAnimationFrame ||
|
43
|
-
global.webkitRequestAnimationFrame ||
|
44
|
-
global.mozRequestAnimationFrame ||
|
45
|
-
global.oRequestAnimationFrame ||
|
46
|
-
global.msRequestAnimationFrame ||
|
47
|
-
function(/* function FrameRequestCallback */ callback, /* DOMElement Element */ element) {
|
48
|
-
setTimeout(callback, 1000/60);
|
49
|
-
};
|
50
|
-
})();
|
51
|
-
}
|
52
|
-
else {
|
53
|
-
window.requestAnimFrame = (function() {
|
54
|
-
return window.requestAnimationFrame ||
|
55
|
-
window.webkitRequestAnimationFrame ||
|
56
|
-
window.mozRequestAnimationFrame ||
|
57
|
-
window.oRequestAnimationFrame ||
|
58
|
-
window.msRequestAnimationFrame ||
|
59
|
-
function(/* function FrameRequestCallback */ callback, /* DOMElement Element */ element) {
|
60
|
-
setTimeout(callback, 1000/60);
|
61
|
-
};
|
62
|
-
})();
|
63
|
-
}
|
64
|
-
|