Class: Reference

Inherits:
Object
  • Object
show all
Defined in:
lib/refworks/reference.rb

Overview

noinspection RubyTooManyInstanceVariablesInspection,RubyTooManyMethodsInspection

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rawref) ⇒ Reference

expecting a HTTParty-parsed RWResult reference hash to be passed in



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'lib/refworks/reference.rb', line 15

def initialize(rawref)

  # Basically, creating an empty ref.  For instance, if you want to
  # hand-construct the reference one field at a time.
  unless rawref["rt"]
    return
  end

  # using Mash so I can use symbols as keys instead of strings, which is what
  # is returned from httparty
  ref = Mash.new(rawref)

  # Here I populate attributes which correspond to RefWorks Tagged Format.
  # See: http://www.refworks.com/rwathens/help/RefWorks_Tagged_Format.htm
  # for more details.  The tag list is in a comment at the end of this file.

  @rt = ref[:rt]

  # the next two are my own extensions, not part of the RefWorks tagged format.
  # They are a decomposition of the rt complex value which I think is useful.
  @rt_num = ref[:rt][:typeOrd]
  @rt_string = ref[:rt][:__content__]

  @sr = ref[:sr]

  @id = ref[:id][0]

  # HTTParty will produce either a string or an array when it converts the XML response
  # to a Ruby data structure.  Which one it produces depends upon how
  # many authors there are.  All values are converted to Arrays, even one item
  # values, for consistency.  I do this for any field which can have more than one value.
  # If not an array, and not a value, set nil
  @a1 = if ref[:a1].class == Array then
          ref[:a1]
        else
          ref[:a1] ? ref[:a1].lines.to_a : nil
        end

  @t1 = ref[:t1]

  @jf = ref[:jf]
  @jo = ref[:jo]
  @yr = ref[:yr]
  @fd = ref[:fd]
  @vo = ref[:vo]
  @is = ref[:is]
  @sp = ref[:sp]
  @op = ref[:op]

  if ref[:k1]
    @k1 = ref[:k1].class == Array ? ref[:k1] : ref[:k1].lines.to_a
  end

  @ab = ref[:ab]
  @no = ref[:no]

  if ref[:a2]
    @a2 = ref[:a2].class == Array ? ref[:a2] : ref[:a2].lines.to_a
  end

  @t2 = ref[:t2]

  @ed = ref[:ed]
  @pb = ref[:pb]
  @pp = ref[:pp]

  if ref[:a3]
    @a3 = ref[:a3].class == Array ? ref[:a3] : ref[:a3].lines.to_a
  end

  if ref[:a4]
    @a4 = ref[:a4].class == Array ? ref[:a4] : ref[:a4].lines.to_a
  end

  if ref[:a5]
    @a5 = ref[:a5].class == Array ? ref[:a5] : ref[:a5].lines.to_a
  end

  @t3 = ref[:t3]
  @sn = ref[:sn]
  @av = ref[:av]
  @ad = ref[:ad]
  @an = ref[:an]
  @la = ref[:la]
  @cl = ref[:cl]
  @sf = ref[:sf]
  @ot = ref[:ot]
  @lk = ref[:lk]
  @do = ref[:do]
  @cn = ref[:cn]
  @db = ref[:db]
  @ds = ref[:ds]
  @ip = ref[:ip]
  @rd = ref[:rd]
  @st = ref[:st]
  @u1 = ref[:u1]
  @u2 = ref[:u2]
  @u3 = ref[:u3]
  @u4 = ref[:u4]
  @u5 = ref[:u5]
  @u6 = ref[:u6]
  @u7 = ref[:u7]
  @u8 = ref[:u8]
  @u9 = ref[:u9]
  @u10 = ref[:u10]
  @u11 = ref[:u11]
  @u12 = ref[:u12]
  @u13 = ref[:u13]
  @u14 = ref[:u14]
  @u15 = ref[:u15]
  @ul = ref[:ul]
  @sl = ref[:sl]
  @ll = ref[:ll]
  @cr = ref[:cr]
  @wt = ref[:wt]

  if ref[:a6]
    @a6 = ref[:a6].class == Array ? ref[:a6] : ref[:a6].lines.to_a
  end

  @wv = ref[:wv]
  @wp = ref[:wp]
  @ol = ref[:ol]
  @pmid = ref[:pmid]
  @pmcid = ref[:pmcid]

  # Not documented as part of the RefWorks tagged format, but the API returns these fields
  @fl = ref[:fl]
  @cd = ref[:cd]
  @md = ref[:md]
