Sha256: 631fd77d37873f214fb7a4ca258baf4943a623bdb2fd40438fd7bab8662fcab1

Contents?: true

Size: 852 Bytes

Versions: 5

Compression:

Stored size: 852 Bytes

Contents

module Tc211
  module Termbase
    module Glossarist
      class ManagedConcept < ::Glossarist::ManagedConcept
        attr_accessor :status

        def uuid
          @uuid ||= ::Glossarist::Utilities::UUID.uuid_v5(
            ::Glossarist::Utilities::UUID::OID_NAMESPACE,
            to_h(only_data: true).to_yaml,
          )
        end

        def to_h(only_data: false)
          data_hash = super()
          return data_hash if only_data

          data_hash.merge(register_info)
        end

        def register_info
          date_accepted = default_lang.dates.find(&:accepted?)

          {
            "dateAccepted" => date_accepted&.date&.dup,
            "id" => uuid,
            "related" => related&.map(&:to_h) || [],
            "status" => default_lang.entry_status,
          }.compact
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
tc211-termbase-0.2.8 lib/tc211/termbase/glossarist/managed_concept.rb
tc211-termbase-0.2.7 lib/tc211/termbase/glossarist/managed_concept.rb
tc211-termbase-0.2.6 lib/tc211/termbase/glossarist/managed_concept.rb
tc211-termbase-0.2.5 lib/tc211/termbase/glossarist/managed_concept.rb
tc211-termbase-0.2.4 lib/tc211/termbase/glossarist/managed_concept.rb