OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
[pettanr/pettanr.git] / lib / manifest / model / association / has_one.rb
1 module Manifest
2   module ModelModule
3     module AssociationModule
4       class HasOne
5         attr :association, :has_one_name, :has_one_manifest, 
6           :model_name, :foreign_key
7         def initialize association, has_one_name, has_one_manifest
8           @association = association
9           @has_one_name = has_one_name
10           @has_one_manifest = has_one_manifest
11           self.set_default
12           self.init
13         end
14         
15         def set_default
16           @has_one_manifest['model_name'] ||= @has_one_name
17         end
18         
19         def init
20           @model_name = @has_one_manifest['model_name']
21           raise "undefined foreign_key for models > #{@association.model.model_name} > associations > has_one > #{@has_one_name}\n" unless @has_one_manifest['foreign_key']
22           @foreign_key = @has_one_manifest['foreign_key']
23         end
24         
25         def model
26           ::Manifest.item_name_to_model @model_name
27         end
28         
29         def association_name
30           @association.association_name
31         end
32         
33       end
34       
35     end
36   end
37 end