entityjs 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. data/README.md +18 -14
  2. data/entityjs.gemspec +1 -0
  3. data/lib/entityjs/assets.rb +13 -163
  4. data/lib/entityjs/command.rb +5 -2
  5. data/lib/entityjs/commands/build.rb +63 -23
  6. data/lib/entityjs/commands/eunit.rb +44 -0
  7. data/lib/entityjs/commands/release.rb +1 -1
  8. data/lib/entityjs/commands/server.rb +19 -4
  9. data/lib/entityjs/compile.rb +152 -0
  10. data/lib/entityjs/config.rb +8 -0
  11. data/lib/entityjs/dirc.rb +70 -17
  12. data/lib/entityjs/page.rb +106 -0
  13. data/lib/entityjs/parsers/parse_coffee.rb +12 -0
  14. data/lib/entityjs/version.rb +1 -1
  15. data/lib/entityjs.rb +18 -4
  16. data/public/qunit/qunit.css +9 -3
  17. data/public/qunit/qunit.entity.js +113 -31
  18. data/public/qunit/qunit.js +296 -235
  19. data/public/qunit/qunit.mock.js +54 -2
  20. data/public/tests.html +0 -15
  21. data/spec/javascripts/src/cycle/tween_spec.js +59 -0
  22. data/spec/javascripts/src/display/screen_spec.js +0 -15
  23. data/spec/javascripts/src/display/text_spec.js +4 -0
  24. data/spec/javascripts/src/input/mouse_spec.js +18 -18
  25. data/spec/javascripts/src/input/preventdefault_spec.js +14 -0
  26. data/spec/javascripts/src/math/drag_spec.js +2 -2
  27. data/spec/javascripts/src/math/hit_spec.js +24 -0
  28. data/spec/javascripts/src/math/point_spec.js +3 -3
  29. data/spec/javascripts/src/math/tile_spec.js +1 -1
  30. data/spec/javascripts/src/media/sound_spec.js +1 -1
  31. data/spec/javascripts/src/pattern/automap_spec.js +3 -3
  32. data/spec/javascripts/src/pattern/flicker_spec.js +2 -1
  33. data/spec/javascripts/src/util/random_spec.js +17 -0
  34. data/spec/javascripts/src/util/scene_spec.js +15 -0
  35. data/spec/lib/entityjs/assets_spec.rb +2 -201
  36. data/spec/lib/entityjs/commands/build_spec.rb +18 -5
  37. data/spec/lib/entityjs/commands/eunit_spec.rb +18 -0
  38. data/spec/lib/entityjs/commands/release_spec.rb +2 -0
  39. data/spec/lib/entityjs/compile_spec.rb +204 -0
  40. data/spec/lib/entityjs/dirc_spec.rb +8 -4
  41. data/spec/lib/entityjs/page_spec.rb +59 -0
  42. data/spec/support/factories.rb +0 -2
  43. data/src/core/entity.js +4 -18
  44. data/src/core/query.js +1 -1
  45. data/src/core/re.js +6 -6
  46. data/src/core/system.js +17 -12
  47. data/src/cycle/tween.js +93 -31
  48. data/src/display/align.js +11 -6
  49. data/src/display/circle.js +5 -4
  50. data/src/display/imgtext.js +33 -22
  51. data/src/display/screen.js +0 -8
  52. data/src/display/text.js +37 -4
  53. data/src/input/keyboard.js +15 -5
  54. data/src/input/mouse.js +15 -25
  55. data/src/input/preventdefault.js +11 -0
  56. data/src/math/body.js +35 -16
  57. data/src/math/drag.js +2 -2
  58. data/src/math/force.js +2 -2
  59. data/src/math/hit.js +15 -6
  60. data/src/math/hitmap.js +6 -6
  61. data/src/math/point.js +1 -1
  62. data/src/math/tile.js +22 -17
  63. data/src/media/sound.js +1 -1
  64. data/src/pattern/automap.js +16 -27
  65. data/src/pattern/flicker.js +9 -5
  66. data/src/util/random.js +4 -0
  67. data/src/util/scene.js +2 -6
  68. data/templates/arrow_keys/scripts/{display → displays}/arrow.js +0 -0
  69. data/templates/arrow_keys/scripts/{input → inputs}/controls.js +0 -0
  70. data/templates/arrow_keys/tests/{display → displays}/arrow_test.js +1 -1
  71. data/templates/arrow_keys/tests/{input → inputs}/controls_test.js +0 -0
  72. data/templates/arrow_keys/tests/scenes/load_test.js +2 -0
  73. data/templates/{blank → circle}/config.yml +0 -0
  74. data/templates/{blank → circle}/readme.txt +0 -0
  75. data/templates/circle/scripts/init.js +7 -0
  76. data/templates/circle/scripts/scenes/home.js +62 -0
  77. data/templates/circle/scripts/scenes/load.js +11 -0
  78. data/templates/circle/tests/scenes/home_test.js +29 -0
  79. data/templates/circle/tests/scenes/load_test.js +15 -0
  80. data/templates/platform/config.yml +2 -1
  81. data/templates/platform/readme.txt +15 -16
  82. data/templates/platform/scripts/{display → displays}/bit.js +0 -0
  83. data/templates/platform/scripts/{display → displays}/hero.js +0 -0
  84. data/templates/platform/scripts/{display → displays}/tile.js +0 -0
  85. data/templates/platform/scripts/{display → displays}/tsprite.js +0 -0
  86. data/templates/platform/{assets → scripts}/levels/level1.tmx +0 -0
  87. data/templates/platform/scripts/{util → utils}/counter.js +0 -0
  88. data/templates/platform/scripts/{util → utils}/level.js +0 -0
  89. data/templates/platform/tests/{display → displays}/bit_test.js +1 -1
  90. data/templates/platform/tests/displays/hero_test.js +73 -0
  91. data/templates/platform/tests/{display → displays}/tile_test.js +1 -1
  92. data/templates/platform/tests/displays/tsprite_test.js +8 -0
  93. data/templates/platform/tests/items/coin_test.js +10 -10
  94. data/templates/platform/tests/items/item_test.js +9 -9
  95. data/templates/platform/tests/items/spring_test.js +3 -3
  96. data/templates/platform/tests/scenes/load_test.js +2 -1
  97. data/templates/platform/tests/{util → utils}/counter_test.js +2 -2
  98. data/templates/platform/tests/{util → utils}/level_test.js +3 -0
  99. data/templates/pong/config.yml +22 -0
  100. data/templates/pong/readme.txt +3 -0
  101. data/templates/pong/scripts/controls/ai.js +30 -0
  102. data/templates/pong/scripts/controls/arena.js +33 -0
  103. data/templates/pong/scripts/controls/hitmap.js +54 -0
  104. data/templates/pong/scripts/controls/player.js +24 -0
  105. data/templates/pong/scripts/controls/twoarena.js +14 -0
  106. data/templates/pong/scripts/displays/ball.js +29 -0
  107. data/templates/pong/scripts/displays/counter.js +22 -0
  108. data/templates/pong/scripts/displays/paddle.js +22 -0
  109. data/templates/pong/scripts/init.js +9 -0
  110. data/templates/pong/scripts/scenes/game.js +61 -0
  111. data/templates/pong/scripts/scenes/home.js +55 -0
  112. data/templates/pong/scripts/scenes/over.js +29 -0
  113. data/templates/pong/tests/controls/ai_test.js +34 -0
  114. data/templates/pong/tests/controls/arena_test.js +20 -0
  115. data/templates/pong/tests/controls/hitmap_test.js +89 -0
  116. data/templates/pong/tests/controls/player_test.js +25 -0
  117. data/templates/pong/tests/controls/twoarena_test.js +7 -0
  118. data/templates/pong/tests/displays/ball_test.js +10 -0
  119. data/templates/pong/tests/displays/counter_test.js +13 -0
  120. data/templates/pong/tests/displays/paddle_test.js +17 -0
  121. data/templates/pong/tests/scenes/game_test.js +16 -0
  122. data/templates/pong/tests/scenes/home_test.js +30 -0
  123. data/templates/pong/tests/scenes/over_test.js +16 -0
  124. data/templates/tiltmaze/config.yml +25 -0
  125. data/templates/tiltmaze/readme.txt +79 -0
  126. data/templates/tiltmaze/scripts/displays/ball.js +78 -0
  127. data/templates/tiltmaze/scripts/displays/target.js +13 -0
  128. data/templates/tiltmaze/scripts/displays/tile.js +2 -0
  129. data/templates/tiltmaze/scripts/init.js +7 -0
  130. data/templates/tiltmaze/scripts/levels/level1.json +14 -0
  131. data/templates/tiltmaze/scripts/levels/level2.json +14 -0
  132. data/templates/tiltmaze/scripts/levels/level3.json +14 -0
  133. data/templates/tiltmaze/scripts/levels/level4.json +15 -0
  134. data/templates/tiltmaze/scripts/levels/level5.json +18 -0
  135. data/templates/tiltmaze/scripts/scenes/game.js +56 -0
  136. data/templates/tiltmaze/scripts/scenes/home.js +24 -0
  137. data/templates/tiltmaze/scripts/structs/level.js +82 -0
  138. data/templates/tiltmaze/scripts/tiles/walltile.js +147 -0
  139. data/templates/tiltmaze/tests/displays/ball_test.js +67 -0
  140. data/templates/tiltmaze/tests/displays/target_test.js +8 -0
  141. data/templates/tiltmaze/tests/factories.js +38 -0
  142. data/templates/tiltmaze/tests/scenes/game_test.js +59 -0
  143. data/templates/tiltmaze/tests/scenes/home_test.js +7 -0
  144. data/templates/tiltmaze/tests/structs/level_test.js +44 -0
  145. data/templates/tiltmaze/tests/tiles/walltile_test.js +36 -0
  146. metadata +106 -33
  147. data/templates/platform/tests/display/hero_test.js +0 -73
  148. data/templates/platform/tests/display/tsprite_test.js +0 -8
