Module: GameboxSpecHelpers::ClassMethods
- Defined in:
- lib/gamebox/spec/helper.rb
Instance Method Summary (collapse)
- - (Object) inject_mocks(*mock_names_array)
- - (Object) subjectify_actor(actor_type)
- - (Object) subjectify_actor_view(view_name)
- - (Object) subjectify_behavior(behavior_name)
Instance Method Details
- (Object) inject_mocks(*mock_names_array)
17 18 19 20 |
# File 'lib/gamebox/spec/helper.rb', line 17 def inject_mocks(*mock_names_array) before { @_mocks_created = create_mocks(*mock_names_array) } subject { described_class.new @_mocks_created } end |
- (Object) subjectify_actor(actor_type)
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/gamebox/spec/helper.rb', line 70 def subjectify_actor(actor_type) actor_definition = Actor.definitions[actor_type] before { @_mocks_created = create_mocks *Actor.object_definition.component_names } subject { Actor.new(@_mocks_created).tap do |actor| actor_definition.behaviors.each do |behavior| beh_opts = {} beh_key = behavior if behavior.is_a?(Hash) beh_opts = behavior.values.first beh_key = behavior.keys.first end actor_definition.attributes.each do |attr| actor.has_attributes attr end actor.add_behavior beh_key, beh_opts end end } end |
- (Object) subjectify_actor_view(view_name)
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/gamebox/spec/helper.rb', line 97 def subjectify_actor_view(view_name) view_definition = ActorView.definitions[view_name] before { reqs = view_definition.required_injections || [] @_mocks_created = create_mocks( *ActorView.object_definition.component_names + reqs) @_mocks_created[:actor] = evented_stub(@_mocks_created[:actor]) } subject { ActorView.new(@_mocks_created).tap do |view| view.define_singleton_method :draw, &view_definition.draw_block if view_definition.draw_block if view_definition.setup_block view.define_singleton_method :setup, &view_definition.setup_block view.configure end end } end |
- (Object) subjectify_behavior(behavior_name)
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/gamebox/spec/helper.rb', line 22 def subjectify_behavior(behavior_name) before { @_beh_mock_names = Behavior.object_definition.component_names @actor = evented_stub(mock("actor_for_#{behavior_name}")) @_mocks_created = create_mocks *(@_beh_mock_names - [:actor]) @_mocks_created[:actor] = @actor @behavior_definition = Behavior.definitions[behavior_name] reqs = @behavior_definition.required_injections || [] reqs -= @_beh_mock_names @_req_mocks = create_mocks(*reqs) } let (:opts) { {} } subject { # TODO so much duplication here from the *Factories Behavior.new(@_mocks_created).tap do |behavior| @_req_mocks.keys.each do |req| object = @_req_mocks[req] behavior.define_singleton_method req do components[req] end components = behavior.send :components components[req] = object end helpers = @behavior_definition.helpers_block if helpers helpers_module = Module.new &helpers behavior.extend helpers_module end behavior.define_singleton_method :react_to, @behavior_definition.react_to_block if @behavior_definition.react_to_block # TODO not sure the right way to mock this out # deps = @behavior_definition.required_behaviors # if deps # deps.each do |beh| # _add_behavior actor, beh unless actor.has_behavior?(beh) # end # end behavior.configure(opts) behavior.instance_eval &@behavior_definition.setup_block if @behavior_definition.setup_block end } end |