Class: RelatonBib::DocumentIdentifier

Inherits:
Object
  • Object
show all
Defined in:
lib/relaton_bib/document_identifier.rb

Overview

Document identifier.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id:, type: nil, scope: nil) ⇒ DocumentIdentifier

Returns a new instance of DocumentIdentifier.

Parameters:

  • id (String)
  • type (String, NilClass) (defaults to: nil)
  • scoope (String, NilClass)


13
14
15
16
17
# File 'lib/relaton_bib/document_identifier.rb', line 13

def initialize(id:, type: nil, scope: nil)
  @id    = id
  @type  = type
  @scope = scope
end

Instance Attribute Details

#idString (readonly)

Returns:

  • (String)


5
6
7
# File 'lib/relaton_bib/document_identifier.rb', line 5

def id
  @id
end

#scopeString, NilClass (readonly)

Returns:

  • (String, NilClass)


8
9
10
# File 'lib/relaton_bib/document_identifier.rb', line 8

def scope
  @scope
end

#typeString, NilClass (readonly)

Returns:

  • (String, NilClass)


8
9
10
# File 'lib/relaton_bib/document_identifier.rb', line 8

def type
  @type
end

Instance Method Details

#all_partsObject



36
37
38
# File 'lib/relaton_bib/document_identifier.rb', line 36

def all_parts
  @id += " (all parts)"
end

#remove_dateObject



28
29
30
31
32
33
34
# File 'lib/relaton_bib/document_identifier.rb', line 28

def remove_date
  case @type
  when "Chinese Standard" then @id.sub!(/-[12]\d\d\d/, "")
  else
    @id.sub!(/:[12]\d\d\d/, "")
  end
end

#remove_partObject

in docid manipulations, assume ISO as the default: id-part:year



20
21
22
23
24
25
26
# File 'lib/relaton_bib/document_identifier.rb', line 20

def remove_part
  case @type
  when "Chinese Standard" then @id.sub!(/\.\d+/, "")
  else
    @id.sub!(/-\d+/, "")
  end
end

#to_asciibib(prefix = "", count = 1) ⇒ String

Parameters:

  • prefix (String) (defaults to: "")
  • count (Integer) (defaults to: 1)

    number of docids

Returns:

  • (String)


62
63
64
65
66
67
68
69
# File 'lib/relaton_bib/document_identifier.rb', line 62

def to_asciibib(prefix = "", count = 1)
  pref = prefix.empty? ? prefix : prefix + "."
  out = count > 1 ? "#{pref}docid::\n" : ""
  out += "#{pref}docid.type:: #{type}\n" if type
  out += "#{pref}docid.scope:: #{scope}\n" if scope
  out += "#{pref}docid.id:: #{id}\n"
  out
end

#to_hashHash

Returns:

  • (Hash)


52
53
54
55
56
57
# File 'lib/relaton_bib/document_identifier.rb', line 52

def to_hash
  hash = { "id" => id }
  hash["type"] = type if type
  hash["scope"] = scope if scope
  hash
end

#to_xml(builder) ⇒ Object

Add docidentifier xml element

Parameters:

  • builder (Nokogiri::XML::Builder)


45
46
47
48
49
# File 'lib/relaton_bib/document_identifier.rb', line 45

def to_xml(builder)
  element = builder.docidentifier id
  element[:type] = type if type
  element[:scope] = scope if scope
end