Class: RelatonBib::CopyrightAssociation

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

Overview

Copyright association.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(owner:, from:, to: nil) ⇒ CopyrightAssociation

Returns a new instance of CopyrightAssociation.

Parameters:

Options Hash (owner:):

  • :name (String)
  • :abbreviation (String)
  • :url (String)


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

def initialize(owner:, from:, to: nil)
  @owner = if owner.is_a?(Hash)
             ContributionInfo.new entity: Organization.new(owner)
           else owner
           end

  @from  = Date.strptime(from.to_s, "%Y") if from.to_s =~ /\d{4}/
  @to    = Date.strptime(to.to_s, "%Y") unless to.to_s.empty?
end

Instance Attribute Details

#fromDate (readonly)

Returns:

  • (Date)


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

def from
  @from
end

#ownerRelatonBib::ContributionInfo (readonly)



11
12
13
# File 'lib/relaton_bib/copyright_association.rb', line 11

def owner
  @owner
end

#toDate, NilClass (readonly)

Returns:

  • (Date, NilClass)


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

def to
  @to
end

Instance Method Details

#to_hashHash

Returns:

  • (Hash)


39
40
41
42
43
# File 'lib/relaton_bib/copyright_association.rb', line 39

def to_hash
  hash = { "owner" => owner.to_hash["organization"], "from" => from.year.to_s }
  hash["to"] = to.year.to_s if to
  hash
end

#to_xml(builder) ⇒ Object

Parameters:

  • builder (Nokogiri::XML::Builder)


30
31
32
33
34
35
36
# File 'lib/relaton_bib/copyright_association.rb', line 30

def to_xml(builder)
  builder.copyright do
    builder.from from ? from.year : "unknown"
    builder.to to.year if to
    builder.owner { owner.to_xml builder }
  end
end