Sha256: fd464a79ab636d7092d4659e2562f2ddfe09408e2fbe331d2e749c0995017b8a

Contents?: true

Size: 754 Bytes

Versions: 7

Compression:

Stored size: 754 Bytes

Contents

# frozen_string_literal: true

module LinkedRails
  class Ontology
    include ActiveModel::Model
    include LinkedRails::Model

    def classes
      @classes ||= LinkedRails.linked_models.map do |klass|
        iri = klass.iri.is_a?(Array) ? klass.iri.first : klass.iri

        LinkedRails.ontology_class_class.new(klass: klass, iri: iri) if iri
      end.compact
    end

    def properties
      classes.flat_map(&:properties)
    end

    def root_relative_iri
      RDF::URI('/ns/core')
    end

    class << self
      def preview_includes
        %i[classes properties]
      end

      def requested_resource(opts, _user_context)
        LinkedRails.ontology_class.new if opts[:iri].include?(new.root_relative_iri)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
linked_rails-0.0.4.pre.g14b377f91 app/models/linked_rails/ontology.rb
linked_rails-0.0.4.pre.g2c53724b3 app/models/linked_rails/ontology.rb
linked_rails-0.0.4.pre.g83aa52ab3 app/models/linked_rails/ontology.rb
linked_rails-0.0.4.pre.gaa82a222d app/models/linked_rails/ontology.rb
linked_rails-0.0.4.pre.g9b7bc9073 app/models/linked_rails/ontology.rb
linked_rails-0.0.4.pre.ge1306665a app/models/linked_rails/ontology.rb
linked_rails-0.0.4 app/models/linked_rails/ontology.rb