Sha256: a1ffadc43c51ffd7fb2d3cf7905972159f4aa0868b4252bef3fb9ab051dd207f

Contents?: true

Size: 1.15 KB

Versions: 3

Compression:

Stored size: 1.15 KB

Contents

module RelatonBib
  class Place
    # @return [String]
    attr_reader :name

    # @return [String, NilClass]
    attr_reader :uri, :region

    # @param name [String]
    # @param uri [String, NilClass]
    # @param region [String, NilClass]
    def initialize(name:, uri: nil, region: nil)
      @name   = name
      @uri    = uri
      @region = region
    end

    # @param builder [Nologiri::XML::Builder]
    def to_xml(builder)
      xml = builder.place name
      xml[:uri] = uri if uri
      xml[:region] = region if region
    end

    # @return [Hash]
    def to_hash
      if uri || region
        hash = { name: name }
        hash["uri"] = uri if uri
        hash["region"] = region if region
        hash
      else
        name
      end
    end

    # @param prefix [String]
    # @param count [Integer] number of places
    # @return [Stirng]
    def to_asciibib(prefix = "", count = 1)
      pref = prefix.empty? ? "place" : prefix + ".place"
      out = count > 1 ? "#{pref}::\n" : ""
      out += "#{pref}.name:: #{name}\n"
      out += "#{pref}.uri:: #{uri}\n" if uri
      out += "#{pref}.region:: #{region}\n" if region
      out
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
relaton-bib-1.4.0 lib/relaton_bib/place.rb
relaton-bib-1.3.1 lib/relaton_bib/place.rb
relaton-bib-1.3.0 lib/relaton_bib/place.rb