entityjs 0.4.2 → 0.4.3

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/README.md CHANGED
@@ -3,11 +3,15 @@ An HTML5 javascript game engine utlizing the entity-component design. Write high
3
3
 
4
4
  [EntityJS Website](http://entityjs.com) | [Demos](http://entityjs.com/demos) | [Tutorials](http://entityjs.com/tutorials) | [API](http://entityjs.com/api)
5
5
 
6
- ## Version 0.3.2
6
+ ## Version 0.4.2
7
7
 
8
- * Coffeescript is now supported.
9
- * Assets directory is now used for external loading only.
10
- * Scripts directory now accepts, tmx, xml, json and coffee files.
8
+ * Stylesheets are now automatically included. Place css in the styles folder.
9
+ * Factory method added to comp.
10
+ * El comp can place elements on top of canvas.
11
+ * Converted config.yml to game.json.
12
+ * Attributes inside game.json are available in js.
13
+ * Use `entityjs html` make changes to the html.
14
+ * Builds folder removed and replaced with a single build.
11
15
 
12
16
  ## API
13
17
  Currently the [API](http://entityjs.com/api) is out of date. It will slowly be updated everyday.
@@ -83,7 +87,7 @@ To play visit:
83
87
  `localhost:2345`
84
88
 
85
89
  To run tests visit:
86
- `localhost:2345/tests`
90
+ `localhost:2345/test`
87
91
 
88
92
  Assets are located here:
89
93
  `localhost:2345/assets/*name`
@@ -96,24 +100,16 @@ View [all commands](/bendangelo/EntityJS/wiki/commands)
96
100
  * Images - Add any images here and retrieve them with `re.assets.images`
97
101
  * Sounds - Add any sounds and retrieve them with `re.assets.sounds`
98
102
 
99
- * Builds - Contains all finished builds
103
+ * Build - Contains built game
100
104
 
101
105
  * Scripts - Contains all js, coffee sources. Xml, tmx and json files will be converted into js.
102
106
  * Plugins - Contains minified scripts for plugin play.
103
107
 
104
108
  * Tests - Contains test files to run in [QUnit](http://docs.jquery.com/QUnit)
105
109
 
106
- * config.yml - Optional, simple configuration.
107
- * readme.txt - Optional, simple description of the game.
108
-
109
- ## Changes In V0.3
110
-
111
- * `Inherit()` is now `defaults()`
112
- * `Extend()` is now `defines()`
113
- * `Inherit()` on entities is now `def()`
114
- * `Extend()` on entities is now `attr()`
110
+ * Styles - Contains all css to be included. Will support sass and others later on.
115
111
 
116
- There are many more name changes, make sure to read the component source code for help. Most components have a usage example to help you along while the API / tutorials get up to date.
112
+ * game.json - Optional, configurate scripts order, ignore certain files, etc
117
113
 
118
114
  ### Short getters and setters
119
115
 
@@ -131,11 +127,35 @@ There are many more name changes, make sure to read the component source code fo
131
127
  //or
132
128
  tile.attr('tile', [1,2]); //samething
133
129
 
134
- ### Signals Changed to on/off
130
+ ### Factories in 0.4.2
131
+
132
+ All components now have a factory method which can be used to create complex entities.
133
+
134
+ re.c("button")
135
+ .factory(function(label, click){
136
+ this.label = label;
137
+
138
+ if(click){
139
+ this.on('click', click);
140
+ }
141
+ });
142
+
143
+ re.button("Hello", function(){
144
+ alert(this.label+" clicked!");
145
+ });
146
+
147
+ //Can be overwritten using the `method` function. A singleton is created below.
148
+
149
+ re.c("player")
150
+ .method(function(){
151
+ if(!this.instance){
152
+ this.instance = re.e('player');
153
+ }
154
+ return this.instance;
155
+ });
135
156
 
136
- * `addSignal()` is now `on()`
137
- * `removeSignal()` is now `off()`
138
- * `signal()` is now `trigger()`
157
+ //get player
158
+ re.player();
139
159
 
140
160
  ## QUnit Testing
141
161
 
data/entityjs.gemspec CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
23
23
  s.add_development_dependency "rspec"
24
24
  s.add_development_dependency "jasmine"
25
25
 
26
- s.add_dependency "sinatra", ">= 1.0"
26
+ s.add_dependency "sinatra", ">= 1.3.0"
27
27
  s.add_dependency "coffee-script"
28
28
  s.add_dependency 'uglifier'
29
29
  s.add_dependency 'json'
@@ -19,6 +19,7 @@ module Entityjs
19
19
  images_folder = Config.images_folder
20
20
  sounds_folder = Config.sounds_folder
21
21
  scripts_folder = Config.scripts_folder
22
+ styles_folder = Config.instance.build_styles_path
22
23
 
23
24
  final_name = Config.instance.build_name+'.js'
24
25
  html_name = 'play.html'
@@ -60,7 +61,9 @@ module Entityjs
60
61
  end
61
62
 
62
63
  #save css
63
- File.open(Config.instance.build_styles_path+"/"+Config.instance.build_styles_name+'.css', 'w') do |f|
64
+ Dirc.create_dir(styles_folder)
65
+
66
+ File.open(styles_folder+"/"+Config.instance.build_styles_name+'.css', 'w') do |f|
64
67
  f.write(css)
65
68
  end
66
69
 
@@ -98,7 +101,7 @@ module Entityjs
98
101
 
99
102
  puts "Build Complete!"
100
103
  puts "Build is at"
101
- puts " #{File.expand_path(build_folder)}"
104
+ puts " #{build_folder}"
102
105
 
103
106
  Dirc.to_game_root
104
107
 
@@ -14,7 +14,7 @@ module Entityjs
14
14
  puts " http://localhost:2345/"
15
15
  puts ""
16
16
  puts "Your tests are here:"
17
- puts " http://localhost:2345/tests"
17
+ puts " http://localhost:2345/test"
18
18
  puts ""
19
19
 
20
20
  Entityjs::Server.run! :port=>2345
@@ -72,4 +72,4 @@ module Entityjs
72
72
 
73
73
  end
74
74
 
75
- end
75
+ end
@@ -94,7 +94,7 @@ module Entityjs
94
94
  end
95
95
 
96
96
  def scripts_order
97
- return split_attr('order')
97
+ return split_attr('scripts-order')
98
98
  end
99
99
 
100
100
  def tests_ignore
@@ -1,3 +1,3 @@
1
1
  module Entityjs
2
- VERSION = "0.4.2"
2
+ VERSION = "0.4.3" unless const_defined? :VERSION
3
3
  end
@@ -30,6 +30,16 @@ describe('comp', function(){
30
30
  eq(re[k.name](val).ref, val);
31
31
 
32
32
  });
33
+
34
+ it('should overwrite method', function(){
35
+
36
+
37
+ k.method(function(){
38
+ eq(this, re[k.name]);
39
+ });
40
+
41
+ re[k.name]();
42
+ });
33
43
 
34
44
  it('should add events', function(){
35
45
  k.events('mouseup', function(){})
@@ -3,7 +3,7 @@ describe('load', function(){
3
3
  it('load', function(){
4
4
  //add images
5
5
  re.load.path = '__spec__/'
6
- var img = 'helpers/accept.png'
6
+ var img = '/__spec__/helpers/accept.png'
7
7
  var sfx = 'helpers/alligator.mp3'
8
8
  var sfx2 = 'helpers/alligator.ogg'
9
9
 
@@ -325,6 +325,7 @@ describe('query', function(){
325
325
  eq(e, this)
326
326
  return t == 10;
327
327
  }), 10);
328
+
328
329
  })
329
330
 
330
331
  it('isEmpty', function(){
@@ -14,7 +14,7 @@ describe('bisect', function(){
14
14
  });
15
15
 
16
16
  it('static biToY', function(){
17
- eq(re.bisect.toY(1, 160, 60), 0)
17
+ eq(re.bisect.toY(1, 160, 60, 60), 0)
18
18
 
19
19
  });
20
20
 
@@ -13,7 +13,7 @@ describe 'new' do
13
13
  Entityjs::New.generate(['mygame', 'blank']).should == 0
14
14
  Dir.pwd.should match /\/EntityJS$/i
15
15
 
16
- File.exists?('mygame/config.yml').should == true
16
+ File.exists?('mygame/game.json').should == true
17
17
  File.exists?('mygame/readme.txt').should == true
18
18
  end
19
19
 
@@ -12,5 +12,5 @@ def setup_mygame
12
12
  end
13
13
 
14
14
  def teardown_mygame
15
- Dir.chdir('..')
15
+ Dir.chdir('..') if Entityjs::Dirc.game?
16
16
  end
data/src/core/comp.js CHANGED
@@ -71,6 +71,14 @@ re.c.init.prototype = {
71
71
  }
72
72
  },
73
73
 
74
+ //turns global method into a singleton
75
+ singleton:function(){
76
+ this._re_method = function(){
77
+ return this._ || (this._ = re.e(this.name));
78
+ }
79
+ return this;
80
+ },
81
+
74
82
  statics:function(obj, value){
75
83
  this._checkFinal();
76
84
 
@@ -126,10 +134,10 @@ re.c.init.prototype = {
126
134
  },
127
135
 
128
136
  _re_method:function(){
129
- var e = re.e(this.name);
137
+ var e = re.e(this.name), f = this._re_factory;
130
138
 
131
- if(this._re_factory)
132
- this._re_factory.apply(e, arguments);
139
+ if(f)
140
+ f.apply(e, arguments);
133
141
 
134
142
  return e;
135
143
  },
@@ -146,7 +154,7 @@ re.c.init.prototype = {
146
154
 
147
155
  */
148
156
  method:function(f){
149
- this._re_method = f;
157
+ this._re_method = f.bind(re[this.name]);
150
158
  return this;
151
159
  },
152
160
 
data/src/core/load.js CHANGED
@@ -5,6 +5,10 @@
5
5
  }
6
6
 
7
7
  b.path = "";
8
+ //returns file name of path
9
+ b.file = function(name){
10
+ return name.split('/').pop().split('?').shift();
11
+ };
8
12
 
9
13
  b.imageExt = 'img';
10
14
  b.soundExt = 'sfx';
@@ -74,13 +78,10 @@
74
78
  a = this.assets[i];
75
79
 
76
80
  //copy full source path
77
- var s = a;
78
-
81
+ var s = (a.charAt(0)=='/')?a:re.load.path+a;
82
+
79
83
  //remove directories
80
- var d = a.lastIndexOf('/');
81
- if(d != -1){
82
- a = a.substr(d+1, a.length);
83
- }
84
+ a = re.load.file(a);
84
85
 
85
86
  //find file extension
86
87
  var j = a.lastIndexOf('.')+1;
@@ -154,7 +155,7 @@
154
155
 
155
156
  };
156
157
 
157
- img.src = re.load.path+src;
158
+ img.src = src;
158
159
 
159
160
  return this;
160
161
  };
@@ -189,7 +190,7 @@
189
190
 
190
191
  s = soundManager.createSound({
191
192
  id:a,
192
- url:re.load.path+src,
193
+ url:src,
193
194
  autoLoad:true,
194
195
  onload:function(){
195
196
  that._loaded();
@@ -201,8 +202,8 @@
201
202
  });
202
203
 
203
204
  } else {
204
- s = new Audio(re.load.path+src);
205
- s.src = re.load.path+src;
205
+ s = new Audio(src);
206
+ s.src = src;
206
207
  s.preload = "auto";
207
208
  s.load();
208
209
 
data/src/core/query.js CHANGED
@@ -367,6 +367,15 @@
367
367
 
368
368
  return val;
369
369
  }
370
+
371
+ p.sum = function(method, context){
372
+ var val = 0;
373
+
374
+ this.each(function(e, i, l){
375
+ val += method.call(context || this, e, i, l);
376
+ });
377
+ return val;
378
+ }
370
379
 
371
380
  //without this filter would return a normal array.
372
381
  p.filter = function(){
@@ -13,7 +13,7 @@ re.c('circle')
13
13
  c.fillStyle = this.color;
14
14
 
15
15
  c.beginPath();
16
- var r = this.radius();
16
+ var r = this.radius;
17
17
 
18
18
  c.arc(-this.regX + r , -this.regY + r , r, 0, Math.PI*2, true);
19
19
 
@@ -31,4 +31,4 @@ re.c('circle')
31
31
  return this.sizeX * 0.5;
32
32
  }
33
33
 
34
- });
34
+ });
data/src/display/el.js CHANGED
@@ -2,7 +2,7 @@
2
2
  The element comp creates and displays DOM elements. This can be used to display buttons,
3
3
  images, icons etc. on top of the canvas element.
4
4
 
5
- re.e('el:a').$el //jquery element refence
5
+ re.e('el:a').$el //jquery element reference
6
6
 
7
7
  Jquery must be available to work!
8
8
 
@@ -13,7 +13,8 @@ re.c('el')
13
13
 
14
14
  posX:function(x){
15
15
  if(re.is(x)){
16
- return this.$el.css('left', x);
16
+ this.$el.css('left', x);
17
+ return this;
17
18
  }
18
19
 
19
20
  return this.$el.position().left;
@@ -21,7 +22,8 @@ re.c('el')
21
22
 
22
23
  posY:function(y){
23
24
  if(re.is(y)){
24
- return this.$el.css('top', y);
25
+ this.$el.css('top', y);
26
+ return this;
25
27
  }
26
28
  return this.$el.position().top;
27
29
  },
@@ -38,7 +40,6 @@ re.c('el')
38
40
  var that = this;
39
41
  this.$el.click(function(e){
40
42
  f.call(that,e);
41
- return false;
42
43
  });
43
44
  return this;
44
45
  },
@@ -48,7 +49,7 @@ re.c('el')
48
49
  },
49
50
 
50
51
  setEl:function(el){
51
- this.remove();
52
+ this.removeEl();
52
53
 
53
54
  this.el = el;
54
55
  this.$el = $(el).addClass('el');
@@ -67,15 +68,16 @@ re.c('el')
67
68
  },
68
69
 
69
70
  //places element to parent of canvas
70
- place:function(){
71
- $(re.sys.canvas).parent().append(this.el);
71
+ addEl:function(targ){
72
+ targ = targ || $(re.sys.canvas).parent();
73
+
74
+ targ.append(this.el);
72
75
  return this;
73
76
  },
74
77
 
75
- remove:function(){
78
+ removeEl:function(){
76
79
  if(this.$el){
77
80
  this.$el.remove();
78
- this.$el = this.el = null;
79
81
  }
80
82
  return this;
81
83
  },
@@ -95,5 +97,5 @@ re.c('el')
95
97
  if(e) this.setEl(re.$new(e));
96
98
  })
97
99
  .dispose(function(){
98
- this.remove();
100
+ this.removeEl();
99
101
  });
data/src/display/image.js CHANGED
@@ -10,7 +10,7 @@ re.c('image')
10
10
 
11
11
  image:function(b){
12
12
  if(re.is(b)){
13
- this.attr({_image:b, sizeX:b.width, sizeY:b.height});
13
+ this.attr({_image:b, sizeX:b.width, sizeY:b.height, bisect:b.width});
14
14
  return this;
15
15
  }
16
16
  return this._image;
data/src/math/bisect.js CHANGED
@@ -23,9 +23,9 @@ re.c('bisect')
23
23
  return this.toTileX(bi, width, size) * size;
24
24
  },
25
25
 
26
- toY:function(bi, width, size){
26
+ toY:function(bi, width, sizeX, sizeY){
27
27
 
28
- return this.toTileY(bi, width, size) * size;
28
+ return this.toTileY(bi, width, sizeX) * sizeY;
29
29
  },
30
30
 
31
31
  toTileX:function(bi, width, size){
@@ -56,7 +56,7 @@ re.c('bisect')
56
56
 
57
57
  biToY:function(bi){
58
58
 
59
- return re.bisect.toY(bi, this.bisect, this.sizeX);
59
+ return re.bisect.toY(bi, this.bisect, this.sizeX, this.sizeY);
60
60
  },
61
61
 
62
62
  biToTileX:function(bi){
@@ -50,21 +50,21 @@ re.c('flicker')
50
50
 
51
51
  change:function(){
52
52
 
53
- //check if over
54
- if(this.flicker_frame == this.flicker_frames.length){
55
-
56
- if(this.flicker_loops == -1 || --this.flicker_loops >= 1){
57
- //loop again
58
-
59
- this.flicker_frame = 0;
53
+ //check if over
54
+ if(this.flicker_frame == this.flicker_frames.length){
60
55
 
61
- } else {
62
- //done flickering
63
-
64
- this.flicker_stop();
65
- return;
56
+ if(this.flicker_loops == -1 || --this.flicker_loops >= 1){
57
+ //loop again
58
+
59
+ this.flicker_frame = 0;
60
+
61
+ } else {
62
+ //done flickering
63
+
64
+ this.flicker_stop();
65
+ return;
66
+ }
66
67
  }
67
- }
68
68
 
69
69
  this.flicker_run();
70
70
  },
@@ -62,7 +62,7 @@ re.c('pathfind')
62
62
  })
63
63
  .defines({
64
64
 
65
- pathfind_max:100,
65
+ pathfind_max:50,
66
66
 
67
67
  pathfind:function(x, y, targetX, targetY, onCheck, onTile){
68
68
  this.targetX = targetX;
@@ -12,5 +12,5 @@
12
12
  "tests-scripts-ignore":"init.js",
13
13
 
14
14
  //order scripts
15
- "order": null
15
+ "scripts-order": null
16
16
  }
@@ -2,5 +2,5 @@
2
2
  "build-scripts-ignore":"plugins/*",
3
3
  "title":"DOM Elements",
4
4
  "ver":"1.0",
5
- "order":"plugins/*"
5
+ "scripts-order":"plugins/*"
6
6
  }
@@ -1,5 +1,5 @@
1
1
  re.c('btn')
2
- .requires('el:button')
3
2
  .factory(function(text, click){
3
+ this.comp('el:button contain');
4
4
  this.click(click).text(text);
5
- })
5
+ })
@@ -12,5 +12,5 @@
12
12
  "tests-scripts-ignore":"init.js",
13
13
 
14
14
  //order scripts
15
- "order": null
15
+ "scripts-order": null
16
16
  }
@@ -14,5 +14,5 @@
14
14
  "tests-scripts-ignore":"init.js",
15
15
 
16
16
  //this makes all .tmx files last
17
- "order":".*/.js"
17
+ "scripts-order":".*/.js"
18
18
  }
