Class: Relaton::Ieee::PubId

Inherits:
Object
  • Object
show all
Defined in:
lib/relaton/ieee/pub_id.rb

Defined Under Namespace

Classes: Id

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pubid) ⇒ PubId

IEEE publication id

Parameters:

  • pubid (Array<Hash>, Hash)


114
115
116
# File 'lib/relaton/ieee/pub_id.rb', line 114

def initialize(pubid)
  @pubid = array(pubid).map { |id| Id.new(**id) }
end

Instance Attribute Details

#pubidArray<RelatonIeee::PubId::Id> (readonly)

Returns:

  • (Array<RelatonIeee::PubId::Id>)


107
108
109
# File 'lib/relaton/ieee/pub_id.rb', line 107

def pubid
  @pubid
end

Instance Method Details

#array(pid) ⇒ Array<Hash>

Convert to array

Parameters:

  • pid (Array<Hash>, Hash)

Returns:

  • (Array<Hash>)


125
126
127
# File 'lib/relaton/ieee/pub_id.rb', line 125

def array(pid)
  pid.is_a?(Array) ? pid : [pid]
end

#to_idString

Generate ID without publisher and second number

Returns:

  • (String)


145
146
147
148
149
150
151
152
153
154
155
156
157
158
# File 'lib/relaton/ieee/pub_id.rb', line 145

def to_id # rubocop:disable Metrics/MethodLength,Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
  out = pubid[0].to_s
  if pubid.size > 1
    out += pubid[1].edition_to_s if pubid[0].edition.nil?
    out += pubid[1].draft_to_s if pubid[0].draft.nil?
    out += pubid[1].rev_to_s if pubid[0].rev.nil?
    out += pubid[1].corr_to_s if pubid[0].corr.nil?
    out += pubid[1].amd_to_s if pubid[0].amd.nil?
    out += pubid[1].year_to_s if pubid[0].year.nil?
    out += pubid[1].month_to_s if pubid[0].month.nil?
    out += pubid[1].redline_to_s unless pubid[0].redline
  end
  out
end

#to_s(trademark: false) ⇒ String

PubId string representation

Parameters:

  • trademark (Boolean) (defaults to: false)

    if true, add trademark symbol

Returns:

  • (String)


136
137
138
# File 'lib/relaton/ieee/pub_id.rb', line 136

def to_s(trademark: false)
  pubid.map { |id| id.to_s(trademark: trademark) }.join("/")
end