jax 2.0.7 → 2.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
-
|