end

Instance Attribute Details

#a1Object (readonly)

Returns the value of attribute a1.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def a1
  @a1
end

#a2Object (readonly)

Returns the value of attribute a2.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def a2
  @a2
end

#a3Object (readonly)

Returns the value of attribute a3.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def a3
  @a3
end

#a4Object (readonly)

Returns the value of attribute a4.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def a4
  @a4
end

#a5Object (readonly)

Returns the value of attribute a5.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def a5
  @a5
end

#a6Object (readonly)

Returns the value of attribute a6.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def a6
  @a6
end

#abObject (readonly)

Returns the value of attribute ab.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def ab
  @ab
end

#adObject (readonly)

Returns the value of attribute ad.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def ad
  @ad
end

#anObject (readonly)

Returns the value of attribute an.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def an
  @an
end

#avObject (readonly)

Returns the value of attribute av.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def av
  @av
end

#cdObject (readonly)

Returns the value of attribute cd.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def cd
  @cd
end

#clObject (readonly)

Returns the value of attribute cl.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def cl
  @cl
end

#cnObject (readonly)

Returns the value of attribute cn.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def cn
  @cn
end

#crObject (readonly)

Returns the value of attribute cr.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def cr
  @cr
end

#dbObject (readonly)

Returns the value of attribute db.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def db
  @db
end

#doObject (readonly)

Returns the value of attribute do.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def do
  @do
end

#dsObject (readonly)

Returns the value of attribute ds.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def ds
  @ds
end

#edObject (readonly)

Returns the value of attribute ed.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def ed
  @ed
end

#fdObject (readonly)

Returns the value of attribute fd.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def fd
  @fd
end

#flObject (readonly)

Returns the value of attribute fl.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def fl
  @fl
end

#idObject (readonly)

Returns the value of attribute id.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def id
  @id
end

#ipObject (readonly)

Returns the value of attribute ip.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def ip
  @ip
end

#isObject (readonly)

Returns the value of attribute is.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def is
  @is
end

#jfObject (readonly)

Returns the value of attribute jf.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def jf
  @jf
end

#joObject (readonly)

Returns the value of attribute jo.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def jo
  @jo
end

#k1Object (readonly)

Returns the value of attribute k1.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def k1
  @k1
end

#laObject (readonly)

Returns the value of attribute la.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def la
  @la
end

#lkObject (readonly)

Returns the value of attribute lk.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def lk
  @lk
end

#llObject (readonly)

Returns the value of attribute ll.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def ll
  @ll
end

#mdObject (readonly)

Returns the value of attribute md.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def md
  @md
end

#noObject (readonly)

Returns the value of attribute no.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def no
  @no
end

#olObject (readonly)

Returns the value of attribute ol.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def ol
  @ol
end

#opObject (readonly)

Returns the value of attribute op.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def op
  @op
end

#otObject (readonly)

Returns the value of attribute ot.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def ot
  @ot
end

#pbObject (readonly)

Returns the value of attribute pb.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def pb
  @pb
end

#pmcidObject (readonly)

Returns the value of attribute pmcid.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def pmcid
  @pmcid
end

#pmidObject (readonly)

Returns the value of attribute pmid.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def pmid
  @pmid
end

#ppObject (readonly)

Returns the value of attribute pp.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def pp
  @pp
end

#rdObject (readonly)

Returns the value of attribute rd.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def rd
  @rd
end

#rtObject (readonly)

Returns the value of attribute rt.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def rt
  @rt
end

#rt_numObject (readonly)

