Sha256: 6010e59517069b0adeeb3670d3cab4aba45340e7e38cab461aab26b25895c91c

Contents?: true

Size: 1.29 KB

Versions: 35

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

module LinkedRails
  class Ontology
    class Base
      include ActiveModel::Model
      include LinkedRails::Model
      attr_accessor :iri

      def data
        data = []
        iri.try(:each_statement) do |statement|
          next unless include_data_statement?(statement)

          statement.graph_name = ::RDF::Serializers.config.default_graph
          data << statement
        end
        data
      end

      def description
        @description ||= LinkedRails.translations(
          -> { LinkedRails.translate(self.class.translation_key, :description, iri) }
        )
      end

      def image
        @image ||= RDF::URI("http://fontawesome.io/icon/#{icon}") if icon
      end

      def label
        @label ||= LinkedRails.translations(
          -> { LinkedRails.translate(self.class.translation_key, :label, iri) }
        )
      end

      private

      def icon
        @icon ||= LinkedRails.translate(self.class.translation_key, :icon, iri)
      end

      def include_data_statement?(statement)
        return false if statement.subject.node? || statement.object.node?

        statement.predicate != Vocab.rdfs.label &&
          statement.predicate != Vocab.rdfs.range &&
          statement.predicate != Vocab.rdfs.domain
      end
    end
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
linked_rails-0.0.4.pre.g4c8e21c9f app/models/linked_rails/ontology/base.rb
linked_rails-0.0.4.pre.g76dedd8ba app/models/linked_rails/ontology/base.rb
linked_rails-0.0.4.pre.g7123943aa app/models/linked_rails/ontology/base.rb
linked_rails-0.0.4.pre.g72bb595fe app/models/linked_rails/ontology/base.rb
linked_rails-0.0.4.pre.gd8464437f app/models/linked_rails/ontology/base.rb
linked_rails-0.0.4.pre.g661cde413 app/models/linked_rails/ontology/base.rb
linked_rails-0.0.4.pre.ge09501794 app/models/linked_rails/ontology/base.rb
linked_rails-0.0.4.pre.gc3dfc6914 app/models/linked_rails/ontology/base.rb
linked_rails-0.0.4.pre.g92825d924 app/models/linked_rails/ontology/base.rb
linked_rails-0.0.4.pre.g14b377f91 app/models/linked_rails/ontology/base.rb
linked_rails-0.0.4.pre.g2c53724b3 app/models/linked_rails/ontology/base.rb
linked_rails-0.0.4.pre.g83aa52ab3 app/models/linked_rails/ontology/base.rb
linked_rails-0.0.4.pre.gaa82a222d app/models/linked_rails/ontology/base.rb
linked_rails-0.0.4.pre.g9b7bc9073 app/models/linked_rails/ontology/base.rb
linked_rails-0.0.4.pre.ge1306665a app/models/linked_rails/ontology/base.rb