OSDN Git Service

add bucket
[pettanr/pettanr.git] / lib / locmare / bucket.rb
1 require_dependency "locmare/bucket/member"
2 require_dependency "locmare/bucket/field_name"
3
4 module Locmare
5   class Bucket
6     include BucketModule
7     attr :manifest, :bucket_name, :item, :mounted, :submit, :operators, :template_dir, 
8       :fields
9     def initialize bucket_name, item, mounted, submit, operators
10       @bucket_name = bucket_name
11       @item = item
12       @mounted = mounted
13       @submit = submit
14       @operators = operators
15       
16       @item.boosts 'post'
17       self.init_fields
18       @manifest = LocalManifest.manifest.forms[@form_name]
19       @template_dir = 'templates/r/form/'
20       @fields = {}
21     end
22     
23     def init_fields
24       @manifest.each_field do |field_name, field_manifest| 
25         if boost_name = @item.class.find_boost_name(field_name)
26           extend_form_name = @item.boosters[boost_name].model_name
27           extend_item = @item.boosters[boost_name].extend_item
28           @fields[field_name] = ExtendForm.new self, extend_form_name, extend_item, @mounted, @operators, field_name
29         else
30           @fields[field_name] = Field.new self, field_name, field_manifest
31         end
32       end
33     end
34     
35     def each_field
36       @manifest.field_names.each do |field_name| 
37         yield field_name, @fields[field_name]
38       end
39     end
40     
41     def template_file_name
42       "form"
43     end
44     
45     def template_name
46       self.template_dir + self.template_file_name
47     end
48     
49     def fields_template_name
50       self.template_dir + 'fields'
51     end
52     
53     def image_dir
54       '/images/'
55     end
56     
57     def submit_name
58       if @item.new_record?
59         @item.table_name + '.submit.new'
60       else
61         @item.table_name + '.submit.edit'
62       end
63     end
64     
65     def submit_template_dir
66       self.template_dir + 'submit/'
67     end
68     
69     def submit_template_name
70       if @submit
71         self.submit_template_dir + 'submit'
72       else
73         self.submit_template_dir + 'none'
74       end
75     end
76     
77   end
78   
79 end
80