Sha256: 4bad5e4a6220302c7dc40526e105058f686929f913f61affeb15cda3f3af4677
Contents?: true
Size: 1.94 KB
Versions: 1
Compression:
Stored size: 1.94 KB
Contents
require "yaml" module RelatonBipm class HashConverter < RelatonBib::HashConverter class << self # @override RelatonIsoBib::HashConverter.hash_to_bib # @param args [Hash] # @param nested [TrueClass, FalseClass] # @return [Hash] def hash_to_bib(args, nested = false) ret = super return if ret.nil? project_group_hash_to_bib ret commentperiod_hash_to_bib ret ret end private # @param item_hash [Hash] # @return [RelatonBib::BibliographicItem] def bib_item(item_hash) BipmBibliographicItem.new item_hash end # @param ret [Hash] def title_hash_to_bib(ret) ret[:title] &&= array(ret[:title]).reduce( RelatonBib::TypedTitleStringCollection.new ) do |m, t| m << if t.is_a? Hash RelatonBib::TypedTitleString.new(t) else RelatonBib::TypedTitleString.new(content: t) end end end # @param ret [Hash] def docstatus_hash_to_bib(ret) ret[:docstatus] &&= DocumentStatus.new ret[:docstatus] end # @param ret [Hash] def commentperiod_hash_to_bib(ret) ret[:commentperiod] &&= CommentPeriond.new(ret[:commentperiod]) end # @param ret [Hash] def project_group_hash_to_bib(ret) ret[:project_group] &&= array(ret[:project_group]).map do |pg| wg = RelatonBib::FormattedString.new pg[:workgroup] ProjectTeam.new(committee: pg[:committee], workgroup: wg) end end # @param ret [Hash] def dates_hash_to_bib(ret) super ret[:date] &&= ret[:date].map do |d| BibliographicDate.new d end end # @param ret [Hash] def relations_hash_to_bib(ret) super ret[:relation] &&= ret[:relation].map do |r| RelatonBipm::DocumentRelation.new r end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
relaton-bipm-1.5.pre | lib/relaton_bipm/hash_converter.rb |