4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/freightrain/regions/region_host.rb', line 4
def self.extended(klass)
klass.class_eval do
def build_regions
region_definitions = self.class.instance_variable_get(:@regions)
region_definitions ||= []
@regions = {}
region_definitions.each do |name, options|
@regions[name] = FreightRegion.new(name, options)
self.class.send(:define_method, name) do
return @regions[name].viewmodel
end
@regions[name].connect_to(self)
end
end
def change_region(region_name, viewmodel_name)
region = FreightRegion.new(region_name, {:viewmodel => viewmodel_name})
region.connect_to(self)
region.on_show(@view)
@regions[region_name] = region
end
end
end
|