Sha256: aa51ba666da12339df8c248ed6cbda3171d094ed5a0ebb9fdd80c8c08fb4e5ae
Contents?: true
Size: 1.38 KB
Versions: 3
Compression:
Stored size: 1.38 KB
Contents
module ForestAdminDatasourceToolkit class Collection < Components::Contracts::CollectionContract attr_reader :actions, :datasource, :name, :schema, :native_driver def initialize(datasource, name, native_driver: nil) super() @datasource = datasource @name = name @native_driver = native_driver @schema = { fields: {}, countable: false, searchable: false, charts: [], segments: {} } @actions = {} end def enable_count schema[:countable] = true end def is_countable? schema[:countable] end def is_searchable? schema[:searchable] end def fields schema[:fields] end def add_field(name, field) raise Exceptions::ForestException, "Field #{name} already defined in collection" if @schema[:fields].key?(name) schema[:fields][name] = field end def add_fields(fields) fields.each do |name, field| add_field(name, field) end end def add_action(name, action) raise Exceptions::ForestException, "Action #{name} already defined in collection" if @actions[key] @actions[name] = action end def render_chart(_caller, name, _record_id) raise Exceptions::ForestException, "Chart #{name} is not implemented." end end end
Version data entries
3 entries across 3 versions & 1 rubygems