@@ -12,5 +12,5 @@
12
12
  "tests-scripts-ignore":"init.js",
13
13
 
14
14
  //order scripts
15
- "order": null
15
+ "scripts-order": null
16
16
  }
@@ -12,5 +12,5 @@
12
12
  "tests-scripts-ignore":"init.js",
13
13
 
14
14
  //order scripts
15
- "order": "/tile.js$"
15
+ "scripts-order": "/tile.js$"
16
16
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: entityjs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-15 00:00:00.000000000 Z
12
+ date: 2012-07-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &23146660 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,15 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
24
+ version_requirements: *23146660
30
25
  - !ruby/object:Gem::Dependency
31
26
  name: jasmine
32
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &23146240 !ruby/object:Gem::Requirement
33
28
  none: false
34
29
  requirements:
35
30
  - - ! '>='
@@ -37,31 +32,21 @@ dependencies:
37
32
  version: '0'
38
33
  type: :development
39
34
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
35
+ version_requirements: *23146240
46
36
  - !ruby/object:Gem::Dependency
47
37
  name: sinatra
48
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &23145740 !ruby/object:Gem::Requirement
49
39
  none: false
50
40
  requirements:
51
41
  - - ! '>='
52
42
  - !ruby/object:Gem::Version
53
- version: '1.0'
43
+ version: 1.3.0
54
44
  type: :runtime