Returns the value of attribute rt_num.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def rt_num
  @rt_num
end

#rt_stringObject (readonly)

Returns the value of attribute rt_string.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def rt_string
  @rt_string
end

#sfObject (readonly)

Returns the value of attribute sf.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def sf
  @sf
end

#slObject (readonly)

Returns the value of attribute sl.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def sl
  @sl
end

#snObject (readonly)

Returns the value of attribute sn.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def sn
  @sn
end

#spObject (readonly)

Returns the value of attribute sp.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def sp
  @sp
end

#srObject (readonly)

Returns the value of attribute sr.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def sr
  @sr
end

#stObject (readonly)

Returns the value of attribute st.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def st
  @st
end

#t1Object (readonly)

Returns the value of attribute t1.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def t1
  @t1
end

#t2Object (readonly)

Returns the value of attribute t2.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def t2
  @t2
end

#t3Object (readonly)

Returns the value of attribute t3.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def t3
  @t3
end

#u1Object (readonly)

Returns the value of attribute u1.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def u1
  @u1
end

#u10Object (readonly)

Returns the value of attribute u10.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def u10
  @u10
end

#u11Object (readonly)

Returns the value of attribute u11.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def u11
  @u11
end

#u12Object (readonly)

Returns the value of attribute u12.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def u12
  @u12
end

#u13Object (readonly)

Returns the value of attribute u13.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def u13
  @u13
end

#u14Object (readonly)

Returns the value of attribute u14.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def u14
  @u14
end

#u15Object (readonly)

Returns the value of attribute u15.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def u15
  @u15
end

#u2Object (readonly)

Returns the value of attribute u2.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def u2
  @u2
end

#u3Object (readonly)

Returns the value of attribute u3.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def u3
  @u3
end

#u4Object (readonly)

Returns the value of attribute u4.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def u4
  @u4
end

#u5Object (readonly)

Returns the value of attribute u5.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def u5
  @u5
end

#u6Object (readonly)

Returns the value of attribute u6.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def u6
  @u6
end

#u7Object (readonly)

Returns the value of attribute u7.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def u7
  @u7
end

#u8Object (readonly)

Returns the value of attribute u8.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def u8
  @u8
end

#u9Object (readonly)

Returns the value of attribute u9.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def u9
  @u9
end

#ulObject (readonly)

Returns the value of attribute ul.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def ul
  @ul
end

#voObject (readonly)

Returns the value of attribute vo.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def vo
  @vo
end

#wpObject (readonly)

Returns the value of attribute wp.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def wp
  @wp
end

#wtObject (readonly)

Returns the value of attribute wt.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def wt
  @wt
end

#wvObject (readonly)

Returns the value of attribute wv.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def wv
  @wv
end

#yrObject (readonly)

Returns the value of attribute yr.



6
7
8
# File 'lib/refworks/reference.rb', line 6

def yr
  @yr
end

Instance Method Details

#abstractObject



228
229
230
# File 'lib/refworks/reference.rb', line 228

def abstract
  ab
end

#accession_numberObject



284
285
286
# File 'lib/refworks/reference.rb', line 284

def accession_number
  an
end

#author_addressObject



280
281
282
# File 'lib/refworks/reference.rb', line 280

def author_address
  ad
end

#authorsObject

alias



175
176
177
# File 'lib/refworks/reference.rb', line 175

def authors
  a1
end

#availabilityObject



276
277
278
# File 'lib/refworks/reference.rb', line 276

def availability
  av
end

#call_numberObject



319
320
321
# File 'lib/refworks/reference.rb', line 319

def call_number
  cn
end

#cited_referencesObject



415
416
417
# File 'lib/refworks/reference.rb', line 415

def cited_references
  cr
end

#classificationObject



292
293
294
# File 'lib/refworks/reference.rb', line 292

def classification
  cl
end

#created_dateObject

extension



445
446
447
# File 'lib/refworks/reference.rb', line 445

def created_date
  cd
end

#data_sourceObject



