Sha256: 73a64323d6d564f9ec43d45bb99c5820cfcc980727d97acc8b630804e2ba45b2

Contents?: true

Size: 1.1 KB

Versions: 5

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

module Katalyst
  module Tables
    module Collection
      module Core # :nodoc:
        extend ActiveSupport::Concern

        include ActiveModel::Model
        include ActiveModel::Attributes
        include ActiveModel::Dirty
        include ActiveSupport::Configurable

        include HasParams
        include Reducers

        class_methods do
          def permitted_params
            _default_attributes.to_h.each_with_object([]) do |(k, v), h|
              h << case v
                   when Array
                     { k => [] }
                   else
                     k
                   end
            end
          end
        end

        included do
          attr_accessor :items

          delegate :each, :count, :empty?, to: :items, allow_nil: true
        end

        def initialize(**options)
          super

          clear_changes_information
        end

        def apply(items)
          @items = items
          reducers.build do |_|
            filter
            self
          end.call(self)
          self
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
katalyst-tables-3.0.0.beta1 app/models/concerns/katalyst/tables/collection/core.rb
katalyst-tables-2.6.0 app/models/concerns/katalyst/tables/collection/core.rb
katalyst-tables-2.6.0.beta app/models/concerns/katalyst/tables/collection/core.rb
katalyst-tables-2.5.0 app/models/concerns/katalyst/tables/collection/core.rb
katalyst-tables-2.4.0 app/models/concerns/katalyst/tables/collection/core.rb