Sha256: 3ea7ce29d7068ea57713849d66ca27343e7eb4bb1bd8ebac88b62bf44b355a80

Contents?: true

Size: 566 Bytes

Versions: 3

Compression:

Stored size: 566 Bytes

Contents

module Phlexi
  module Table
    class WrappedObject
      attr_reader :unwrapped, :index

      delegate :field, to: :as_display

      def initialize(object, index:, display_class:)
        @unwrapped = object
        @index = index
        @display_class = display_class
      end

      def identifier
        @identifier ||= Phlexi::Field.object_primary_key(unwrapped) || (index + 1)
      end

      def value_of(key)
        @unwrapped.try(key)
      end

      def as_display
        @as_display ||= @display_class.new(unwrapped)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

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