module PubliSci::Prov::Element
Public Instance Methods
__label()
click to toggle source
# File lib/publisci/metadata/prov/element.rb, line 31 def __label raise "MissingInternalLabel: no __label for #{self.inspect}" unless @__label @__label end
__label=(l)
click to toggle source
# File lib/publisci/metadata/prov/element.rb, line 27 def __label=(l) @__label = l end
subject(s=nil)
click to toggle source
# File lib/publisci/metadata/prov/element.rb, line 7 def subject(s=nil) if s if s.is_a? Symbol raise "subject generation from symbol not yet implemented!" else @subject = s end else @subject ||= generate_subject end end
subject=(s)
click to toggle source
# File lib/publisci/metadata/prov/element.rb, line 19 def subject=(s) @subject = s end
subject_id()
click to toggle source
# File lib/publisci/metadata/prov/element.rb, line 23 def subject_id self.class.to_s.split('::').last.downcase end
Private Instance Methods
basic_keyword(var,type,identifier=nil)
click to toggle source
# File lib/publisci/metadata/prov/element.rb, line 67 def basic_keyword(var,type,identifier=nil) ivar = instance_variable_get("@#{var}") if identifier instance_variable_set("@#{var}", identifier) elsif ivar.is_a? Symbol raise "NotRegistered: #{type}" unless Prov.registry[type] raise "Unknown#{type.capitalize}: #{ivar}" unless Prov.registry[type][ivar] instance_variable_set("@#{var}", Prov.registry[type][ivar]) else ivar end end
basic_list(var,type,collection_class,identifier=nil)
click to toggle source
# File lib/publisci/metadata/prov/element.rb, line 81 def basic_list(var,type,collection_class,identifier=nil) if identifier unless instance_variable_get("@#{var}") instance_variable_set("@#{var}",collection_class.new) end instance_variable_get("@#{var}") << identifier # (@used ||= Uses.new) << identifier # elsif @used # @used.map{|u| u.is_a?(Symbol) ? Prov.entities[u] : u} # elsif instance_variable_get("@#{var}") # @used.dereference else instance_variable_get("@#{var}") end end
block_list(var,type,instance_class,collection_class,name=nil,&block)
click to toggle source
# File lib/publisci/metadata/prov/element.rb, line 98 def block_list(var,type,instance_class,collection_class,name=nil,&block) if block_given? inst = instance_class.new inst.instance_eval(&block) unless instance_variable_get("@#{var}") instance_variable_set("@#{var}",collection_class.new) end instance_variable_get("@#{var}") << inst Prov.register(inst.__label,inst) else if name unless instance_variable_get("@#{var}") instance_variable_set("@#{var}",collection_class.new) end instance_variable_get("@#{var}") << name else instance_variable_get("@#{var}") end end end
generate_subject()
click to toggle source
# File lib/publisci/metadata/prov/element.rb, line 37 def generate_subject # puts self.class == Prov::Activity category = case self when Agent "agent" when Entity "entity" when Activity "activity" when Plan "plan" when Association "assoc" else subject_id() # raise "MissingSubject: No automatic subject generation for #{self}" end "#{Prov.base_url}/#{category}/#{__label}" end
try_auto_set(object,method,args)
click to toggle source
# File lib/publisci/metadata/prov/element.rb, line 58 def try_auto_set(object,method,args) if object.methods.include? method object.send(method,args) true else false end end