metro 0.1.4 → 0.1.5

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 (42) hide show
  1. data/changelog.md +9 -0
  2. data/lib/commands/generate_model.rb +2 -2
  3. data/lib/commands/generate_scene.rb +2 -2
  4. data/lib/commands/generate_view.rb +1 -1
  5. data/lib/gosu_ext/color.rb +16 -2
  6. data/lib/metro.rb +50 -10
  7. data/lib/metro/events/event_data.rb +61 -0
  8. data/lib/metro/events/event_relay.rb +10 -3
  9. data/lib/metro/events/hit_list.rb +77 -0
  10. data/lib/metro/models/draws.rb +6 -1
  11. data/lib/metro/models/grid_drawer.rb +57 -0
  12. data/lib/metro/models/image.rb +18 -2
  13. data/lib/metro/models/label.rb +22 -6
  14. data/lib/metro/models/menu.rb +20 -0
  15. data/lib/metro/models/model.rb +47 -6
  16. data/lib/metro/models/model_factory.rb +2 -2
  17. data/lib/metro/models/rectangle_bounds.rb +28 -0
  18. data/lib/metro/scene.rb +46 -11
  19. data/lib/metro/scenes.rb +10 -9
  20. data/lib/metro/transitions/edit_transition_scene.rb +73 -0
  21. data/lib/metro/transitions/scene_transitions.rb +8 -2
  22. data/lib/metro/transitions/transition_scene.rb +2 -1
  23. data/lib/metro/version.rb +1 -1
  24. data/lib/metro/views/json_view.rb +60 -0
  25. data/lib/metro/{scene_view → views}/no_view.rb +12 -4
  26. data/lib/metro/views/parsers.rb +26 -0
  27. data/lib/metro/views/scene_view.rb +107 -0
  28. data/lib/metro/views/view.rb +125 -0
  29. data/lib/metro/views/writers.rb +28 -0
  30. data/lib/metro/views/yaml_view.rb +94 -0
  31. data/lib/metro/window.rb +19 -0
  32. data/metro.gemspec +1 -0
  33. data/spec/core_ext/string_spec.rb +13 -13
  34. data/spec/metro/scene_spec.rb +15 -0
  35. data/spec/metro/scene_views/json_view_spec.rb +27 -0
  36. data/spec/metro/scene_views/yaml_view_spec.rb +1 -1
  37. data/spec/metro/views/view_spec.rb +53 -0
  38. metadata +41 -11
  39. data/lib/core_ext/string.rb +0 -15
  40. data/lib/metro/scene_view/json_view.rb +0 -41
  41. data/lib/metro/scene_view/scene_view.rb +0 -83
  42. data/lib/metro/scene_view/yaml_view.rb +0 -45
@@ -1,45 +0,0 @@
1
- require 'yaml'
2
-
3
- module Metro
4
- module SceneView
5
-
6
- class YAMLView
7
-
8
- #
9
- # Determine if a view exists for this specified format
10
- #
11
- # @param [String] view_name the name of the view to find
12
- # @return a true if the yaml view exists and false if it does not exist.
13
- #
14
- def self.exists?(view_name)
15
- yaml_view_names(view_name).find { |view_name| File.exists? view_name }
16
- end
17
-
18
- #
19
- # Parse the contents of the view given the name.
20
- #
21
- # @param [String] view_name the name of the view to read
22
- # @return a Hash that contains the contents of the view.
23
- #
24
- def self.parse(view_name)
25
- YAML.load File.read yaml_view_name(view_name)
26
- end
27
-
28
- #
29
- # A helper method to get the view file.
30
- #
31
- def self.yaml_view_name(view_name)
32
- yaml_view_names(view_name).find { |view_name| File.exists? view_name }
33
- end
34
-
35
- #
36
- # A helper method to generate the name of the yaml view file. In this case
37
- # it is the view name with the suffix `.yaml` or `.yml`.
38
- #
39
- def self.yaml_view_names(view_name)
40
- File.extname(view_name) == "" ? [ "#{view_name}.yaml", "#{view_name}.yml" ] : [ view_name ]
41
- end
42
- end
43
-
44
- end
45
- end