metro 0.3.3 → 0.3.4

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 (40) hide show
  1. data/changelog.md +8 -1
  2. data/lib/core_ext/class.rb +14 -0
  3. data/lib/metro.rb +1 -0
  4. data/lib/metro/events/event_data.rb +3 -4
  5. data/lib/metro/events/event_state_manager.rb +63 -0
  6. data/lib/metro/events/events.rb +3 -0
  7. data/lib/metro/events/hit_list.rb +4 -5
  8. data/lib/metro/events/unknown_sender.rb +1 -1
  9. data/lib/metro/models/model.rb +14 -25
  10. data/lib/metro/models/model_factory.rb +1 -1
  11. data/lib/metro/models/models.rb +62 -0
  12. data/lib/metro/models/properties/position_property.rb +1 -1
  13. data/lib/metro/models/ui/animated_sprite.rb +85 -0
  14. data/lib/metro/models/ui/border.rb +44 -18
  15. data/lib/metro/models/ui/fps.rb +1 -1
  16. data/lib/metro/models/ui/generic.rb +24 -3
  17. data/lib/metro/models/ui/model_label.rb +1 -1
  18. data/lib/metro/models/ui/model_labeler.rb +2 -2
  19. data/lib/metro/models/ui/rectangle.rb +1 -1
  20. data/lib/metro/models/ui/sprite.rb +79 -0
  21. data/lib/metro/models/ui/ui.rb +12 -0
  22. data/lib/metro/scene.rb +13 -61
  23. data/lib/metro/scenes.rb +11 -13
  24. data/lib/metro/transitions/edit_transition_scene.rb +2 -2
  25. data/lib/metro/units/calculation_validations.rb +74 -0
  26. data/lib/metro/units/dimensions.rb +11 -19
  27. data/lib/metro/units/point.rb +6 -22
  28. data/lib/metro/units/rectangle_bounds.rb +10 -6
  29. data/lib/metro/units/scale.rb +7 -0
  30. data/lib/metro/units/units.rb +1 -0
  31. data/lib/metro/version.rb +1 -1
  32. data/lib/metro/window.rb +7 -3
  33. data/lib/setup_handlers/reload_game_on_game_file_changes.rb +6 -6
  34. data/lib/templates/game/models/hero.rb +35 -6
  35. data/lib/templates/model.rb.tt +1 -1
  36. data/spec/core_ext/string_spec.rb +0 -20
  37. data/spec/metro/units/point_spec.rb +132 -0
  38. data/spec/setup_handlers/exit_if_dry_run_spec.rb +27 -0
  39. data/spec/setup_handlers/reload_game_on_game_file_changes_spec.rb +68 -0
  40. metadata +21 -9
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+
3
+ describe Metro::SetupHandlers::ReloadGameOnGameFileChanges do
4
+
5
+ let(:expected_filepaths) do
6
+ %w[ lib scenes models views assets ]
7
+ end
8
+
9
+ its(:watched_filepaths) { should eq expected_filepaths }
10
+
11
+
12
+ describe "#setup" do
13
+ context "when the game is not in debug mode" do
14
+ before do
15
+ Game.stub(:debug?).and_return(false)
16
+ end
17
+
18
+ let(:options) { mock('Options',packaged?: false) }
19
+
20
+ it "should not start the watcher" do
21
+ subject.should_not_receive(:start_watcher)
22
+ subject.setup(options)
23
+ end
24
+ end
25
+
26
+ context "when the options specify that it is being run in a package" do
27
+ before do
28
+ Game.stub(:debug?).and_return(true)
29
+ end
30
+
31
+ let(:options) { mock('Options',packaged?: true) }
32
+
33
+ it "should not start the watcher" do
34
+ subject.should_not_receive(:start_watcher)
35
+ subject.setup(options)
36
+ end
37
+ end
38
+
39
+ context "when the game is debug mode" do
40
+ before do
41
+ Game.stub(:debug?).and_return(true)
42
+ end
43
+
44
+ let(:options) { mock('Options',packaged?: false) }
45
+
46
+
47
+ it "should start the watcher" do
48
+ subject.should_receive(:start_watcher)
49
+ subject.setup(options)
50
+ end
51
+ end
52
+ end
53
+
54
+ describe "#reload_game_because_files_changed" do
55
+
56
+ before do
57
+ Metro.stub(:game_has_valid_code?).and_return(false)
58
+ end
59
+
60
+ let(:changed_files) { [ :new_file, :update_file, :deleted_file ] }
61
+
62
+ it "should not ask the current scene to reload if the code is invalid" do
63
+ Game.should_not_receive(:current_scene)
64
+ subject.reload_game_because_files_changed(changed_files)
65
+ end
66
+ end
67
+
68
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-29 00:00:00.000000000 Z
12
+ date: 2012-12-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: gosu
@@ -138,6 +138,7 @@ files:
138
138
  - lib/commands/generate_scene.rb
139
139
  - lib/commands/generate_view.rb
140
140
  - lib/commands/thor.rb
141
+ - lib/core_ext/class.rb
141
142
  - lib/core_ext/numeric.rb
142
143
  - lib/gosu_ext/color.rb
