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 CHANGED
@@ -6,10 +6,13 @@ rvm:
6
6
  - 1.8.7
7
7
  - 1.9.2
8
8
  - 1.9.3
9
- - ree
10
- # - jruby
11
9
  - ruby-head
12
- - rbx-2.0
10
+ - ree
11
+ - jruby-18mode
12
+ - jruby-19mode
13
+ - jruby-head
14
+ - rbx-18mode
15
+ - rbx-19mode
13
16
 
14
17
 
15
18
  # before_script:
data/CHANGELOG CHANGED
@@ -1,3 +1,9 @@
1
+ * 2.0.8 *
2
+
3
+ * Resolved issue #55: bin/jax should not fail within spaced paths
4
+
5
+
6
+
1
7
  * 2.0.7 *
2
8
 
3
9
  * Resolved issue #48: Unable to reliably pick any object not explicitly added to World
data/Gemfile CHANGED
@@ -2,3 +2,7 @@ source "http://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in jax.gemspec
4
4
  gemspec
5
+
6
+ platforms :jruby do
7
+ gem 'jruby-openssl'
8
+ end
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"
@@ -27,7 +27,7 @@ require 'cucumber/rails/world'
27
27
  require 'cucumber/rails/hooks'
28
28
  require 'cucumber/rails/capybara'
29
29
 
30
- require 'cucumber/web/tableish'
30
+ #require 'cucumber/web/tableish'
31
31
 
32
32
  World(Jax::Engine.routes.url_helpers)
33
33
 
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.1.0'
20
- s.add_dependency 'jquery-rails', '~> 1.0.13'
21
- s.add_dependency 'jasmine', '~> 1.0.2.0'
22
- s.add_dependency 'rest-client', '~> 1.6.3'
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.6.0'
25
- s.add_development_dependency 'coffee-rails', '~> 3.1.0'
26
- s.add_development_dependency 'coderay', '~> 0.9.7'
27
- s.add_development_dependency 'sqlite3', '~> 1.3.4'
28
- s.add_development_dependency 'sass-rails', '~> 3.1.0'
29
- s.add_development_dependency 'uglifier', '~> 1.0.2'
30
- s.add_development_dependency 'genspec', '~> 0.2.3'
31
- s.add_development_dependency 'selenium-webdriver', '~> 2.9.1'
32
- s.add_development_dependency 'fakeweb', '~> 1.3.0'
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.0.2'
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 = requestAnimFrame(render, self.canvas);
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 = setTimeout(render, Jax.render_speed);
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: GL_TEXTURE_2D,
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/engine'
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
@@ -61,7 +61,7 @@ module Jax
61
61
 
62
62
  def ruby(*args)
63
63
  ruby = File.join(*RbConfig::CONFIG.values_at("bindir", "ruby_install_name")) + RbConfig::CONFIG["EXEEXT"]
64
- exec [ ruby, *args ].join(" ")
64
+ exec *[ ruby, *args ]
65
65
  end
66
66
  end
67
67
  end
@@ -70,7 +70,7 @@ module Jax
70
70
  def asset(path)
71
71
  asset = assets.find_asset(path)
72
72
  raise "asset not found: #{path} in #{@asset_dir}" unless asset
73
- asset.body
73
+ asset.to_s
74
74
  end
75
75
 
76
76
  def append_to_file(file, content = nil, &block)
data/lib/jax/version.rb CHANGED
@@ -2,7 +2,7 @@ module Jax
2
2
  module Version
3
3
  MAJOR = 2
4
4
  MINOR = 0
5
- PATCH = 7
5
+ PATCH = 8
6
6
  BUILD = nil
7
7
  STRING = BUILD ? [MAJOR, MINOR, PATCH, BUILD].join(".") : [MAJOR, MINOR, PATCH].join(".")
8
8
  end
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], {target:GL_TEXTURE_CUBE_MAP}); });
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();
@@ -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("../../tmp/rails-specs", File.dirname(__FILE__))
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.7
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-01-08 00:00:00.000000000Z
12
+ date: 2012-04-29 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &2153840660 !ruby/object:Gem::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.1.0
21
+ version: '3'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2153840660
24
+ version_requirements: *2160774320
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: jquery-rails
27
- requirement: &2153840160 !ruby/object:Gem::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.0.13
32
+ version: '1'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2153840160
35
+ version_requirements: *2160773480
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jasmine
38
- requirement: &2153839600 !ruby/object:Gem::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.0.2.0
43
+ version: '1'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2153839600
46
+ version_requirements: *2160772640
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rest-client
49
- requirement: &2153839120 !ruby/object:Gem::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.6.3
54
+ version: '1'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2153839120
57
+ version_requirements: *2160771880
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rspec
60
- requirement: &2153838620 !ruby/object:Gem::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.6.0
65
+ version: '2'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2153838620
68
+ version_requirements: *2160770860
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: coffee-rails
71
- requirement: &2153837980 !ruby/object:Gem::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.1.0
76
+ version: '3'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *2153837980
79
+ version_requirements: *2160769880
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: coderay
82
- requirement: &2153837480 !ruby/object:Gem::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: 0.9.7
87
+ version: '1'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *2153837480
90
+ version_requirements: *2160769080
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: sqlite3
93
- requirement: &2153837020 !ruby/object:Gem::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.3.4
98
+ version: '1'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *2153837020
101
+ version_requirements: *2160768260
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: sass-rails
104
- requirement: &2153836420 !ruby/object:Gem::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.1.0
109
+ version: '3'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *2153836420
112
+ version_requirements: *2160767460
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: uglifier
115
- requirement: &2153835940 !ruby/object:Gem::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.0.2
120
+ version: '1'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *2153835940
123
+ version_requirements: *2160766660
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: genspec
126
- requirement: &2153835460 !ruby/object:Gem::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.2.3
131
+ version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *2153835460
134
+ version_requirements: *2160765580
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: selenium-webdriver
137
- requirement: &2153834860 !ruby/object:Gem::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.9.1
142
+ version: '2'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *2153834860
145
+ version_requirements: *2160764460
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: fakeweb
148
- requirement: &2153834380 !ruby/object:Gem::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.0
153
+ version: '1.3'
154
154
  type: :development
155
155
  prerelease: false
156
- version_requirements: *2153834380
156
+ version_requirements: *2160763400
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: ansi
159
- requirement: &2153834000 !ruby/object:Gem::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: *2153834000
167
+ version_requirements: *2160762780
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: cucumber-rails
170
- requirement: &2153833460 !ruby/object:Gem::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.0.2
175
+ version: '1'
176
176
  type: :development
177
177
  prerelease: false
178
- version_requirements: *2153833460
178
+ version_requirements: *2160761760
179
179
  - !ruby/object:Gem::Dependency
180
180
  name: RedCloth
181
- requirement: &2153832860 !ruby/object:Gem::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: *2153832860
189
+ version_requirements: *2160760580
190
190
  - !ruby/object:Gem::Dependency
191
191
  name: w3c_validators
192
- requirement: &2153832400 !ruby/object:Gem::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: *2153832400
200
+ version_requirements: *2160759660
201
201
  - !ruby/object:Gem::Dependency
202
202
  name: treetop
203
- requirement: &2153831940 !ruby/object:Gem::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: *2153831940
211
+ version_requirements: *2160758760
212
212
  - !ruby/object:Gem::Dependency
213
213
  name: bluecloth
214
- requirement: &2153831320 !ruby/object:Gem::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: *2153831320
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: -1809678549776687615
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: -1809678549776687615
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
-