refworks 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDY3YTk4NGZkNjk5Y2UwZmVlNmM1Y2NkMWJiYTg4MWQ2ODI5ODM3OQ==
4
+ MWIwYjRiNzYzNDMyMjhmMTM4NzVkNTUwNWQwZjJjNzNjODI0OGRjZA==
5
5
  data.tar.gz: !binary |-
6
- OGFjOTc1ODY1ODhkOWUyZDY4OTE0YzIzZjBjMWRkMDhhN2FlNWNiZg==
6
+ ZDdmNWIzNjgzM2Y2MTY5ZWQ0MDg5NWYwYTM5MDk0YTY4ZDI3OGU4YQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NzY5MDA5YjQxYjY2ODcwODQ0MTI2Y2VlNTIxZGNmMTc0NTU0NGNlZDljOWNk
10
- NzhlZTM1N2M1YzczOTc3ZmJkMDUxZmM1NTZkZWFlZDgyODBjNTQwYzRkZTVk
11
- YmQ4ZDFjMTNmNWQzZTkzYjVhYTg4ZDgyOTQwOThlMDM4MDk0YTI=
9
+ ZWNjMzZjZmNlMTc0MGYwODkwOGZhZjUzMTljOTg3Y2I5ZTFlZWRmNTJjNDIz
10
+ ZWE2ZDNmYjkxZWZiNDQwOTE4YWNjZThkNTY5MTcxYmM0MWM3YjMyMjNjNzVm
11
+ OTk5ZmIzY2QxMzAwYTZiMThmYzFjYWI4YWNkYmY5M2Y2NDIyMmI=
12
12
  data.tar.gz: !binary |-
13
- YTY3ZmZhZTdlMzIxOWIxZWRhYzgwNGRhYmMyNmU5NWJiMjc1YjFkZTlhNTEy
14
- NDIxMWQxYjBlZGRjNzIyN2JiZDFkNmJkODgyNjNmODZiMjY0Mjk5NGU2Zjdl
15
- ZWE2YTBlM2Y4NjFkODcwYTMzOWViYzQ5ZTU4YTYyNDUxNTg5OTk=
13
+ NTNhYmQ2ZjhjYTA3OWI1YTc3MjEzYjYyZGE3NDVmZjA5MTUzY2FhZTFhOGU0
14
+ MjY2MzE5MTA2YmEzNTJhYjEwODJkNTNmZTg2OTVmMWU3NmQ0ZjM5NGMxYzNl
15
+ NzNmNTU5ZDVjMGFjMzk5M2YyMTcyMmE3ZjU4M2JiZjMyMDY0N2U=
data/README.md CHANGED
@@ -29,7 +29,7 @@ Authentication
29
29
  - newrefsharesess not implemented.
30
30
 
31
31
  Authors,Descriptors,Periodicals,Folders
32
- - all and search are implemented.
32
+ - all, search are implemented.
33
33
  - addref (GET), addref (POST), clear, create, delete, edit, removeref (GET), removeref (POST) are not implemented.
34
34
  - note that in the code, these are broken out into four different classes.
35
35
 
@@ -60,12 +60,12 @@ PubMed
60
60
  - Nothing implemented.
61
61
 
62
62
  Reference
63
- - get implemented.
64
- - add, addcomment, delete (GET), delete (POST), deletecomment, edit, editcomment, globaledit, import,
63
+ - get, add, addcomment, delete (GET), edit implemented.
64
+ - delete (POST), deletecomment, editcomment, globaledit, import,
65
65
  importendnote, importpreview, openurl not implemented.
66
66
 
67
67
  Retrieve
68
- - advancesearch, all, author, byid, count, descriptor, dup, folder, modsince, nofolder, periodical, quick,
68
+ - advancesearch, all, author, byid (GET), count, descriptor, dup, folder, modsince, nofolder, periodical, quick,
69
69
  saved, specialfolder implemented.
70
70
  - byid (POST), openurl not implemented.
71
71
 
@@ -3,7 +3,7 @@ require "mash"
3
3
 
4
4
  #noinspection RubyTooManyInstanceVariablesInspection,RubyTooManyMethodsInspection
5
5
  class Reference
