Sha256: 82259318560ed89ff33fcf93a11f6d3be161cff4b7dc71c4a1380366f3ee2e3d
Contents?: true
Size: 1.55 KB
Versions: 1
Compression:
Stored size: 1.55 KB
Contents
module Relaton class Bibcollection ATTRIBS = %i[ title items doctype ] attr_accessor *ATTRIBS def initialize(options) self.items = [] ATTRIBS.each do |k| method = "#{k}=" value = options[k.to_s] # puts "K #{method}" # puts value.inspect self.send("#{k}=", options[k.to_s]) # puts "SET! to #{self.send(k).inspect}" end # puts items.inspect self.items = self.items.inject([]) do |acc,item| acc << if item.is_a?(Bibcollection) || item.is_a?(Bibdata) item else # puts "item.inspect #{item.inspect}" new_bib_item_class(item) end end self # byebug end def new_bib_item_class(options) if options["items"] Bibcollection.new(options) else Bibdata.new(options) end end def items_flattened items.inject([]) do |acc,item| if item.is_a? Bibcollection acc << item.items_flattened else acc << item end end end def to_xml collection_type = if doctype "type=\"#{doctype}\"" else 'xmlns="http://riboseinc.com/isoxml"' end ret = "<relaton-collection #{collection_type}>" ret += "<title>#{title}</title>" if title unless items.empty? items.each do |item| ret += "<relation type='partOf'>" ret += item.to_xml ret += "</relation>\n" end end ret += "</relaton-collection>\n" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
relaton-cli-0.1.0 | lib/relaton/bibcollection.rb |