55
45
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '1.0'
46
+ version_requirements: *23145740
62
47
  - !ruby/object:Gem::Dependency
63
48
  name: coffee-script
64
- requirement: !ruby/object:Gem::Requirement
49
+ requirement: &23145320 !ruby/object:Gem::Requirement
65
50
  none: false
66
51
  requirements:
67
52
  - - ! '>='
@@ -69,15 +54,10 @@ dependencies:
69
54
  version: '0'
70
55
  type: :runtime
71
56
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
57
+ version_requirements: *23145320
78
58
  - !ruby/object:Gem::Dependency
79
59
  name: uglifier
80
- requirement: !ruby/object:Gem::Requirement
60
+ requirement: &23144860 !ruby/object:Gem::Requirement
81
61
  none: false
82
62
  requirements:
83
63
  - - ! '>='
@@ -85,15 +65,10 @@ dependencies:
85
65
  version: '0'
86
66
  type: :runtime
87
67
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
68
+ version_requirements: *23144860
94
69
  - !ruby/object:Gem::Dependency
95
70
  name: json
96
- requirement: !ruby/object:Gem::Requirement
71
+ requirement: &23144440 !ruby/object:Gem::Requirement
97
72
  none: false
98
73
  requirements:
99
74
  - - ! '>='
@@ -101,15 +76,10 @@ dependencies:
101
76
  version: '0'
