ManifestBase.require_modules "local_manifest/profiler/",
- %w|list association|
+ %w|column extend_setting list association|
module LocalManifest
class Profiler < ManifestBase::Base
include ProfilerModule
- attr :column_names, :lists, :associations
+ attr :columns, :column_names, :extend_settings, :lists, :associations
def set_default
super
+ @json['columns'] ||= {}
@json['column_names'] ||= []
+ @json['extend_settings'] ||= {}
@json['lists'] ||= {}
@json['associations'] ||= {}
+ # supply column configures
+ @json['column_names'] = ['id'] + @json['column_names'] + ['created_at', 'updated_at']
+ @json['columns']['created_at'] = {'type' => 'date'}
+ @json['columns']['updated_at'] = {'type' => 'date'}
+ @json['column_names'].each do |column_name|
+ @json['columns'][column_name] = {} unless @json['columns'][column_name]
+ end
end
def init
super
- @column_names = ['id'] + @json['column_names'] + ['created_at', 'updated_at']
- @lists = ManifestBase.load_type_name_args self, @json, 'lists', List
+ @columns = ManifestBase.load_type_name_args self, @json, 'columns', ColumnFactory
+ @column_names = @json['column_names']
+ @extend_settings = ManifestBase.load_name_values self, @json, 'extend_settings', ExtendSetting
+ @lists = ManifestBase.load_name_values self, @json, 'lists', List
@associations = ManifestBase.load_value self, @json, 'associations', Association
end