freightrain 0.6.2 → 0.6.3
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.
data/Rakefile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
|
2
|
-
|
2
|
+
require_all File.join(File.dirname(__FILE__), 'testhelpers')
|
@@ -0,0 +1,81 @@
|
|
1
|
+
|
2
|
+
require 'mocha/api'
|
3
|
+
|
4
|
+
module Freightrain
|
5
|
+
|
6
|
+
class AutoStubber
|
7
|
+
include Mocha::API
|
8
|
+
|
9
|
+
#semi-private API
|
10
|
+
def stub_signals(signal_host)
|
11
|
+
stub_signals = {}
|
12
|
+
signal_names = []
|
13
|
+
signals = signal_host.class.instance_variable_get(:@signals)
|
14
|
+
signal_names = signals.keys if signals
|
15
|
+
signal_names.each do |signal_name|
|
16
|
+
stub_signals[signal_name] = stub_everything
|
17
|
+
end
|
18
|
+
signal_host.instance_variable_set(:@signals, stub_signals)
|
19
|
+
signal_host.class.send(:define_method, :should_fire) do |signal_name|
|
20
|
+
return instance_variable_get(:@signals)[signal_name].expects(:fire)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def stub_regions(region_host)
|
25
|
+
stub_regions = {}
|
26
|
+
region_names = []
|
27
|
+
regions = region_host.class.instance_variable_get(:@regions)
|
28
|
+
region_names = regions.keys if regions
|
29
|
+
region_names.each do |region_name|
|
30
|
+
stub_regions[region_name] = stub_everything
|
31
|
+
region_host.class.send(:define_method, region_name) do
|
32
|
+
return instance_variable_get(:@regions)[region_name]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
region_host.instance_variable_set(:@regions, stub_regions)
|
36
|
+
region_host.class.send(:define_method, :should_change_region) do |region_name, viewmodel_name|
|
37
|
+
return region_host.expects(:change_region).with(region_name, viewmodel_name)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def stub_services(service_host)
|
42
|
+
service_names = []
|
43
|
+
services = service_host.class.instance_variable_get(:@services)
|
44
|
+
service_names = services.keys if services
|
45
|
+
service_names.each do |service|
|
46
|
+
service_stub = stub_everything
|
47
|
+
service_host.instance_variable_set("@#{service}", service_stub)
|
48
|
+
service_host.class.send(:define_method, service) do
|
49
|
+
return instance_variable_get("@#{service}")
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def stub_view(viewmodel)
|
55
|
+
viewmodel.instance_variable_set(:@view, stub_everything)
|
56
|
+
viewmodel.class.send(:define_method, "view") do
|
57
|
+
return instance_variable_get(:@view)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def stub_viewmodel(name)
|
62
|
+
viewmodel_name = "#{name}_view_model"
|
63
|
+
viewmodel = Freightrain[viewmodel_name.to_sym]
|
64
|
+
viewmodel.class.send(:define_method, :bootstrap) { }
|
65
|
+
stub_services(viewmodel)
|
66
|
+
stub_signals(viewmodel)
|
67
|
+
stub_regions(viewmodel)
|
68
|
+
stub_view(viewmodel)
|
69
|
+
return viewmodel
|
70
|
+
end
|
71
|
+
|
72
|
+
def stub_service(name)
|
73
|
+
service_name = "#{name}_service"
|
74
|
+
service = Freightrain[service_name.to_sym]
|
75
|
+
stub_services(service)
|
76
|
+
stub_signals(service)
|
77
|
+
return service
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: freightrain
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrea Dallera
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-04-
|
12
|
+
date: 2010-04-11 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -86,7 +86,7 @@ files:
|
|
86
86
|
- lib/freightrain/views/interface_builder.rb
|
87
87
|
- lib/freightrain/views/freight_view.rb
|
88
88
|
- lib/freightrain/views/callback_wrapper.rb
|
89
|
-
- lib/freightrain/testhelpers/
|
89
|
+
- lib/freightrain/testhelpers/auto_stubber.rb
|
90
90
|
- lib/freightrain/string_patch.rb
|
91
91
|
- lib/freightrain/regions/region_host.rb
|
92
92
|
- lib/freightrain/regions/freight_region.rb
|
@@ -1,22 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'rubygems'
|
3
|
-
require 'freightrain'
|
4
|
-
|
5
|
-
|
6
|
-
module Freightrain
|
7
|
-
|
8
|
-
def inject(name, object)
|
9
|
-
@registry ||= Needle::Registry.new
|
10
|
-
@registry.register(name) { object }
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
class Object
|
16
|
-
|
17
|
-
def inject_service(name, object)
|
18
|
-
Freightrain.inject(name.to_s + "_service", object)
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
22
|
-
|