327
328
329
# File 'lib/refworks/reference.rb', line 327

def data_source
  ds
end

#databaseObject



323
324
325
# File 'lib/refworks/reference.rb', line 323

def database
  db
end

#date_of_electronic_publicationObject



431
432
433
# File 'lib/refworks/reference.rb', line 431

def date_of_electronic_publication
  wp
end

#digital_object_identifierObject



308
309
310
311
# File 'lib/refworks/reference.rb', line 308

def digital_object_identifier
  # @ sign to avoid collision with Ruby keyword 'do'
  @do
end

#doiObject

alias



314
315
316
317
# File 'lib/refworks/reference.rb', line 314

def doi
  # @ sign to avoid collision with Ruby keyword 'do'
  @do
end

#editionObject



244
245
246
# File 'lib/refworks/reference.rb', line 244

def edition
  ed
end

#folderObject

extension



440
441
442
# File 'lib/refworks/reference.rb', line 440

def folder
  fl
end

#identifying_phraseObject



331
332
333
# File 'lib/refworks/reference.rb', line 331

def identifying_phrase
  ip
end

#issn_isbnObject



272
273
274
# File 'lib/refworks/reference.rb', line 272

def issn_isbn
  sn
end

#issueObject



208
209
210
# File 'lib/refworks/reference.rb', line 208

def issue
  is
end

#keywordObject



220
221
222
# File 'lib/refworks/reference.rb', line 220

def keyword
  k1
end

#keywordsObject



224
225
226
# File 'lib/refworks/reference.rb', line 224

def keywords
  k1
end

#languageObject



288
289
290
# File 'lib/refworks/reference.rb', line 288

def language
  la
end


304
305
306
# File 'lib/refworks/reference.rb', line 304

def links
  lk
end

#modified_dataObject

extension



450
451
452
# File 'lib/refworks/reference.rb', line 450

def modified_data
  md
end

#notesObject



232
233
234
# File 'lib/refworks/reference.rb', line 232

def notes
  no
end

#original_foreign_titleObject



300
301
302
# File 'lib/refworks/reference.rb', line 300

def original_foreign_title
  ot
end

#other_pagesObject



216
217
218
# File 'lib/refworks/reference.rb', line 216

def other_pages
  op
end

#output_languageObject



435
436
437
# File 'lib/refworks/reference.rb', line 435

def output_language
  ol
end

#periodical_abbrevObject



192
193
194
# File 'lib/refworks/reference.rb', line 192

def periodical_abbrev
  jo
end

#periodical_fullObject



188
189
190
# File 'lib/refworks/reference.rb', line 188

def periodical_full
  jf
end

#place_of_publicationObject



252
253
254
# File 'lib/refworks/reference.rb', line 252

def place_of_publication
  pp
end

#primary_authorsObject



170
171
172
# File 'lib/refworks/reference.rb', line 170

def primary_authors
  a1
end

#primary_titleObject



179
180
181
# File 'lib/refworks/reference.rb', line 179

def primary_title
  t1
end

#publication_data_free_formObject



200
201
202
# File 'lib/refworks/reference.rb', line 200

def publication_data_free_form
  fd
end

#publication_yearObject



196
197
198
# File 'lib/refworks/reference.rb', line 196

def publication_year
  yr
end

#publisherObject



248
249
250
# File 'lib/refworks/reference.rb', line 248

def publisher
  pb
end

#quaternary_authorsObject



260
261
262
# File 'lib/refworks/reference.rb', line 260

def quaternary_authors
  a4
end

#quinary_authorsObject



264
265
266
# File 'lib/refworks/reference.rb', line 264

def quinary_authors
  a5
end

#reference_typeObject

setup human-readable aliases as accessors I’ve been consistent with the RefWorks tagged format legend (see end of this file) plus I added some additional ones (like “authors” as a synonym for “primary_authors”) which seemed particularly useful.



152
153
154
# File 'lib/refworks/reference.rb', line 152

def reference_type
  rt
end

#reference_type_numObject

extension



157
158
159
# File 'lib/refworks/reference.rb', line 157

