Sha256: dae7b848b6ed667953fa48b45916fe30cb4c8a7e4da90adf95efad5b80e04b86

Contents?: true

Size: 798 Bytes

Versions: 3

Compression:

Stored size: 798 Bytes

Contents

# frozen_string_literal: true

module Phlexi
  module Table
    module Components
      class Base
        include Phlex::Helpers
        include Phlexi::Table::HTML::Behaviour

        attr_reader :key, :parent, :options

        delegate :sample, :wrapped_sample, to: :parent

        def initialize(key, parent, **options)
          @key = key
          @parent = parent
          @options = options

          build_attributes
        end

        def dom_id
          "#{parent.dom_id}_#{key}"
        end

        private

        def build_attributes
          @attributes = {
            class: tokens(
              type
            )
          }
        end

        def type
          options[:as] || wrapped_sample.field(key).inferred_field_type
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
phlexi-table-0.0.5 lib/phlexi/table/components/base.rb
phlexi-table-0.0.4 lib/phlexi/table/components/base.rb
phlexi-table-0.0.3 lib/phlexi/table/components/base.rb