6
- attr_reader :rt, :rt_num, :rt_string, :sr, :id, :a1, :t1, :jf, :jo, :yr, :fd,
6
+ attr_accessor :rt, :rt_num, :rt_string, :sr, :id, :a1, :t1, :jf, :jo, :yr, :fd,
7
7
  :vo, :is, :sp, :op, :k1, :ab, :no, :a2, :t2, :ed, :pb, :pp, :a3,
8
8
  :a4, :a5, :t3, :sn, :av, :ad, :an, :la, :cl, :sf, :ot, :lk, :do,
9
9
  :cn, :db, :ds, :ip, :rd, :st, :u1, :u2, :u3, :u4, :u5, :u6, :u7,
@@ -144,6 +144,86 @@ class Reference
144
144
  @md = ref[:md]
145
145
  end
146
146
 
147
+ # method to produce RefWorks XML format
148
+ def to_refworks_xml
149
+ @xml = "<reference>"
150
+
151
+ @xml << "<rt>#{rt_string}</rt>" if @rt
152
+ @xml << "<sr>#{sr}</sr>" if @sr
153
+ @xml << "<id>#{id}</id>" if @id
154
+ a1.each {|a| @xml << "<a1>#{a}</a1>"} if @a1
155
+ @xml << "<t1>#{t1}</t1>" if @t1
156
+ @xml << "<jf>#{jf}</jf>" if @jf
157
+ @xml << "<jo>#{jo}</jo>" if @jo
158
+ @xml << "<yr>#{yr}</yr>" if @yr
159
+ @xml << "<fd>#{fd}</fd>" if @fd
160
+ @xml << "<vo>#{vo}</vo>" if @vo
161
+ @xml << "<is>#{is}</is>" if @is
162
+ @xml << "<sp>#{sp}</sp>" if @sp
163
+ @xml << "<op>#{op}</op>" if @op
164
+ k1.each {|k| @xml << "<k1>#{k1}</k1>"} if @k1
165
+ @xml << "<ab>#{ab}</ab>" if @ab
166
+ @xml << "<no>#{no}</no>" if @no
167
+ a2.each {|a| @xml << "<a2>#{a}</a2>"} if @a2
168
+ @xml << "<t2>#{t2}</t2>" if @t2
169
+ @xml << "<ed>#{ed}</ed>" if @ed
170
+ @xml << "<pb>#{pb}</pb>" if @pb
171
+ @xml << "<pp>#{pp}</pp>" if @pp
172
+ a3.each {|a| @xml << "<a3>#{a}</a3>"} if @a3
173
+ a4.each {|a| @xml << "<a4>#{a}</a4>"} if @a4
174
+ a5.each {|a| @xml << "<a5>#{a}</a5>"} if @a5
175
+ @xml << "<t3>#{t3}</t3>" if @t3
176
+ @xml << "<sn>#{sn}</sn>" if @sn
177
+ @xml << "<av>#{av}</av>" if @av
178
+ @xml << "<ad>#{ad}</ad>" if @ad
179
+ @xml << "<an>#{an}</an>" if @an
180
+ @xml << "<la>#{la}</la>" if @la
181
+ @xml << "<cl>#{cl}</cl>" if @cl
182
+ @xml << "<sf>#{sf}</sf>" if @sf
183
+ @xml << "<ot>#{ot}</ot>" if @ot
184
+ @xml << "<lk>#{lk}</lk>" if @lk
185
+ @xml << "<do>#{@do}</do>" if @do
186
+ @xml << "<cn>#{cn}</cn>" if @cn
187
+ @xml << "<db>#{db}</db>" if @db
188
+ @xml << "<ds>#{ds}</ds>" if @ds
189
+ @xml << "<ip>#{ip}</ip>" if @ip
190
+ @xml << "<rd>#{rd}</rd>" if @rd
191
+ @xml << "<st>#{st}</st>" if @st
192
+ @xml << "<u1>#{u1}</u1>" if @u1
193
+ @xml << "<u2>#{u2}</u2>" if @u2
194
+ @xml << "<u3>#{u3}</u3>" if @u3
195
+ @xml << "<u4>#{u4}</u4>" if @u4
196
+ @xml << "<u5>#{u5}</u5>" if @u5
197
+ @xml << "<u6>#{u6}</u6>" if @u6
198
+ @xml << "<u7>#{u7}</u7>" if @u7
199
+ @xml << "<u8>#{u8}</u8>" if @u8
200
+ @xml << "<u9>#{u9}</u9>" if @u9
201
+ @xml << "<u10>#{u10}</u10>" if @u10
202
+ @xml << "<u11>#{u11}</u11>" if @u11
203
+ @xml << "<u12>#{u12}</u12>" if @u12
204
+ @xml << "<u13>#{u13}</u13>" if @u13
205
+ @xml << "<u14>#{u14}</u14>" if @u14
206
+ @xml << "<u15>#{u15}</u15>" if @u15
207
+ @xml << "<ul>#{ul}</ul>" if @ul
208
+ @xml << "<sl>#{sl}</sl>" if @sl
209
+ @xml << "<ll>#{ll}</ll>" if @ll
210
+ @xml << "<cr>#{cr}</cr>" if @cr
211
+ @xml << "<wt>#{wt}</wt>" if @wt
212
+ a6.each {|a| @xml << "<a6>#{a}</a6>"} if @a6
213
+ @xml << "<wv>#{wv}</wv>" if @wv
214
+ @xml << "<wp>#{wp}</wp>" if @wp
215
+ @xml << "<ol>#{ol}</ol>" if @ol
216
+ @xml << "<pmid>#{pmid}</pmid>" if @pmid
217
+ @xml << "<pmcid>#{pmcid}</pmcid>" if @pmcid
218
+ # suppressing these - they are not part of the spec and RW trips if you try to add a ref with these
219
+ #@xml << "<fl>#{fl}</fl>" if @fl
220
+ #@xml << "<cd>#{cd}</cd>" if @cd
221
+ #@xml << "<md>#{md}</md>" if @md
222
+
223
+ @xml << "</reference>"
224
+ @xml
225
+ end
226
+
147
227
  # setup human-readable aliases as accessors
