Class: Freightrain::AutoStubber
- Inherits:
-
Object
- Object
- Freightrain::AutoStubber
- Includes:
- Mocha::API
- Defined in:
- lib/freightrain-dev/auto_stubber.rb
Instance Method Summary collapse
- #stub_regions(region_host) ⇒ Object
- #stub_service(name) ⇒ Object
- #stub_services(service_host) ⇒ Object
-
#stub_signals(signal_host) ⇒ Object
semi-private API.
- #stub_view(viewmodel) ⇒ Object
- #stub_viewmodel(name) ⇒ Object
Instance Method Details
#stub_regions(region_host) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/freightrain-dev/auto_stubber.rb', line 22 def stub_regions(region_host) stub_regions = {} region_names = [] regions = region_host.class.instance_variable_get(:@regions) region_names = regions.keys if regions region_names.each do |region_name| stub_regions[region_name] = stub_everything region_host.class.send(:define_method, region_name) do return instance_variable_get(:@regions)[region_name] end end region_host.instance_variable_set(:@regions, stub_regions) region_host.class.send(:define_method, :should_change_region) do |region_name, viewmodel_name| return region_host.expects(:change_region).with(region_name, viewmodel_name) end end |
#stub_service(name) ⇒ Object
70 71 72 73 74 75 76 |
# File 'lib/freightrain-dev/auto_stubber.rb', line 70 def stub_service(name) service_name = "#{name}_service" service = Freightrain[service_name.to_sym] stub_services(service) stub_signals(service) return service end |
#stub_services(service_host) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/freightrain-dev/auto_stubber.rb', line 39 def stub_services(service_host) service_names = [] services = service_host.class.instance_variable_get(:@services) service_names = services.keys if services service_names.each do |service| service_stub = stub_everything service_host.instance_variable_set("@#{service}", service_stub) service_host.class.send(:define_method, service) do return instance_variable_get("@#{service}") end end end |
#stub_signals(signal_host) ⇒ Object
semi-private API
8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/freightrain-dev/auto_stubber.rb', line 8 def stub_signals(signal_host) stub_signals = {} signal_names = [] signals = signal_host.class.instance_variable_get(:@signals) signal_names = signals.keys if signals signal_names.each do |signal_name| stub_signals[signal_name] = stub_everything end signal_host.instance_variable_set(:@signals, stub_signals) signal_host.class.send(:define_method, :should_fire) do |signal_name| return instance_variable_get(:@signals)[signal_name].expects(:fire) end end |
#stub_view(viewmodel) ⇒ Object
52 53 54 55 56 57 |
# File 'lib/freightrain-dev/auto_stubber.rb', line 52 def stub_view(viewmodel) viewmodel.instance_variable_set(:@view, stub_everything) viewmodel.class.send(:define_method, "view") do return instance_variable_get(:@view) end end |
#stub_viewmodel(name) ⇒ Object
59 60 61 62 63 64 65 66 67 68 |
# File 'lib/freightrain-dev/auto_stubber.rb', line 59 def stub_viewmodel(name) viewmodel_name = "#{name}_view_model" viewmodel = Freightrain[viewmodel_name.to_sym] viewmodel.class.send(:define_method, :bootstrap) { } stub_services(viewmodel) stub_signals(viewmodel) stub_regions(viewmodel) stub_view(viewmodel) return viewmodel end |