143
144
  - lib/gosu_ext/gosu_constants.rb
@@ -161,6 +162,8 @@ files:
161
162
  - lib/metro/events/event_dictionary.rb
162
163
  - lib/metro/events/event_factory.rb
163
164
  - lib/metro/events/event_relay.rb
165
+ - lib/metro/events/event_state_manager.rb
166
+ - lib/metro/events/events.rb
164
167
  - lib/metro/events/has_events.rb
165
168
  - lib/metro/events/hit_list.rb
166
169
  - lib/metro/events/unknown_sender.rb
@@ -175,6 +178,7 @@ files:
175
178
  - lib/metro/models/key_value_coding.rb
176
179
  - lib/metro/models/model.rb
177
180
  - lib/metro/models/model_factory.rb
181
+ - lib/metro/models/models.rb
178
182
  - lib/metro/models/properties/animation_property.rb
179
183
  - lib/metro/models/properties/array_property.rb
180
184
  - lib/metro/models/properties/boolean_property.rb
@@ -194,6 +198,7 @@ files:
194
198
  - lib/metro/models/properties/scale_property.rb
195
199
  - lib/metro/models/properties/song_property.rb
196
200
  - lib/metro/models/properties/text_property.rb
201
+ - lib/metro/models/ui/animated_sprite.rb
197
202
  - lib/metro/models/ui/border.rb
198
203
  - lib/metro/models/ui/fps.rb
199
204
  - lib/metro/models/ui/generic.rb
@@ -204,6 +209,8 @@ files:
204
209
  - lib/metro/models/ui/model_label.rb
205
210
  - lib/metro/models/ui/model_labeler.rb
206
211
  - lib/metro/models/ui/rectangle.rb
212
+ - lib/metro/models/ui/sprite.rb
213
+ - lib/metro/models/ui/ui.rb
207
214
  - lib/metro/parameters/command_line_args_parser.rb
208
215
  - lib/metro/parameters/options.rb
209
216
  - lib/metro/parameters/parameters.rb
@@ -217,6 +224,7 @@ files:
217
224
  - lib/metro/transitions/scene_transitions.rb
218
225
  - lib/metro/transitions/transition_scene.rb
219
226
  - lib/metro/units/bounds.rb
227
+ - lib/metro/units/calculation_validations.rb
220
228
  - lib/metro/units/dimensions.rb
221
229
  - lib/metro/units/point.rb
222
230
  - lib/metro/units/rectangle_bounds.rb
@@ -276,7 +284,10 @@ files:
276
284
  - spec/metro/scene_views/json_view_spec.rb
277
285
  - spec/metro/scene_views/yaml_view_spec.rb
278
286
  - spec/metro/scenes_spec.rb
287
+ - spec/metro/units/point_spec.rb
279
288
  - spec/metro/views/view_spec.rb
289
+ - spec/setup_handlers/exit_if_dry_run_spec.rb
290
+ - spec/setup_handlers/reload_game_on_game_file_changes_spec.rb
280
291
  - spec/spec_helper.rb
281
292
  homepage: https://github.com/burtlo/metro
282
293
  licenses:
@@ -284,13 +295,11 @@ licenses:
284
295
  post_install_message: ! " ______ ___ _____\n ___ |/ /_____ __ /_______________\n
285
296
  \ __ /|_/ / _ _ \\_ __/__ ___/_ __ \\\n _ / / / / __// /_ _ / /
286
297
  /_/ /\n /_/ /_/ \\___/ \\__/ /_/ \\____/\n\n Thank you for installing
287
- metro 0.3.3 / 2012-11-28.\n ---------------------------------------------------------------------\n
288
- \ Changes:\n \n * Edit Mode - actors within a scene can have their position
289
- edited\n and saved. Actors within the scene that have a valid bounds\n specified
290
- will appear within the scene with name and bounding box.\n * Dimensions can now
291
- be defined as strings\n * Game bounds and Game dimensions return objects of that
292
- type\n * `metr::ui::fps` added and has some shortcut placements settings\n \n\n
293
- \ ---------------------------------------------------------------------\n"
298
+ metro 0.3.4 / 2012-12-14.\n ---------------------------------------------------------------------\n
299
+ \ Changes:\n \n * `metro::ui::sprite` and `metro::ui::animated_sprite` model
300
+ classes\n to make it easier to take care of all the basic model attributes.\n
301
+ \ * Event Management changed in the background. The API remains the\n same.\n
302
+ \ \n\n ---------------------------------------------------------------------\n"
294
303
  rdoc_options: []
295
304
  require_paths:
296
305
  - lib
@@ -334,6 +343,9 @@ test_files:
334
343
  - spec/metro/scene_views/json_view_spec.rb
335
344
  - spec/metro/scene_views/yaml_view_spec.rb
336
345
  - spec/metro/scenes_spec.rb
346
+ - spec/metro/units/point_spec.rb
337
347
  - spec/metro/views/view_spec.rb
348
+ - spec/setup_handlers/exit_if_dry_run_spec.rb
349
+ - spec/setup_handlers/reload_game_on_game_file_changes_spec.rb
338
350
  - spec/spec_helper.rb
339
351
  has_rdoc: