Module: RegionHost

Included in:
Freightrain::FreightViewModel
Defined in:
lib/freightrain/regions/region_host.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(klass) ⇒ Object



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

    #TODO: too much stuff here
    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

Instance Method Details

#region(name, options = {}) ⇒ Object



33
34
35
36
# File 'lib/freightrain/regions/region_host.rb', line 33

def region(name, options = {})
  @regions ||= {}
  @regions[name.to_sym] = options
end