OSDN Git Service

fix profiler extend system
[pettanr/pettanr.git] / lib / local_manifest / profiler.rb
1 ManifestBase.require_modules "local_manifest/profiler/", 
2   %w|column extend_setting list association|
3
4 module LocalManifest
5   class Profiler < ManifestBase::Base
6     include ProfilerModule
7     
8     attr :columns, :column_names, :extend_settings, :lists, :associations
9     
10     def set_default
11       super
12       @json['columns'] ||= {}
13       @json['column_names'] ||= []
14       @json['extend_settings'] ||= {}
15       @json['lists'] ||= {}
16       @json['associations'] ||= {}
17       # supply column configures
18       @json['column_names'] = ['id'] + @json['column_names'] + ['created_at', 'updated_at']
19       @json['columns']['created_at'] = {'type' => 'date'}
20       @json['columns']['updated_at'] = {'type' => 'date'}
21       @json['column_names'].each do |column_name|
22         @json['columns'][column_name] = {} unless @json['columns'][column_name]
23       end
24     end
25     
26     def init
27       super
28       @columns =  ManifestBase.load_type_name_args self, @json, 'columns', ColumnFactory
29       @column_names = @json['column_names']
30       @extend_settings = ManifestBase.load_name_values self, @json, 'extend_settings', ExtendSetting
31       @lists = ManifestBase.load_name_values self, @json, 'lists', List
32       @associations = ManifestBase.load_value self, @json, 'associations', Association
33     end
34     
35     def item_name
36       @name
37     end
38     
39     def each_column
40       @column_names
41     end
42     
43   end
44   
45 end
46