@@ -7,9 +7,6 @@ describe 'Assets' do
7
7
 
8
8
  files = factory(:assets)
9
9
 
10
- @data_file = Entityjs::Config.assets_folder+'/blag/bob.json'
11
- files.push @data_file
12
-
13
10
  @sounds_file = Entityjs::Config.sounds_folder+'/fold/secret1.mp3'
14
11
  files.push @sounds_file
15
12
 
@@ -22,215 +19,19 @@ describe 'Assets' do
22
19
  end
23
20
 
24
21
  it 'should return all images' do
25
-
22
+ #TODO: fix up tests..
26
23
  r = Entityjs::Assets.search('images')
27
- r.each do |i|
28
- i.should match /images/
29
- i.should_not match /levels|sounds|assets/
30
- i.should match /^*\.(png|gif|jpg|jpeg)$/i
31
- end
32
24
 
33
25
  end
34
26
 
35
27
  it 'should return all sounds' do
36
28
 
37
29
  r = Entityjs::Assets.search('sounds')
38
- r.each do |i|
39
- i.should match /sounds/
40
- i.should_not match /levels|images|assets/
41
- i.should match /^*\.(mp3|aac|wav|ogg)$/i
42
- end
43
30
 
44
31
  r.should include(@sounds_file.gsub('assets/', ''))
