OSDN Git Service

merge
[pettanr/pettanr.git] / lib / manifest / filer.rb
1 require_dependency "manifest/filer/symbol"
2 require_dependency "manifest/filer/caption"
3 require_dependency "manifest/filer/summary"
4 require_dependency "manifest/filer/icon"
5 require_dependency "manifest/filer/date"
6 require_dependency "manifest/filer/edit"
7 module Manifest
8   class Filer
9     
10     def self.manager manifest, my_manifests
11       filers = {}
12       my_manifests.each {|item_name, filer_manifest|
13         filers[item_name] = self.new(manifest, item_name, filer_manifest)
14       }
15       filers
16     end
17     
18     attr :filer_manifest, :item_name, :manifest, :item_class,
19       :symbol, :caption, :summary, :icon, :date, :edit
20     def initialize manifest, item_name, filer_manifest
21       @manifest = manifest
22       @item_name = item_name
23       @filer_manifest = filer_manifest
24       @item_class = ::Manifest.item_name_to_model @item_name
25       self.set_default
26       self.init
27     end
28     
29     def set_default
30       @filer_manifest['symbol'] ||= {}
31       @filer_manifest['caption'] ||= {}
32       @filer_manifest['summary'] ||= {}
33       @filer_manifest['icon'] ||= {}
34       @filer_manifest['date'] ||= {}
35       @filer_manifest['edit'] ||= {}
36     end
37     
38     def init
39       @symbol = FilerModule::SymbolFactory.factory self, @filer_manifest['symbol']
40       @caption = FilerModule::CaptionFactory.factory self, @filer_manifest['caption']
41       @summary = FilerModule::SummaryFactory.factory self, @filer_manifest['summary']
42       @icon = FilerModule::IconFactory.factory self, @filer_manifest['icon']
43       @date = FilerModule::DateFactory.factory self, @filer_manifest['date']
44       @edit = FilerModule::EditFactory.factory self, @filer_manifest['edit']
45     end
46     
47     def filer_name
48       @item_name
49     end
50     
51   end
52   
53 end
54