Sha256: 57c95029115a179e79380bb0e1af6823deccbe703185e488a4691304b13f7c43

Contents?: true

Size: 1.23 KB

Versions: 2

Compression:

Stored size: 1.23 KB

Contents

module ForestAdminDatasourceToolkit
  class Collection < Components::Contracts::CollectionContract
    attr_accessor :fields, :segments

    attr_reader :actions,
                :charts,
                :datasource,
                :name,
                :schema,
                :native_driver

    attr_writer :searchable,
                :countable

    def initialize(datasource, name, native_driver: nil)
      super()
      @datasource = datasource
      @name = name
      @native_driver = native_driver
      @fields = {}
      @schema = {}
      @fields = {}
      @actions = {}
      @segments = {}
      @charts = {}
      @searchable = false
      @countable = true
    end

    def is_countable?
      @countable
    end

    def is_searchable?
      @searchable
    end

    def add_field(name, field)
      raise Exceptions::ForestException, "Field #{name} already defined in collection" if @fields.key?(name)

      @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
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
forest_admin_datasource_toolkit-1.0.0.pre.beta.23 lib/forest_admin_datasource_toolkit/collection.rb
forest_admin_datasource_toolkit-1.0.0.pre.beta.22 lib/forest_admin_datasource_toolkit/collection.rb