102
77
  type: :runtime
103
78
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
79
+ version_requirements: *23144440
110
80
  - !ruby/object:Gem::Dependency
111
81
  name: cobravsmongoose
112
- requirement: !ruby/object:Gem::Requirement
82
+ requirement: &23144020 !ruby/object:Gem::Requirement
113
83
  none: false
114
84
  requirements:
115
85
  - - ! '>='
@@ -117,15 +87,10 @@ dependencies:
117
87
  version: '0'
118
88
  type: :runtime
119
89
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ! '>='
124
- - !ruby/object:Gem::Version
125
- version: '0'
90
+ version_requirements: *23144020
126
91
  - !ruby/object:Gem::Dependency
127
92
  name: cssmin
128
- requirement: !ruby/object:Gem::Requirement
93
+ requirement: &23143600 !ruby/object:Gem::Requirement
129
94
  none: false
130
95
  requirements:
131
96
  - - ! '>='
@@ -133,12 +98,7 @@ dependencies:
133
98
  version: '0'
134
99
  type: :runtime
135
100
  prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ! '>='
140
- - !ruby/object:Gem::Version
141
- version: '0'
101
+ version_requirements: *23143600
142
102
  description: HTML5 Javascript game engine, quickly create robust, flexible and reusable
143
103
  games.
144
104
  email:
@@ -459,7 +419,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
459
419
  version: '0'
460
420
  requirements: []
461
421
  rubyforge_project: entityjs
462
- rubygems_version: 1.8.24
422
+ rubygems_version: 1.8.15
463
423
  signing_key:
464
424
  specification_version: 3
465
425
  summary: Create HTML5 javascript games in EntityJS.