Sha256: 43d17112247cd2f87bc896143e9c7ceaefc3903dd631b436c4ed1af449c0a336

Contents?: true

Size: 1.16 KB

Versions: 54

Compression:

Stored size: 1.16 KB

Contents

module RelatonBib
  class Edition
    # @return [String] edition
    attr_reader :content

    # @return [String, nil] number
    attr_reader :number

    #
    # Initialize edition.
    #
    # @param [String, Integer, Float] content edition
    # @param [String, Integer, Float, nil] number number
    #
    def initialize(content:, number: nil)
      @content = content.to_s
      @number = number&.to_s
    end

    #
    # Render edition as XML.
    #
    # @param [Nokogiri::XML::Builder] builder XML builder
    #
    def to_xml(builder)
      node = builder.edition(content)
      node[:number] = number if number
    end

    #
    # Return edition as hash.
    #
    # @return [Hash] edition as hash.
    #
    def to_hash
      hash = { "content" => content }
      hash["number"] = number if number
      hash
    end

    #
    # Render edition as AsciiBib.
    #
    # @param [String] prefix prefix
    #
    # @return [String] edition as AsciiBib.
    #
    def to_asciibib(prefix = "")
      pref = prefix.empty? ? "edition" : "#{prefix}.edition"
      out = "#{pref}.content:: #{content}\n"
      out += "#{pref}.number:: #{number}\n" if number
      out
    end
  end
end

Version data entries

54 entries across 54 versions & 1 rubygems

Version Path
relaton-bib-1.20.4 lib/relaton_bib/edition.rb
relaton-bib-1.20.3 lib/relaton_bib/edition.rb
relaton-bib-1.20.2 lib/relaton_bib/edition.rb
relaton-bib-1.19.7 lib/relaton_bib/edition.rb
relaton-bib-1.20.1 lib/relaton_bib/edition.rb
relaton-bib-1.20.0 lib/relaton_bib/edition.rb
relaton-bib-1.19.6 lib/relaton_bib/edition.rb
relaton-bib-1.19.5 lib/relaton_bib/edition.rb
relaton-bib-1.19.4 lib/relaton_bib/edition.rb
relaton-bib-1.19.3 lib/relaton_bib/edition.rb
relaton-bib-1.19.2 lib/relaton_bib/edition.rb
relaton-bib-1.19.1 lib/relaton_bib/edition.rb
relaton-bib-1.19.0 lib/relaton_bib/edition.rb
relaton-bib-1.18.5 lib/relaton_bib/edition.rb
relaton-bib-1.18.3 lib/relaton_bib/edition.rb
relaton-bib-1.18.2 lib/relaton_bib/edition.rb
relaton-bib-1.18.1 lib/relaton_bib/edition.rb
relaton-bib-1.18.0 lib/relaton_bib/edition.rb
relaton-bib-1.17.2 lib/relaton_bib/edition.rb
relaton-bib-1.17.1 lib/relaton_bib/edition.rb