148
228
  # I've been consistent with the RefWorks tagged format legend (see end of this file)
149
229
  # plus I added some additional ones (like "authors" as a synonym for "primary_authors")
@@ -153,6 +233,10 @@ class Reference
153
233
  rt
154
234
  end
155
235
 
236
+ def reference_type=(val)
237
+ rt = val
238
+ end
239
+
156
240
  # extension
157
241
  def reference_type_num
158
242
  rt_num
@@ -167,275 +251,547 @@ class Reference
167
251
  sr
168
252
  end
169
253
 
254
+ def source_type=(val)
255
+ sr = val
256
+ end
257
+
170
258
  def primary_authors
171
259
  a1
172
260
  end
173
261
 
262
+ def primary_authors=(val)
263
+ a1 = val
264
+ end
265
+
174
266
  # alias
175
267
  def authors
176
268
  a1
177
269
  end
178
270
 
271
+ # alias
272
+ def authors=(val)
273
+ a1 = val
274
+ end
275
+
179
276
  def primary_title
180
277
  t1
181
278
  end
182
279
 
280
+ def primary_title=(val)
281
+ t1 = val
282
+ end
283
+
183
284
  # alias
184
285
  def title
185
286
  t1
186
287
  end
187
288
 
289
+ def title=(val)
290
+ t1=val
291
+ end
292
+
188
293
  def periodical_full
189
294
  jf
190
295
  end
191
296
 
297
+ def periodical_full=(val)
298
+ jf=val
299
+ end
300
+
192
301
  def periodical_abbrev
193
302
  jo
194
303
  end
195
304
 
305
+ def periodical_abbrev=(val)
306
+ jo=val
307
+ end
308
+
196
309
  def publication_year
197
310
  yr
198
311
  end
199
312
 
313
+ def publication_year=(val)
314
+ yr=val
315
+ end
316
+
200
317
  def publication_data_free_form
201
318
  fd
202
319
  end
203
320
 
321
+ def publication_data_free_form=(val)
322
+ fd=val
323
+ end
324
+
204
325
  def volume
205
326
  vo
206
327
  end
207
328
 
329
+ def volume=(val)
330
+ vo=val
331
+ end
332
+
208
333
  def issue
209
334
  is
210
335
  end
211
336
 
337
+ def issue=(val)
338
+ is=val
339
+ end
340
+
212
341
  def start_page
213
342
  sp
214
343
  end
215
344
 
345
+ def start_page=(val)
346
+ sp=val
347
+ end
348
+
216
349
  def other_pages
217
350
  op
218
351
  end
219
352
 
353
+ def other_pages=(val)
354
+ op=val
355
+ end
356
+
220
357
  def keyword
221
358
  k1
222
359
  end
