entityjs 0.3.1 → 0.3.2

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.
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
  /*