def reference_type_num
  rt_num
end

#reference_type_stringObject

extension



162
163
164
# File 'lib/refworks/reference.rb', line 162

def reference_type_string
  rt_string
end

#retrieved_dateObject



335
336
337
# File 'lib/refworks/reference.rb', line 335

def retrieved_date
  rd
end

#secondary_authorsObject



236
237
238
# File 'lib/refworks/reference.rb', line 236

def secondary_authors
  a2
end

#secondary_titleObject



240
241
242
# File 'lib/refworks/reference.rb', line 240

def secondary_title
  t2
end

#shortened_titleObject



339
340
341
# File 'lib/refworks/reference.rb', line 339

def shortened_title
  st
end

#source_typeObject



166
167
168
# File 'lib/refworks/reference.rb', line 166

def source_type
  sr
end

#sponsoring_libraryObject



407
408
409
# File 'lib/refworks/reference.rb', line 407

def sponsoring_library
  sl
end

#sponsoring_library_locationObject



411
412
413
# File 'lib/refworks/reference.rb', line 411

def sponsoring_library_location
  ll
end

#start_pageObject



212
213
214
# File 'lib/refworks/reference.rb', line 212

def start_page
  sp
end

#subfile_databaseObject



296
297
298
# File 'lib/refworks/reference.rb', line 296

def subfile_database
  sf
end

#tertiary_authorsObject



256
257
258
# File 'lib/refworks/reference.rb', line 256

def tertiary_authors
  a3
end

#tertiary_titleObject



268
269
270
# File 'lib/refworks/reference.rb', line 268

def tertiary_title
  t3
end

#titleObject

alias



184
185
186
# File 'lib/refworks/reference.rb', line 184

def title
  t1
end

#urlObject



403
404
405
# File 'lib/refworks/reference.rb', line 403

def url
  ul
end

#user_1Object



343
344
345
# File 'lib/refworks/reference.rb', line 343

def user_1
  u1
end

#user_10Object



379
380
381
# File 'lib/refworks/reference.rb', line 379

def user_10
  u10
end

#user_11Object



383
384
385
# File 'lib/refworks/reference.rb', line 383

def user_11
  u11
end

#user_12Object



387
388
389
# File 'lib/refworks/reference.rb', line 387

def user_12
  u12
end

#user_13Object



391
392
393
# File 'lib/refworks/reference.rb', line 391

def user_13
  u13
end

#user_14Object



395
396
397
# File 'lib/refworks/reference.rb', line 395

def user_14
  u14
end

#user_15Object



399
400
401
# File 'lib/refworks/reference.rb', line 399

def user_15
  u15
end

#user_2Object



347
348
349
# File 'lib/refworks/reference.rb', line 347

def user_2
  u2
end

#user_3Object



351
352
353
# File 'lib/refworks/reference.rb', line 351

def user_3
  u3
end

#user_4Object



355
356
357
# File 'lib/refworks/reference.rb', line 355

def user_4
  u4
end

#user_5Object



359
360
361
# File 'lib/refworks/reference.rb', line 359

def user_5
  u5
end

#user_6Object



363
364
365
# File 'lib/refworks/reference.rb', line 363

def user_6
  u6
end

#user_7Object



367
368
369
# File 'lib/refworks/reference.rb', line 367

def user_7
  u7
end

#user_8Object



371
372
373
# File 'lib/refworks/reference.rb', line 371

def user_8
  u8
end

#user_9Object



375
376
377
# File 'lib/refworks/reference.rb', line 375

def user_9
  u9
end

#volumeObject



204
205
206
# File 'lib/refworks/reference.rb', line 204

def volume
  vo
end

#website_editorsObject



423
424
425
# File 'lib/refworks/reference.rb', line 423

def website_editors
  a6
end

#website_titleObject



419
420
421
# File 'lib/refworks/reference.rb', line 419

def website_title
  wt
end

#website_versionObject



427
428
429
# File 'lib/refworks/reference.rb', line 427

def website_version
  wv
end