223
360
 
361
+ def keyword=(val)
362
+ k1=val
363
+ end
364
+
224
365
  def keywords
225
366
  k1
226
367
  end
227
368
 
369
+ def keywords=(val)
370
+ k1=val
371
+ end
372
+
228
373
  def abstract
229
374
  ab
230
375
  end
231
376
 
377
+ def abstract=(val)
378
+ ab=val
379
+ end
380
+
232
381
  def notes
233
382
  no
234
383
  end
235
384
 
385
+ def notes=(val)
386
+ no=val
387
+ end
388
+
236
389
  def secondary_authors
237
390
  a2
238
391
  end
239
392
 
393
+ def secondary_authors=(val)
394
+ a2=val
395
+ end
396
+
240
397
  def secondary_title
241
398
  t2
242
399
  end
243
400
 
401
+ def secondary_title=(val)
402
+ t2=val
403
+ end
404
+
244
405
  def edition
245
406
  ed
246
407
  end
247
408
 
409
+ def edition=(val)
410
+ ed=val
411
+ end
412
+
248
413
  def publisher
249
414
  pb
250
415
  end
251
416
 
417
+ def publisher=(val)
418
+ pb=val
419
+ end
420
+
252
421
  def place_of_publication
253
422
  pp
254
423
  end
255
424
 
425
+ def place_of_publication=(val)
426
+ pp=val
427
+ end
428
+
256
429
  def tertiary_authors
257
430
  a3
258
431
  end
259
432
 
433
+ def tertiary_authors=(val)
434
+ a3=val
435
+ end
436
+
260
437
  def quaternary_authors
261
438
  a4
262
439
  end
263
440
 
441
+ def quaternary_authors=(val)
442
+ a4=val
443
+ end
444
+
264
445
  def quinary_authors
265
446
  a5
266
447
  end
267
448
 
449
+ def quinary_authors=(val)
450
+ a5=val
451
+ end
452
+
268
453
  def tertiary_title
269
454
  t3
270
455
  end
271
456
 
457
+ def tertiary_title=(val)
458
+ t3=val
459
+ end
460
+
272
461
  def issn_isbn
273
462
  sn
274
463
  end
275
464
 
465
+ def issn_isbn=(val)
466
+ sn=val
467
+ end
468
+
276
469
  def availability
277
470
  av
278
471
  end
279
472
 
473
+ def availability=(val)
474
+ av=val
475
+ end
476
+
280
477
  def author_address
281
478
  ad
282
479
  end
283
480
 
481
+ def author_address=(val)
482
+ ad=val
483
+ end
484
+
284
485
  def accession_number
285
486
  an
286
487
  end
287
488
 
489
+ def accession_number=(val)
490
+ an=val
491
+ end
492
+
288
493
  def language
289
494
  la
290
495
  end
291
496
 
497
+ def language=(val)
498
+ la=val
499
+ end
500
+
292
501
  def classification
293
502
  cl
294
503
  end
295
504
 
505
+ def classification=(val)
506
+ cl=val
507
+ end
508
+
296
509
  def subfile_database
297
510
  sf
298
511
  end
299
512
 
513
+ def subfile_database=(val)
514
+ sf=val
515
+ end
516
+
300
517
  def original_foreign_title
301
518
  ot
302
519
  end
303
520
 
521
+ def original_foreign_title=(val)
522
+ ot=val
523
+ end
524
+
304
525
  def links
305
526
  lk
306
527
  end
307
528
 
529
+ def links=(val)
530
+ lk=val
531
+ end
532
+
308
533
  def digital_object_identifier
309
534
  # @ sign to avoid collision with Ruby keyword 'do'
310
535
  @do
311
536
  end
312
537
 
538
+ def digital_object_identifier=(val)
539
+ # @ sign to avoid collision with Ruby keyword 'do'
540
+ @do=val
541
+ end
542
+
313
543
  # alias
314
544
  def doi
315
545
  # @ sign to avoid collision with Ruby keyword 'do'
316
546
  @do
317
547
  end
318
548
 
549
+ # alias
550
+ def doi=(val)
551
+ # @ sign to avoid collision with Ruby keyword 'do'
552
+ @do=val
553
+ end
554
+
319
555
  def call_number
320
556
  cn
321
557
  end
322
558
 
559
+ def call_number=(val)
560
+ cn=val
561
+ end
562
+
323
563
  def database
