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
@@ -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
-