freightrain 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ require 'rake/testtask'
9
9
 
10
10
  spec = Gem::Specification.new do |s|
11
11
  s.name = 'freightrain'
12
- s.version = '0.6.2'
12
+ s.version = '0.6.3'
13
13
  s.add_dependency('require_all', '>= 1.1.0')
14
14
  s.add_dependency('needle', '>= 1.3.0')
15
15
  s.has_rdoc = false
@@ -24,4 +24,8 @@ class String
24
24
  return nil if self.to_convention.empty?
25
25
  return self.to_convention.to_sym
26
26
  end
27
+
28
+ def from_convention
29
+ return self.capitalize.gsub(/_./) { |s| s.delete("_").capitalize }
30
+ end
27
31
  end
@@ -1,2 +1,2 @@
1
1
 
2
- require File.dirname(__FILE__) + '/testhelpers/container_helpers.rb'
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.2
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-05 00:00:00 +02:00
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/container_helpers.rb
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
-