324
564
  db
325
565
  end
326
566
 
567
+ def database=(val)
568
+ db=val
569
+ end
570
+
327
571
  def data_source
328
572
  ds
329
573
  end
330
574
 
575
+ def data_source=(val)
576
+ ds=val
577
+ end
578
+
331
579
  def identifying_phrase
332
580
  ip
333
581
  end
334
582
 
583
+ def identifying_phrase=(val)
584
+ ip=val
585
+ end
586
+
335
587
  def retrieved_date
336
588
  rd
337
589
  end
338
590
 
591
+ def retrieved_date=(val)
592
+ rd=val
593
+ end
594
+
339
595
  def shortened_title
340
596
  st
341
597
  end
342
598
 
599
+ def shortened_title=(val)
600
+ st=val
601
+ end
602
+
343
603
  def user_1
344
604
  u1
345
605
  end
346
606
 
607
+ def user_1=(val)
608
+ u1=val
609
+ end
610
+
347
611
  def user_2
348
612
  u2
349
613
  end
350
614
 
615
+ def user_2=(val)
616
+ u2=val
617
+ end
618
+
351
619
  def user_3
352
620
  u3
353
621
  end
354
622
 
623
+ def user_3=(val)
624
+ u3=val
625
+ end
626
+
355
627
  def user_4
356
628
  u4
357
629
  end
358
630
 
631
+ def user_4=(val)
632
+ u4=val
633
+ end
634
+
359
635
  def user_5
360
636
  u5
361
637
  end
362
638
 
639
+ def user_5=(val)
640
+ u5=val
641
+ end
642
+
363
643
  def user_6
364
644
  u6
365
645
  end
366
646
 
647
+ def user_6=(val)
648
+ u6=val
649
+ end
650
+
367
651
  def user_7
368
652
  u7
369
653
  end
370
654
 
655
+ def user_7=(val)
656
+ u7=val
657
+ end
658
+
371
659
  def user_8
372
660
  u8
373
661
  end
374
662
 
663
+ def user_8=(val)
664
+ u8=val
665
+ end
666
+
375
667
  def user_9
376
668
  u9
377
669
  end
378
670
 
671
+ def user_9=(val)
672
+ u9=val
673
+ end
674
+
379
675
  def user_10
380
676
  u10
381
677
  end
382
678
 
679
+ def user_10=(val)
680
+ u10=val
681
+ end
682
+
383
683
  def user_11
384
684
  u11
385
685
  end
386
686
 
687
+ def user_11=(val)
688
+ u11=val
689
+ end
690
+
387
691
  def user_12
388
692
  u12
389
693
  end
390
694
 
695
+ def user_12=(val)
696
+ u12=val
697
+ end
698
+
391
699
  def user_13
392
700
  u13
393
701
  end
394
702
 
703
+ def user_13=(val)
704
+ u13=val
705
+ end
706
+
395
707
  def user_14
396
708
  u14
397
709
  end
398
710
 
711
+ def user_14=(val)
712
+ u14=val
713
+ end
714
+
399
715
  def user_15
400
716
  u15
401
717
  end
402
718
 
719
+ def user_15=(val)
720
+ u15=val
721
+ end
722
+
403
723
  def url
404
724
  ul
405
725
  end
406
726
 
727
+ def url=(val)
728
+ ul=val
729
+ end
730
+
407
731
  def sponsoring_library
408
732
  sl
409
733
  end
410
734
 
735
+ def sponsoring_library=(val)
736
+ sl=val
737
+ end
738
+
411
739
  def sponsoring_library_location
412
740
  ll
413
741
  end
414
742
 
743
+ def sponsoring_library_location=(val)
744
+ ll=val
745
+ end
746
+
415
747
  def cited_references
416
748
  cr
417
749
  end
418
750
 
751
+ def cited_references=(val)
752
+ cr=val
753
+ end
754
+
419
755
  def website_title
420
756
  wt
421
757
  end
422
758
 
759
+ def website_title=(val)
760
+ wt=val
761
+ end
762
+
423
763
  def website_editors
424
764
  a6
425
765
  end
426
766
 
767
+ def website_editors=(val)
768
+ a6=val
769
+ end
770
+
427
771
  def website_version
428
772
  wv
429
773
  end
430
774
 
775
+ def website_version=(val)
776
+ wv=val
777
+ end
778
+
431
779
  def date_of_electronic_publication
