module RelatonNist class NistBibliographicItem < RelatonBib::BibliographicItem # @return [String] attr_reader :doctype # @return [Array] # attr_reader :keyword # @return [RelatonNist::CommentPeriod, NilClass] attr_reader :commentperiod # @param id [String, NilClass] # @param title [Array] # @param formattedref [RelatonBib::FormattedRef, NilClass] # @param type [String, NilClass] # @param docid [Array] # @param docnumber [String, NilClass] # @param language [Arra] # @param script [Array] # @param docstatus [RelatonNist::DocumentStatus, NilClass] # @param edition [String, NilClass] # @param version [RelatonBib::BibliographicItem::Version, NilClass] # @param biblionote [Array] # @param series [Array] # @param medium [RelatonBib::Medium, NilClas] # @param place [Array] # @param extent [Array] # @param accesslocation [Array] # @param classification [RelatonBib::Classification, NilClass] # @param validity [RelatonBib:Validity, NilClass] # @param fetched [Date, NilClass] default nil # @param doctype [String] # @param keyword [Array] # @param commentperiod [RelatonNist::CommentPeriod, NilClass] # # @param date [Array] # @option date [String] :type # @option date [String] :from # @option date [String] :to # # @param contributor [Array] # @option contributor [String] :type # @option contributor [String] :from # @option contributor [String] :to # @option contributor [String] :abbreviation # @option contributor [Array] :role # # @param abstract [Array] # @option abstract [String] :content # @option abstract [String] :language # @option abstract [String] :script # @option abstract [String] :type # # @param relation [Array] # @option relation [String] :type # @option relation [RelatonBib::BibliographicItem] :bibitem # @option relation [Array] :bib_locality def initialize(**args) # @doctype = args.delete(:doctype) || "standard" # args[:doctype] ||= "standard" # @keyword = args.delete(:keyword) || [] @commentperiod = args.delete :commentperiod super end # @param opts [Hash] # @option opts [Nokogiri::XML::Builder] :builder XML builder # @option opts [Boolean] :bibdata # @option opts [String] :lang language # @return [String] XML def to_xml(**opts) super date_format: :short, **opts do |b| if opts[:bibdata] b.ext do b.doctype doctype if doctype commentperiod&.to_xml b end end end end # @return [Hash] def to_hash hash = super # hash["keyword"] = single_element_array(keyword) if keyword&.any? hash["commentperiod"] = commentperiod.to_hash if commentperiod hash end # @param prefix [String] # @return [String] def to_asciibib(prefix = "") out = super out += commentperiod.to_asciibib prefix if commentperiod out end end end