1 ManifestBase.require_modules "local_manifest/profiler/",
2 %w|column extend_setting list association|
5 class Profiler < ManifestBase::Base
8 attr :columns, :column_names, :extend_settings, :lists, :associations
12 @json['columns'] ||= {}
13 @json['column_names'] ||= []
14 @json['extend_settings'] ||= {}
16 @json['associations'] ||= {}
17 # supply column configures
18 @json['column_names'].unshift 'id' unless @json['column_names'].include?('id')
19 @json['column_names'].push 'created_at' unless @json['column_names'].include?('created_at')
20 @json['column_names'].push 'updated_at' unless @json['column_names'].include?('updated_at')
21 @json['columns']['created_at'] = {'type' => 'date'}
22 @json['columns']['updated_at'] = {'type' => 'date'}
23 @json['column_names'].each do |column_name|
24 @json['columns'][column_name] = {} unless @json['columns'][column_name]
30 @columns = ManifestBase.load_type_name_args self, @json, 'columns', ColumnFactory
31 @column_names = @json['column_names']
32 @extend_settings = ManifestBase.load_name_values self, @json, 'extend_settings', ExtendSetting
33 @lists = ManifestBase.load_name_values self, @json, 'lists', List
34 @associations = ManifestBase.load_value self, @json, 'associations', Association