432
780
  wp
433
781
  end
434
782
 
783
+ def date_of_electronic_publication=(val)
784
+ wp=val
785
+ end
786
+
435
787
  def output_language
436
788
  ol
437
789
  end
438
790
 
791
+ def output_language=(val)
792
+ ol=val
793
+ end
794
+
439
795
  # extension
440
796
  def folder
441
797
  fl
@@ -0,0 +1,63 @@
1
+ class ReferenceAddRequest < ReferenceRequest
2
+ def self.call_method
3
+ 'add'
4
+ end
5
+
6
+ def self.http_request_verb
7
+ 'POST'
8
+ end
9
+
10
+ def self.generate_request_info(params)
11
+
12
+ # get common Reference parameters
13
+ class_params = generate_class_params(params)
14
+
15
+ # query parameters for the add call
16
+ method_params = { :method => call_method,
17
+ :folder => params[:folder], # this is optional
18
+ :returnrefs => params[:returnrefs] || "0", # this is technically optional but I'm explicitly passing default of 0
19
+ }
20
+
21
+ query_string_params = class_params.merge(method_params)
22
+ # add has a POST payload
23
+
24
+ # construct XML payload
25
+ xml_payload = '<RWRequest class="reference" method="add"><RWRefData><refworks xmlns:refworks="www.refworks.com/xml/">'
26
+ params[:references].each do |ref|
27
+ xml_payload << ref.to_refworks_xml
28
+ end
29
+ # xml_payload << '<reference>
30
+ #<rt>Book, Whole</rt>
31
+ #<sr>Print(0)</sr>
32
+ #<id>330</id>
33
+ #<t1>
34
+ #4898816 <B>Mediat</B>&lt;&gt;ors for bioelectrochemical <SUP>cells</SUP> h20 to test for microbiologlklklkicakkkl activity. <U>Anthony</U> P F Turner, Ann Swain, Graha <I>Ramsay</I>, Marc Cardosi, Bernard H Schneider, www.refworks.com?a=23&amp;b=34 Cranfield, United Kingdom assigned to Paul de la Pena Limitedl
35
+ #</t1>
36
+ #<jf>Biotechnology Advances</jf>
37
+ #<jo>Biotechnol.Adv.</jo>
38
+ #<yr>1990</yr>
39
+ #<vo>8</vo>
40
+ #<is>3</is>
41
+ #<sp>613</sp>
42
+ #<no>JID: 8403708; <I>ppublish</I></no>
43
+ #<a1>Aggarwal,A.</a1>
44
+ #<a1>Schneider,D. J.</a1>
45
+ #<a1>Sobel,B. E.</a1>
46
+ #<a1>Dauerman,H. L.</a1>
47
+ #<t3>this is a title</t3>
48
+ #<sn>0734-9750</sn>
49
+ #<an>14549739; 0</an>
50
+ #<la>ENG</la>
51
+ #<sf>JOURNAL ARTICLE</sf>
52
+ #<do>073497509090779B [pii]</do>
53
+ #<st>this is a <U>shortened</U> title</st>
54
+ #<ol>Unknown(0)</ol>
55
+ #</reference>'
56
+ xml_payload << '</refworks></RWRefData></RWRequest>'
57
+
58
+ message_body = xml_payload
59
+
60
+ # return the request info
61
+ {:params => query_string_params, :body => message_body, :headers => {'Content-type' => 'text/xml'}}
62
+ end
63
+ end
@@ -0,0 +1,3 @@
1
+ class ReferenceAddResponse < ReferenceResponse
2
+
3
+ end
@@ -0,0 +1,41 @@
1
+ class ReferenceAddcommentRequest < ReferenceRequest
2
+ def self.call_method
3
+ 'addcomment'
4
+ end
5
+
6
+ def self.http_request_verb
7
+ 'POST'
8
+ end
9
+
10
+ def self.generate_request_info(params)
11
+
12
+ # get common Reference parameters
13
+ class_params = generate_class_params(params)
14
+
15
+ # query parameters for the addcomment call
16
+ method_params = { :method => call_method,
17
+ :id => params[:id],
18
+ }
19
+
20
+ query_string_params = class_params.merge(method_params)
21
+ # addcomment has a POST payload
22
+
23
+ # construct XML payload
24
+ xml_payload = '<RWRequest class="reference" method="addcomment">'
25
+ params[:comments].each do |cmnt|
26
+ title = cmnt[:title]
27
+ name = cmnt[:name]
28
+ inetinfo = cmnt[:inetinfo]
29
+ comment = cmnt[:comment]
30
+ parentid = cmnt[:parentid] || "-1"
31
+ xml_payload << "<comment id=\"\" title=\"#{title}\" name=\"#{name}\" inetinfo=\"#{inetinfo}\" created=\"\" comment=\"#{comment}\" parentid=\"#{parentid}\"/>"
32
+ end
33
+
34
+ xml_payload << '</RWRequest>'
35
+
36
+ message_body = xml_payload
37
+
38
+ # return the request info
39
+ {:params => query_string_params, :body => message_body, :headers => {'Content-type' => 'text/xml'}}
40
+ end
41
+ end
@@ -0,0 +1,2 @@
1
+ class ReferenceAddcommentResponse < ReferenceResponse
2
+ end
@@ -0,0 +1,25 @@
1
+ class ReferenceDeleteRequest < ReferenceRequest
2
+ def self.call_method
3
+ 'delete'
4
+ end
5
+
6
+ def self.http_request_verb
7
+ 'GET'
8
+ end
9
+
10
+ def self.generate_request_info(params)
11
+
12
+ # get common Reference parameters
13
+ class_params = generate_class_params(params)
14
+
15
+ # query parameters for the delete call
16
+ method_params = { :method => call_method,
17
+ :id => params[:ids],
18
+ }
19
+
20
+ query_string_params = class_params.merge(method_params)
21
+
22
+ # return the request info
23
+ {:params => query_string_params}
24
+ end
25
+ end
@@ -0,0 +1,2 @@
1
+ class ReferenceDeleteResponse < ReferenceResponse
2
+ end
@@ -0,0 +1,35 @@
1
+ class ReferenceEditRequest < ReferenceRequest
2
+ def self.call_method
3
+ 'edit'
4
+ end
5
+
6
+ def self.http_request_verb
7
+ 'POST'
8
+ end
9
+
10
+ def self.generate_request_info(params)
11
+
12
+ # get common Reference parameters
13
+ class_params = generate_class_params(params)
14
+
15
+ # query parameters for the edit call
16
+ method_params = { :method => call_method,
17
+ }
18
+
19
+ query_string_params = class_params.merge(method_params)
20
+ # add has a POST payload
21
+
22
+ # construct XML payload
23
+ xml_payload = '<RWRequest class="reference" method="edit"><RWRefData><refworks xmlns:refworks="www.refworks.com/xml/">'
24
+ params[:references].each do |ref|
25
+ xml_payload << ref.to_refworks_xml
26
+ end
27
+
28
+ xml_payload << '</refworks></RWRefData></RWRequest>'
29
+
30
+ message_body = xml_payload
31
+
32
+ # return the request info
33
+ {:params => query_string_params, :body => message_body, :headers => {'Content-type' => 'text/xml'}}
34
+ end
35
+ end
@@ -0,0 +1,3 @@
1
+ class ReferenceEditResponse < ReferenceResponse
2
+
3
+ end
@@ -1,3 +1,3 @@
1
1
  class Refworks
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: refworks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fran Fabrizio
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-03 00:00:00.000000000 Z
11
+ date: 2014-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -152,6 +152,14 @@ files:
152
152
  - lib/refworks/properties/typelabels/properties_typelabels_response.rb
153
153
  - lib/refworks/properties/typelabels/typelabel.rb
154
154
  - lib/refworks/reference.rb
155
+ - lib/refworks/reference/add/reference_add_request.rb
156
+ - lib/refworks/reference/add/reference_add_response.rb
157
+ - lib/refworks/reference/addcomment/reference_addcomment_request.rb
158
+ - lib/refworks/reference/addcomment/reference_addcomment_response.rb
159
+ - lib/refworks/reference/delete/reference_delete_request.rb
160
+ - lib/refworks/reference/delete/reference_delete_response.rb
161
+ - lib/refworks/reference/edit/reference_edit_request.rb
162
+ - lib/refworks/reference/edit/reference_edit_response.rb
155
163
  - lib/refworks/reference/get/reference_get_request.rb
156
164
  - lib/refworks/reference/get/reference_get_response.rb
157
165
  - lib/refworks/reference/reference_request.rb