module PubliSci::Metadata::DSL

Public Instance Methods

creator(id=nil) click to toggle source
# File lib/publisci/dsl/metadata_dsl.rb, line 18
def creator(id=nil)
  set_or_get('creator',id)
end
Also aliased as: name
dataset(name=nil)
Alias for: var
date(d=nil) click to toggle source
# File lib/publisci/dsl/metadata_dsl.rb, line 35
def date(d=nil)
  add_or_get('date',d)
end
description(desc=nil) click to toggle source
# File lib/publisci/dsl/metadata_dsl.rb, line 23
def description(desc=nil)
  set_or_get('description',desc)
end
generate_n3() click to toggle source
# File lib/publisci/dsl/metadata_dsl.rb, line 51
def generate_n3
  opts = {}
  %w{var creator description title}.each{|field|
    opts[field.to_sym] = send(field.to_sym) if send(field.to_sym)
  }
  opts[:subject] = topic if topic
  publishers.each{|pub|
    opts[:publishers] ||= [] << {label: pub.label, uri: pub.uri}
  } if publishers
  gen = Class.new {include PubliSci::Metadata::Generator}

  gen.new.basic(opts)
end
name(id=nil)
Alias for: creator
publisher(pub=nil,&block)
Alias for: publishers
publishers(pub=nil,&block) click to toggle source
# File lib/publisci/dsl/metadata_dsl.rb, line 39
def publishers(pub=nil,&block)
  if block_given?
    p = Publisher.new
    p.instance_eval(&block)
    @publishers ||= [] << p
    p
  else
    add_or_get('publishers',pub)
  end
end
Also aliased as: publisher
title(desc=nil) click to toggle source
# File lib/publisci/dsl/metadata_dsl.rb, line 27
def title(desc=nil)
  set_or_get('title',desc)
end
topic(sub=nil) click to toggle source
# File lib/publisci/dsl/metadata_dsl.rb, line 31
def topic(sub=nil)
  add_or_get('topic',sub)
end
var(name=nil) click to toggle source
# File lib/publisci/dsl/metadata_dsl.rb, line 13
def var(name=nil)
  set_or_get('var',name)
end
Also aliased as: dataset

Private Instance Methods

add_or_get(var,input) click to toggle source
# File lib/publisci/dsl/metadata_dsl.rb, line 76
def add_or_get(var,input)
  ivar = instance_variable_get("@#{var}")

  if input
    instance_variable_set("@#{var}", []) unless ivar
    instance_variable_get("@#{var}") << input
    instance_variable_get("@#{var}")
  else
    ivar
  end
end
set_or_get(var,input=nil) click to toggle source
# File lib/publisci/dsl/metadata_dsl.rb, line 66
def set_or_get(var,input=nil)
  ivar = instance_variable_get("@#{var}")

  if input
    instance_variable_set("@#{var}", input)
  else
    ivar
  end
end