class LocalManifest.Profiler extends ManifestBase.Base set_default: () -> super() @json['columns'] ||= {} @json['column_names'] ||= [] @json['extend_settings'] ||= {} @json['lists'] ||= {} @json['associations'] ||= {} # supply column configures @json['column_names'].unshift('id') if not @json['column_names'] in 'id' @json['column_names'].push('created_at') if not (@json['column_names'] in 'created_at') @json['column_names'].push('updated_at') if not (@json['column_names'] in 'updated_at') @json['columns']['created_at'] = {'type': 'date'} @json['columns']['updated_at'] = {'type': 'date'} c = @json['columns'] _.each @json['column_names'], (column_name) -> c[column_name] = {} if not c[column_name] init: () -> super() @columns = ManifestBase.load_type_name_args this, @json, 'columns', LocalManifest.ProfilerModule.ColumnFactory @column_names = @json['column_names'] @extend_settings = ManifestBase.load_name_values this, @json, 'extend_settings', LocalManifest.ProfilerModule.ExtendSetting @lists = ManifestBase.load_name_values this, @json, 'lists', LocalManifest.ProfilerModule.List @associations = ManifestBase.load_value this, @json, 'associations', LocalManifest.ProfilerModule.Association item_name: () -> @name each_column: () -> @column_names constructor: (manifest, name, json, module_name) -> super(manifest, name, json, module_name) class LocalManifest.ProfilerModule