45
32
 
46
33
  end
47
34
 
48
- it 'should return all datas' do
49
-
50
- r = Entityjs::Assets.search('*')
51
- r.each do |i|
52
- i.should match /levels|blag/
53
- i.should_not match /sounds|images|assets/
54
- i.should match /^*\.(#{Entityjs::Assets.valid_datas.join('|')})$/i
55
- end
56
-
57
- r.should include(@data_file.gsub('assets/', ''))
58
- end
59
-
60
- it 'should generate sounds to js' do
61
- r = Entityjs::Assets.sounds_to_js
62
- r.should match /\[*\]/
63
-
64
- end
65
-
66
- it 'should generate images to js' do
67
- r = Entityjs::Assets.images_to_js
68
- r.should match /\[*\]/
69
-
70
- end
71
-
72
- it 'should generate datas to js' do
73
- r = Entityjs::Assets.datas_to_js
74
- r.should match /re\.e\('/
75
-
76
- end
77
-
78
- it 'should convert xml to json' do
79
-
80
- File.stub(:extname).and_return('.xml')
81
- IO.stub(:read).and_return('<?xml ?><root><alice sid="4"><bob sid="1">charlie</bob><bob sid="2">david</bob></alice></root>')
82
-
83
- r = Entityjs::Assets.file_to_json('convert.xml')
84
-
85
- r.should match /alice/
86
- r.should_not match /root/
87
- r.should_not match /<\?xml.*\?>/
88
- end
89
-
90
- it 'should convert tmx to json' do
91
- File.stub(:extname).and_return('.tmx')
92
- IO.stub(:read).and_return(%q(
93
- <?xml version="1.0" encoding="UTF-8"?>
94
- <map version="1.0" orientation="orthogonal" width="37" height="15" tilewidth="25" tileheight="25">
95
- <tileset firstgid="1" name="Sheet" tilewidth="25" tileheight="25">
96
- <image source="tiles.png" width="200" height="25"/>
97
- </tileset>
98
- <tileset firstgid="9" name="Objects" tilewidth="25" tileheight="25">
99
- <image source="items.png" width="250" height="50"/>
100
- </tileset>
101
- <layer name="Back" width="37" height="15" opacity="0.43">
102
- <data encoding="csv">
103
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
104
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
105
- 0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
106
- 0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,6,2,2,2,5,0,0,0,0,0,0,8,8,0,
107
- 0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,6,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
108
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
109
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,3,0,0,0,8,0,0,0,0,0,
110
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
111
- 0,0,0,0,0,0,0,0,6,5,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
112
- 0,0,0,0,0,6,2,2,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
113
- 0,0,0,6,2,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,0,6,2,5,
114
- 0,0,6,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,0,1,1,3,
115
- 0,6,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,6,1,1,3,
116
- 0,4,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,6,1,1,1,3,
117
- 0,4,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,4,1,1,1,3
118
- </data>
119
- </layer>
120
- <layer name="Front" width="37" height="15">
121
- <data encoding="csv">
122
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
123
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
124
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
125
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
126
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
127
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,
128
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
129
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
130
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,
131
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
132
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
133
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,5,0,0,0,0,0,0,0,0,0,0,0,
134
- 2,2,2,2,5,0,0,0,0,0,6,2,2,5,0,0,0,0,0,0,0,6,2,2,1,1,2,2,2,5,0,0,0,0,6,2,2,
135
- 1,1,1,1,3,0,0,0,0,6,1,1,1,1,5,0,0,0,0,0,0,4,1,1,1,1,1,1,1,1,5,0,0,0,4,1,1,
136
- 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
137
- </data>
138
- </layer>
139
- <layer name="Objects" width="37" height="15">
140
- <data encoding="csv">
141
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
142
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
143
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
144
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
145
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,
146
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
147
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,
148
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,
149
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,
150
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,23,0,0,0,0,0,
151
- 0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,
152
- 0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,23,0,0,0,23,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,
153
- 0,0,0,0,0,16,16,16,16,16,0,0,0,0,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,16,16,16,16,0,0,0,
154
- 0,0,0,0,0,15,15,15,15,0,0,0,0,0,0,15,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,15,15,15,0,0,0,
155
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
156
- </data>
157
- </layer>
158
- </map>
159
- ))
160
-
161
- r = Entityjs::Assets.file_to_json('map.tmx')
162
-
163
- r.should_not match /map/
164
- r.should match /"\$":\[\[0/
165
- end
166
-
167
- it 'should tmx should convert to json' do
168
- File.stub(:extname).and_return('.tmx')
169
- IO.stub(:read).and_return(%q(<?xml version="1.0" encoding="UTF-8"?>
170
- <map version="1.0" orientation="orthogonal" width="40" height="20" tilewidth="25" tileheight="25">
171
- <tileset firstgid="1" name="tiles" tilewidth="25" tileheight="25">
172
- <image source="../images/tiles.png" width="200" height="25"/>
173
- </tileset>
174
- <layer name="Tile Layer 1" width="40" height="20">
175
- <data encoding="csv">
176
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
177
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
178
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
179
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
180
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
181
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
182
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
183
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
184
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
185
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
186
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
187
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
188
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
189
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
190
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
191
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
192
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
193
- 2,2,2,2,2,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
194
- 1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
195
- 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
196
- </data>
197
- </layer>
198
- <objectgroup name="Hero" width="40" height="20">
199
- <object name="hero" x="43" y="356"/>
200
- </objectgroup>
201
- </map>))
202
-
203
-
204
- r = Entityjs::Assets.file_to_json('map.tmx')
205
-
206
- r.should_not match /map/
207
- r.should match /"\$":\[\[0/
208
- end
209
-
210
- it 'should return object for invalid xml' do
211
- xml = '<sdf>'
212
-
213
- lambda {
214
- Entityjs::Assets.data_to_json('sdf.xml', xml)
215
- }.should raise_error
216
- end
217
-
218
- it 'should return json from invalid tmx' do
219
- tmx = "<root><bob>10</bob></root>"
220
-
221
- Entityjs::Assets.data_to_json('lsdf.tmx', tmx).should == '{"bob":{"$":10}}'
222
- end
223
-
224
- it 'should convert blank tmx to json' do
225
- tmx = ''
226
-
227
- Entityjs::Assets.data_to_json('level.tmx', tmx).should == '{}'
228
- end
229
-
230
- it 'should generate to js' do
231
- r = Entityjs::Assets.to_js
232
- r.should match /re\.assets/
233
-
234
- end
35
+ it 'should return all datas'
235
36
 
236
37
  end
@@ -22,23 +22,36 @@ describe 'build' do
22
22
 
23
23
  dir = Entityjs::Config.builds_folder+"/"+name
24
24
 
25
- Dir.exists?(dir).should == true
25
+ File.directory?(dir).should == true
26
26
 
27
27
  Dir.chdir(dir) do
28
+ File.file?('game.min.js').should == true
28
29
  contents = IO.read('game.min.js')
29
-
30
+ contents.should match /re\.canvas/
30
31
  end
31
32
  end
32
33
 
34
+ it 'should generate sounds to js' do
35
+ r = Entityjs::Build.sounds_to_js
36
+ r.should match /\[.*\]/
37
+
38
+ end
39
+
40
+ it 'should generate images to js' do
41
+ r = Entityjs::Build.images_to_js
42
+ r.should match /\[.*\]/
43
+
44
+ end
45
+
46
+
33
47
  it 'should build a throwthegame' do
34
48
  #compile given source
35
- images = "['images/sff.png', 'images/sddd.png']"
36
49
  sounds = "[]"
37
- levels = "re.e('df').attr({})"
50
+ images = "['blah.png']"
38
51
  canvas = 'game-canvas'
39
52
  scripts = "re.ready(function(){});"
40
53
 
41
- scripts += Entityjs::Assets.to_js('', images, sounds, canvas, levels)
54
+ scripts += Entityjs::Build.js_config('', images, sounds, canvas)
42
55
 
43
56
  #min
44
57
  min = Entityjs::Build.minify(scripts)
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Eunit" do
4
+
5
+ it 'should compile unit test src' do
6
+ name = Entityjs::Eunit.eunit_name
7
+
8
+ Entityjs::Eunit.generate().should == 0
9
+
10
+ File.file?(name).should == true
11
+
12
+ contents = IO.read(name)
13
+
14
+ contents.should match /factory/
15
+ contents.should match /qunit/i
16
+ end
17
+
18
+ end
@@ -6,6 +6,8 @@ describe "Release" do
6
6
  name = Entityjs::Release.release_name
7
7
 
8
8
  Entityjs::Release.generate().should == 0
9
+
10
+ File.file?(name).should == true
9
11
  end
10
12
 
11
13
  end
@@ -0,0 +1,204 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Compile' do
4
+
5
+ before do
6
+ setup_mygame
7
+ end
8
+
9
+ after(:all) do
10
+ teardown_mygame
11
+ end
12
+
13
+ it 'should ignore js to js' do
14
+
15
+ js = 're.e("test");'
16
+
17
+ out = Entityjs::Compile.script_to_js('script.js', js)
18
+
19
+ out.should == js
20
+
21
+ end
22
+
23
+ it 'should ignore file with no extension' do
24
+
25
+ js = 're.e("test");'
26
+
27
+ out = Entityjs::Compile.script_to_js('script', js)
28
+
29
+ out.should == js
30
+ end
31
+
32
+ it 'should convert coffee script to js' do
33
+ coffee = 'square = (x) -> x * x'
34
+
35
+ js = Entityjs::Compile.script_to_js('blah.coffee', coffee)
36
+
37
+ js.should == "var square;\n\nsquare = function(x) {\n return x * x;\n};\n"
38
+ end
39
+
40
+ it 'should convert to entity' do
41
+
42
+ data = '{"ok":10}'
43
+ comps = ['levels', 'level1.json']
44
+
45
+ entity = Entityjs::Compile.to_entity(comps, data)
46
+
47
+ entity.should match /ok/
48
+ entity.should_not match /levels/
49
+ entity.should match /level/
50
+ entity.should match /level1\.json/
51
+ end
52
+
53
+ it 'should convert xml to json' do
54
+
55
+ IO.stub(:read).and_return('<?xml ?><root><alice sid="4"><bob sid="1">charlie</bob><bob sid="2">david</bob></alice></root>')
56
+
57
+ r = Entityjs::Compile.script_to_js('convert.xml')
58
+
59
+ r.should match /alice/
60
+ r.should_not match /root/
61
+ r.should_not match /<\?xml.*\?>/
62
+ end
63
+
64
+ it 'should convert tmx to json' do
65
+
66
+ IO.stub(:read).and_return(%q(
67
+ <?xml version="1.0" encoding="UTF-8"?>
68
+ <map version="1.0" orientation="orthogonal" width="37" height="15" tilewidth="25" tileheight="25">
69
+ <tileset firstgid="1" name="Sheet" tilewidth="25" tileheight="25">
70
+ <image source="tiles.png" width="200" height="25"/>
71
+ </tileset>
72
+ <tileset firstgid="9" name="Objects" tilewidth="25" tileheight="25">
73
+ <image source="items.png" width="250" height="50"/>
74
+ </tileset>
75
+ <layer name="Back" width="37" height="15" opacity="0.43">
76
+ <data encoding="csv">
77
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
78
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
79
+ 0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
80
+ 0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,6,2,2,2,5,0,0,0,0,0,0,8,8,0,
81
+ 0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,6,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
82
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
83
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,3,0,0,0,8,0,0,0,0,0,
84
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
85
+ 0,0,0,0,0,0,0,0,6,5,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
86
+ 0,0,0,0,0,6,2,2,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
87
+ 0,0,0,6,2,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,0,6,2,5,
88
+ 0,0,6,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,0,1,1,3,
89
+ 0,6,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,6,1,1,3,
90
+ 0,4,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,6,1,1,1,3,
91
+ 0,4,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,4,1,1,1,3
92
+ </data>
93
+ </layer>
94
+ <layer name="Front" width="37" height="15">
95
+ <data encoding="csv">
96
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
97
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
98
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
99
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
100
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
101
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,
102
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
103
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
104
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,
105
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
106
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
107
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,5,0,0,0,0,0,0,0,0,0,0,0,
108
+ 2,2,2,2,5,0,0,0,0,0,6,2,2,5,0,0,0,0,0,0,0,6,2,2,1,1,2,2,2,5,0,0,0,0,6,2,2,
109
+ 1,1,1,1,3,0,0,0,0,6,1,1,1,1,5,0,0,0,0,0,0,4,1,1,1,1,1,1,1,1,5,0,0,0,4,1,1,
110
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
111
+ </data>
112
+ </layer>
113
+ <layer name="Objects" width="37" height="15">
114
+ <data encoding="csv">
115
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
116
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
117
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
118
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
119
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,
120
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
121
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,
122
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,
123
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,
124
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,23,0,0,0,0,0,
125
+ 0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,
126
+ 0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,23,0,0,0,23,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,
127
+ 0,0,0,0,0,16,16,16,16,16,0,0,0,0,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,16,16,16,16,0,0,0,
128
+ 0,0,0,0,0,15,15,15,15,0,0,0,0,0,0,15,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,15,15,15,0,0,0,
129
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
130
+ </data>
131
+ </layer>
132
+ </map>
133
+ ))
134
+
135
+ r = Entityjs::Compile.script_to_js('blap.tmx')
136
+
137
+ r.should_not match /map/
138
+ r.should match /"\$":\[\[0/
139
+ end
140
+
141
+ it 'should tmx should convert to json' do
142
+
143
+ data = %q(<?xml version="1.0" encoding="UTF-8"?>
144
+ <map version="1.0" orientation="orthogonal" width="40" height="20" tilewidth="25" tileheight="25">
145
+ <tileset firstgid="1" name="tiles" tilewidth="25" tileheight="25">
146
+ <image source="../images/tiles.png" width="200" height="25"/>
147
+ </tileset>
148
+ <layer name="Tile Layer 1" width="40" height="20">
149
+ <data encoding="csv">
150
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
151
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
152
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
153
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
154
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
155
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
156
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
157
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
158
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
159
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
160
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
161
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
162
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
163
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
164
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
165
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
166
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
167
+ 2,2,2,2,2,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
168
+ 1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
169
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
170
+ </data>
171
+ </layer>
172
+ <objectgroup name="Hero" width="40" height="20">
173
+ <object name="hero" x="43" y="356"/>
174
+ </objectgroup>
175
+ </map>)
176
+
177
+
178
+ r = Entityjs::Compile.script_to_js('level1.tmx', data)
179
+
180
+ r.should_not match /map/
181
+ r.should match /"\$":\[\[0/
182
+ end
183
+
184
+ it 'should return object for invalid xml' do
185
+ xml = '<sdf>'
186
+
187
+ lambda {
188
+ Entityjs::Compile.xml_to_json('sdf.xml', xml)
189
+ }.should raise_error
190
+ end
191
+
192
+ it 'should return json from invalid tmx' do
193
+ tmx = "<root><bob>10</bob></root>"
194
+
195
+ Entityjs::Compile.to_json('.tmx', tmx).should == '{"bob":{"$":10}}'
196
+ end
197
+
198
+ it 'should convert blank tmx to json' do
199
+ tmx = ''
200
+
201
+ Entityjs::Compile.to_json('.xml', tmx).should == '{}'
202
+ end
203
+
204
+ end
@@ -20,13 +20,17 @@ describe 'dirc' do
20
20
  end
21
21
 
22
22
  it 'should return script urls' do
23
- Entityjs::Dirc.stub(:find_scripts).and_return(['asdfsdf/scripts/asdf.js', 'sfhs/scripts/sdf.js'])
23
+ Dir.stub(:'[]').and_return(['asdfsdf/scripts/asdf.js', 'sfhs/scripts/sdf.js', 'asdf/scripts/sdf.json', 'asdf/scripts/sdf.tmx'])
24
24
 
25
- Entityjs::Dirc.find_scripts_url.should be_instance_of Array
25
+ scripts = Entityjs::Dirc.find_scripts_url
26
+ scripts.should be_instance_of Array
27
+
28
+ scripts.last.should match /\.tmx/
29
+ scripts[-2].should match /\.json/
26
30
  end
27
31
 
28
32
  it 'should ignore and order game scripts' do
29
- Entityjs::Dirc.stub(:find_scripts).and_return(['asdfsdf/scripts/second.js', 'sfhs/scripts/first.js',
33
+ Dir.stub(:'[]').and_return(['asdfsdf/scripts/second.js', 'sfhs/scripts/first.js',
30
34
  'sdf/scripts/kill.js','sdf/scripts/kill2.js'])
31
35
 
32
36
  out = Entityjs::Dirc.find_scripts_url(['kill'], ['first'])
@@ -55,7 +59,7 @@ describe 'dirc' do
55
59
  end
56
60
 
57
61
  it 'should ignore entity scripts' do
58
- Entityjs::Dirc.stub(:find_entity_src).and_return(['asdfsdf/src/first.js', 'sfhs/src/ignore.js', 'sdfds/src/ignore2.js'])
62
+ Dir.stub(:'[]').and_return(['asdfsdf/src/first.js', 'sfhs/src/ignore.js', 'sdfds/src/ignore2.js'])
59
63
 
60
64
  out = Entityjs::Dirc.find_entity_src_url(['ignore', 'ignore2'])
61
65
 
@@ -0,0 +1,59 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Page' do
4
+
5
+ before do
6
+ setup_mygame
7
+ end
8
+
9
+ after(:all) do
10
+ teardown_mygame
11
+ end
12
+
13
+ it 'should render play' do
14
+ html = Entityjs::Page.render_play
15
+
16
+ html.should be_instance_of String
17
+ end
18
+
19
+ it 'should render tests' do
20
+
21
+ test = Entityjs::Page.render_tests
22
+
23
+ test.should be_instance_of String
24
+ end
25
+
26
+ it 'should render entityjs src' do
27
+ src = Entityjs::Page.render_entityjs_src('core/re.js')
28
+
29
+ src.should be_instance_of String
30
+ end
31
+
32
+ it 'should render eunit' do
33
+ src = Entityjs::Page.render_eunit('qunit.js')
34
+
35
+ src.should be_instance_of String
36
+ end
37
+
38
+ it 'should be script' do
39
+ js = 'var test = 10;'
40
+ IO.stub(:read).and_return(js)
41
+
42
+ script = Entityjs::Page.render_script('blah.js')
43
+
44
+ script.should == js
45
+ end
46
+
47
+ it 'should render coffee script' do
48
+ coffee = 'square = (x) -> x * x'
49
+
50
+ #causes v8 to crash
51
+ #IO.stub(:read).and_return(coffee)
52
+ Entityjs::Compile.stub(:read_contents).and_return(coffee)
53
+
54
+ js = Entityjs::Page.render_script('blah.coffee')
55
+
56
+ js.should == "var square;\n\nsquare = function(x) {\n return x * x;\n};\n"
57
+ end
58
+
59
+ end
@@ -4,8 +4,6 @@ def factory(type)
4
4
  when :assets
5
5
 
6
6
  files = []
7
-
8
- files.push 'assets/levels/bob.json'
9
7
  #files.push 'assets/levels/bob.xml'
10
8
  files.push 'assets/images/yep.png'
11
9
  files.push 'assets/images/bdd.png'
data/src/core/entity.js CHANGED
@@ -47,11 +47,6 @@
47
47
 
48
48
  p.id = '';
49
49
 
50
- p.addComp = function(c){
51
- re.log('AddComp deprecated use comp')
52
- this.comp(c);
53
- };
54
-
55
50
  p.comp = function(com){
56
51
 
57
52
  this._re_comp(com);
@@ -118,6 +113,7 @@
118
113
  c.trigger('dispose', this);
119
114
 
120
115
  }
116
+ return this;
121
117
  };
122
118
 
123
119
  /*
@@ -438,10 +434,6 @@
438
434
  return this;
439
435
  };
440
436
 
441
- p.extend = function(){
442
- throw 'Deprecated use attr'
443
- };
444
-
445
437
  p.attr = function(obj, value){
446
438
 
447
439
  if(re.is(obj, 'object')){
@@ -466,15 +458,6 @@
466
458
  return this;
467
459
  };
468
460
 
469
- p.inherit = function(){
470
-
471
- throw 'Deprecated use def'
472
- }
473
-
474
- p.defaults = function(){
475
- throw 'Deprecated use def'
476
- }
477
-
478
461
  p.def = function(obj, value){
479
462
 
480
463
  if(re.is(obj , 'object')){
@@ -510,6 +493,9 @@
510
493
 
511
494
  this.trigger('dispose');
512
495
 
496
+ //remove all events
497
+ this.off();
498
+
513
499
  return this;
514
500
  }
515
501
 
data/src/core/query.js CHANGED
@@ -167,7 +167,7 @@
167
167
 
168
168
  while(++i < l && (e = this[i]) && m.call(e, i, l) !== false);
169
169
 
170
- return this;
170
+ return this;
171
171
  }
172
172
 
173
173
  /*