Sha256: 0c2c3b1e026f7c4b53bdbbe44093bef68aabd84a7d363aa5d5684ddb49cf9095
Contents?: true
Size: 1.21 KB
Versions: 1
Compression:
Stored size: 1.21 KB
Contents
module RelatonBib class TypedTitleString # @return [String] attr_reader :type # @return [RelatonBib::FormattedString] attr_reader :title # rubocop:disable Metrics/MethodLength # @param type [String] # @param title [RelatonBib::FormattedString, Hash] # @param content [String] # @param language [String] # @param script [String] def initialize(**args) unless args[:title] || args[:content] raise ArgumentError, %{Keyword "title" or "content" should be passed.} end @type = args[:type] if args[:title] @title = args[:title] else fsargs = args.select do |k, _v| %i[content language script format].include? k end @title = FormattedString.new(fsargs) end end # rubocop:enable Metrics/MethodLength # @param builder [Nokogiri::XML::Builder] def to_xml(builder) builder.parent[:type] = type if type title.to_xml builder end # @return [Hash] def to_hash th = title.to_hash return th unless type hash = { "type" => type } if th.is_a? String hash["content"] = th else hash.merge! th end hash end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
relaton-bib-1.1.0 | lib/relaton_bib/typed_title_string.rb |