Sha256: 33ad3c5842bd1bab11807ee7a36bf9979b314df4a96aaf6d6b76d539964319d0

Contents?: true

Size: 863 Bytes

Versions: 4

Compression:

Stored size: 863 Bytes

Contents

# frozen_string_literal: true

#
# Copyright (c) 2019-present, Blue Marble Payroll, LLC
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
#

module Proforma
  # A rendering engine will output one or more of these objects. It is the final realization
  # of the compilation + rendering process.
  class Document
    acts_as_hashable

    attr_reader :contents, :extension, :title

    def initialize(contents: nil, extension: '', title: '')
      @contents   = contents
      @extension  = extension
      @title      = title

      freeze
    end

    def eql?(other)
      return false unless other.is_a?(self.class)

      contents == other.contents &&
        extension == other.extension &&
        title == other.title
    end

    def ==(other)
      eql?(other)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
proforma-1.0.2 lib/proforma/document.rb
proforma-1.0.1 lib/proforma/document.rb
proforma-1.0.0 lib/proforma/document.rb
proforma-1.0.0.pre.alpha lib/proforma/document.rb