Sha256: 3e30bf7170174e3a29c870746b376cd75fd236d3b9fc563bb2416b4ef85c7791

Contents?: true

Size: 1.66 KB

Versions: 2

Compression:

Stored size: 1.66 KB

Contents

module PubliSci
  module Prov
    def self.register(name,object)
      # puts "register #{name} #{object} #{associations.size}"
      name = name.to_sym if name
      if object.is_a? Agent
        sub = :agents
      elsif object.is_a? Entity
        sub = :entities
      elsif object.is_a? Activity
        sub = :activities
      elsif object.is_a? Association
        sub = :associations
      elsif object.is_a? Plan
        sub = :plans
      else
        sub = object.class.to_s.split('::').last.downcase.to_sym
        # raise "UnknownElement: unkown object type for #{object}"
      end
      if name
        (registry[sub] ||= {})[name] = object
      else
        (registry[sub] ||= []) << object
      end
    end

    def self.registry
      @registry ||= {}
    end

    def self.run(string)
      if File.exists? string
        DSL::Singleton.new.instance_eval(IO.read(string),string)
      else
        DSL::Singleton.new.instance_eval(string)
      end
    end

    def self.agents
      registry[:agents] ||= {}
    end

    def self.entities
      registry[:entities] ||= {}
    end

    def self.activities
      registry[:activities] ||= {}
    end

    def self.associations
      registry[:associations] ||= []
    end

    def self.plans
      registry[:plans] ||= {}
    end

    def self.base_url
      @base_url ||= "http://rqtl.org/ns"
    end

    def self.base_url=(url)
      @base_url = url
    end

    def self.prefixes
      <<-EOF
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
      EOF
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bio-publisci-0.0.5 lib/bio-publisci/metadata/prov/prov.rb
bio-publisci-0.0.4 lib/bio-publisci/metadata/prov/prov.rb