logstash-filter-ezproxy 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +2 -0
  3. data/CONTRIBUTORS +10 -0
  4. data/DEVELOPER.md +2 -0
  5. data/Gemfile +5 -0
  6. data/LICENSE +7 -0
  7. data/README.md +86 -0
  8. data/lib/logstash/filters/dawsonera.rb +41 -0
  9. data/lib/logstash/filters/ebscohost.rb +116 -0
  10. data/lib/logstash/filters/emerald.rb +96 -0
  11. data/lib/logstash/filters/ezproxy.rb +93 -0
  12. data/lib/logstash/filters/jstor.rb +112 -0
  13. data/lib/logstash/filters/lexisnexis.rb +37 -0
  14. data/lib/logstash/filters/sage.rb +39 -0
  15. data/lib/logstash/filters/sciencedirect.rb +171 -0
  16. data/lib/logstash/filters/tandf.rb +55 -0
  17. data/lib/logstash/filters/wiley.rb +202 -0
  18. data/logstash-filter-ezproxy.gemspec +21 -0
  19. data/spec/filters/dawsonera/dawsonera.2014-09-03.csv +4 -0
  20. data/spec/filters/dawsonera/dawsonera_spec.rb +15 -0
  21. data/spec/filters/ebscohost/ebscohost.2014-08-21.csv +13 -0
  22. data/spec/filters/ebscohost/ebscohost_spec.rb +22 -0
  23. data/spec/filters/emerald/emerald.2015-08-11.csv +15 -0
  24. data/spec/filters/emerald/emerald_spec.rb +17 -0
  25. data/spec/filters/ezproxy_spec.rb +53 -0
  26. data/spec/filters/jstor/jstor.2013-10-03.csv +18 -0
  27. data/spec/filters/jstor/jstor_spec.rb +20 -0
  28. data/spec/filters/lexisnexis/lexisnexis.2013-05-17.csv +2 -0
  29. data/spec/filters/lexisnexis/lexisnexis_spec.rb +15 -0
  30. data/spec/filters/sage/sage_spec.rb +16 -0
  31. data/spec/filters/sage/sagej.2016-12-05.csv +6 -0
  32. data/spec/filters/sciencedirect/sciencedirect_spec.rb +17 -0
  33. data/spec/filters/sciencedirect/sd.2013-01-09.csv +28 -0
  34. data/spec/filters/tandf/tandf.2015-03-25.csv +9 -0
  35. data/spec/filters/tandf/tandf_spec.rb +17 -0
  36. data/spec/filters/wiley/wiley.2013-04-15.csv +28 -0
  37. data/spec/filters/wiley/wiley_spec.rb +19 -0
  38. data/spec/spec_helper.rb +2 -0
  39. metadata +130 -0
@@ -0,0 +1,21 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'logstash-filter-ezproxy'
3
+ s.version = '0.1.0'
4
+ s.licenses = ['Apache-2.0']
5
+ s.summary = 'Write a short summary, because Rubygems requires one.'
6
+ s.authors = ['Dom Belcher']
7
+ s.email = 'dominic.belcher@gmail.com'
8
+ s.require_paths = ['lib']
9
+
10
+ # Files
11
+ s.files = Dir['lib/**/*','spec/**/*','vendor/**/*','*.gemspec','*.md','CONTRIBUTORS','Gemfile','LICENSE','NOTICE.TXT']
12
+ # Tests
13
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
14
+
15
+ # Special flag to let us know this is actually a logstash plugin
16
+ s.metadata = { "logstash_plugin" => "true", "logstash_group" => "filter" }
17
+
18
+ # Gem dependencies
19
+ s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0"
20
+ s.add_development_dependency 'logstash-devutils'
21
+ end
@@ -0,0 +1,4 @@
1
+ out-unitid;out-online_identifier;out-rtype;out-mime;in-url
2
+ /abstract/9780815517924;9780815517924;ABS;MISC;https://www.dawsonera.com/abstract/9780815517924
3
+ /readonline/9780815517924;9780815517924;BOOK;MISC;https://www.dawsonera.com/readonline/9780815517924
4
+ /download/drm/1646219554/9780815517924;9780815517924;BOOK;PDF;https://www.dawsonera.com/download/drm/1646219554/9780815517924
@@ -0,0 +1,15 @@
1
+ require 'logstash/filters/dawsonera'
2
+ require 'csv'
3
+
4
+ RSpec.describe DawsonEra do
5
+ CSV.foreach('spec/filters/dawsonera/dawsonera.2014-09-03.csv', { :col_sep => ';', headers: true }) do |row|
6
+ name = "tests a URL " + row[4]
7
+ it name do
8
+ data = DawsonEra.parse(row[4])
9
+ expect(data["unit_id"]).to eq(row[0])
10
+ expect(data["online_identifier"]).to eq(row[1])
11
+ expect(data["rtype"]).to eq(row[2])
12
+ expect(data["mime"]).to eq(row[3])
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ out-unitid;out-rtype;out-mime;out-doi;out-print_identifier;out-num;out-vol;out-first_page;out-last_page;out-publication_title;out-platform_name;in-url
2
+ ;TOC;MISC;;;;;;;;;https://web-ebscohost-com/ehost/results?sid=6323ca41-66ca-4e71-a8d9-c2a2cae26f16%40sessionmgr110&vid=2&hid=103&bquery=JN+%22Computers+in+Libraries%22+AND+DT+20130901&bdata=JmRiPXJ6aCZsYW5nPWZyJnR5cGU9MSZzaXRlPWVob3N0LWxpdmU%3d
3
+ ;ARTICLE;PDF;;;;;;;;;https://web-ebscohost-com/ehost/pdfviewer/pdfviewer?sid=6323ca41-66ca-4e71-a8d9-c2a2cae26f16%40sessionmgr110&vid=4&hid=103
4
+ 90496319;ARTICLE;PDF;;;;;;;;;https://content.ebscohost.com/pdf29_30/pdf/2013/CLB/01Sep13/90496319.pdf?T=P&P=AN&K=2012317464&S=R&D=rzh&EbscoContent=dGJyMNXb4kSeqa44zdnyOLCmr0ueprJSsKi4Sa%2BWxWXS&ContentCustomer=dGJyMPGvrkm2p7JKuePfgeyx44Dt6fIA
5
+ 96867431;ARTICLE;PDF;;;;;;;;;http://content.ebscohost.com:80/ContentServer.asp?T=P&P=AN&K=96867431&S=R&D=asu&EbscoContent=dGJyMNLr40Sep7I4v%2BbwOLCmr02eprRSsKm4SbaWxWXS&ContentCustomer=dGJyMPGqtlCxprBNuePfgeyx44Dt6fIA
6
+ ;BOOK;PDF;;;;;;;;;http://web.b.ebscohost.com/ehost/ebookviewer/ebook?sid=f89d9812-0d3a-44ed-9c97-dda110cc60a3%40sessionmgr106&vid=0&hid=124&format=EB
7
+ ;SEARCH;MISC;;;;;;;;;http://web.b.ebscohost.com/ehost/search/basic?sid=609d197f-439e-4da7-b804-f78b65af2807@sessionmgr120&vid=19&tid=2003EB
8
+ 348283;REF;HTML;;;;;;;;;http://web.b.ebscohost.com/ehost/detail/detail?sid=609d197f-439e-4da7-b804-f78b65af2807%40sessionmgr120&vid=21&hid=116&bdata=Jmxhbmc9ZnImc2l0ZT1laG9zdC1saXZl#anchor=tocAnchor&db=nlebk&AN=348283
9
+ ;SEARCH;MISC;;;;;;;;;http://web.a.ebscohost.com/ehost/search/advanced?sid=1f85c7ec-9906-4b8e-917f-fb4c7171ffe4%40sessionmgr4007&vid=1&hid=4201
10
+ ;TOC;MISC;;;;;;;;;http://web.a.ebscohost.com/ehost/resultsadvanced?sid=1f85c7ec-9906-4b8e-917f-fb4c7171ffe4%40sessionmgr4007&vid=3&hid=4201&bdata=JmRiPWE5aCZicXVlcnk9JmNsaTA9RlQmY2x2MD1ZJmNsaTE9U08mY2x2MT1tZWRlY2luZSZjbGkyPVBaMSZjbHYyPUFydGljbGUmbGFuZz1mciZ0eXBlPTEmc2l0ZT1laG9zdC1saXZl
11
+ 118470727;REF;HTML;;;;;;;;;http://web.a.ebscohost.com/ehost/detail/detail?vid=4&sid=1f85c7ec-9906-4b8e-917f-fb4c7171ffe4%40sessionmgr4007&hid=4201&bdata=Jmxhbmc9ZnImc2l0ZT1laG9zdC1saXZl#AN=118470727&db=a9h
12
+ 10.1016/j.medmal.2016.06.002;OPENURL;HTML;10.1016/j.medmal.2016.06.002;0399077X;7;46;372;379;Medecine Maladies Infectieuses;;http://resolver.ebscohost.com/openurl?sid=EBSCO:a9h&genre=article&issn=0399077X&ISBN=&volume=46&issue=7&date=20161001&spage=372&pages=372-379&title=Medecine%20Maladies%20Infectieuses&atitle=Community-acquired%20Clostridium%20difficile%20infections%20in%20emergency%20departments.&aulast=Lefevre-Tantet-Etchebarne%2C%20D.&id=DOI:10.1016/j.medmal.2016.06.002
13
+ ;TOC;MISC;;;;;;;;EBSCO Discovery Service;http://eds.a.ebscohost.com:80/eds/results?sid=2ff3e174-b478-4663-b25e-8dc8ccd9c1c4%40sessionmgr4003&vid=1&hid=4113&bquery=(Generations%2c+AND+Discourse%2c)+AND+(Social+AND+Change.+AND+By+AND+Karen+AND+Foster)&bdata=Jmxhbmc9ZnImdHlwZT0wJnNpdGU9ZWRzLWxpdmU%3d
@@ -0,0 +1,22 @@
1
+ require 'logstash/filters/ebscohost'
2
+ require 'csv'
3
+
4
+ RSpec.describe Ebscohost do
5
+ CSV.foreach('spec/filters/ebscohost/ebscohost.2014-08-21.csv', { :col_sep => ';', headers: true }) do |row|
6
+ name = "tests a URL " + row[11]
7
+ it name do
8
+ data = Ebscohost.parse(row[11])
9
+ expect(data["unit_id"]).to eq(row[0])
10
+ expect(data["rtype"]).to eq(row[1])
11
+ expect(data["mime"]).to eq(row[2])
12
+ expect(data["doi"]).to eq(row[3])
13
+ expect(data["print_identifier"]).to eq(row[4])
14
+ expect(data["num"]).to eq(row[5])
15
+ expect(data["vol"]).to eq(row[6])
16
+ expect(data["first_page"]).to eq(row[7])
17
+ expect(data["last_page"]).to eq(row[8])
18
+ expect(data["publication_title"]).to eq(row[9])
19
+ expect(data["platform_name"]).to eq(row[10])
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,15 @@
1
+ out-title_id;out-doi;out-unitid;out-publication_date;out-rtype;out-mime;in-url
2
+ ail;;series/ail;;BOOKSERIE;MISC;http://www.emeraldinsight.com/series/ail
3
+ 0065-2830;10.1108/S0065-2830(2012)35;10.1108/S0065-2830(2012)35;2012;BOOKSERIE;MISC;http://www.emeraldinsight.com/doi/book/10.1108/S0065-2830%282012%2935
4
+ 0065-2830;10.1108/S0065-2830(2012)0000035004;10.1108/S0065-2830(2012)0000035004;2012;ABS;MISC;http://www.emeraldinsight.com/doi/abs/10.1108/S0065-2830%282012%290000035004
5
+ 0065-2830;10.1108/S0065-2830(2012)0000035004;10.1108/S0065-2830(2012)0000035004;2012;ARTICLE;HTML;http://www.emeraldinsight.com/doi/full/10.1108/S0065-2830%282012%290000035004
6
+ 0065-2830;10.1108/S0065-2830(2012)0000035004;10.1108/S0065-2830(2012)0000035004;2012;ARTICLE;PDFPLUS;http://www.emeraldinsight.com/doi/pdfplus/10.1108/S0065-2830%282012%290000035004
7
+ 0065-2830;10.1108/S0065-2830(2012)0000035004;10.1108/S0065-2830(2012)0000035004;2012;ARTICLE;MISC;http://www.emeraldinsight.com/doi/epub/10.1108/S0065-2830%282012%290000035004
8
+ ejim;;loi/ejim;;;MISC;http://www.emeraldinsight.com/loi/ejim
9
+ ejim;;ejim/18/3;;TOC;MISC;http://www.emeraldinsight.com/toc/ejim/18/3
10
+ EJIM;10.1108/EJIM-10-2013-0115;10.1108/EJIM-10-2013-0115;;ABS;MISC;http://www.emeraldinsight.com/doi/abs/10.1108/EJIM-10-2013-0115
11
+ EJIM;10.1108/EJIM-10-2013-0115;10.1108/EJIM-10-2013-0115;;ARTICLE;HTML;http://www.emeraldinsight.com/doi/full/10.1108/EJIM-10-2013-0115
12
+ EJIM;10.1108/EJIM-10-2013-0115;10.1108/EJIM-10-2013-0115;;ARTICLE;PDFPLUS;http://www.emeraldinsight.com/doi/pdfplus/10.1108/EJIM-10-2013-0115
13
+ 14601061211272358;10.1108/14601061211272358;10.1108/14601061211272358;;ABS;MISC;http://www.emeraldinsight.com/doi/abs/10.1108/14601061211272358
14
+ 14601061211272358;10.1108/14601061211272358;10.1108/14601061211272358;;ARTICLE;HTML;http://www.emeraldinsight.com/doi/full/10.1108/14601061211272358
15
+ 14601061211272358;10.1108/14601061211272358;10.1108/14601061211272358;;ARTICLE;PDFPLUS;http://www.emeraldinsight.com/doi/pdfplus/10.1108/14601061211272358
@@ -0,0 +1,17 @@
1
+ require 'logstash/filters/emerald'
2
+ require 'csv'
3
+
4
+ RSpec.describe Emerald do
5
+ CSV.foreach('spec/filters/emerald/emerald.2015-08-11.csv', { :col_sep => ';', headers: true }) do |row|
6
+ name = "tests a URL " + row[6]
7
+ it name do
8
+ data = Emerald.parse(row[6])
9
+ expect(data["title_id"]).to eq(row[0])
10
+ expect(data["doi"]).to eq(row[1])
11
+ expect(data["unit_id"]).to eq(row[2])
12
+ expect(data["publication_date"]).to eq(row[3])
13
+ expect(data["rtype"]).to eq(row[4])
14
+ expect(data["mime"]).to eq(row[5])
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,53 @@
1
+ # encoding: utf-8
2
+ require_relative '../spec_helper'
3
+ require "logstash/filters/ezproxy"
4
+
5
+ describe LogStash::Filters::Ezproxy do
6
+ describe "set " do
7
+ config <<-CONFIG
8
+ filter {
9
+ ezproxy {
10
+ url => "input_url"
11
+ }
12
+ }
13
+ CONFIG
14
+
15
+ sample("input_url" => "http://www.jstor.org/stable/10.1086/665036") do
16
+ insist { subject }.include?("request_metadata")
17
+ expected_fields = %w(unit_id doi title_id rtype mime)
18
+
19
+ expected_fields.each do |f|
20
+ insist { subject.get('request_metadata' )}.include?(f)
21
+ end
22
+ end
23
+
24
+ sample("input_url" => "http://eds.a.ebscohost.com:80/eds/results?sid=2ff3e174-b478-4663-b25e-8dc8ccd9c1c4%40sessionmgr4003&vid=1&hid=4113&bquery=(Generations%2c+AND+Discourse%2c)+AND+(Social+AND+Change.+AND+By+AND+Karen+AND+Foster)&bdata=Jmxhbmc9ZnImdHlwZT0wJnNpdGU9ZWRzLWxpdmU%3d") do
25
+ insist { subject }.include?("request_metadata")
26
+ expected_fields = %w(platform_name provider rtype mime)
27
+
28
+ expected_fields.each do |f|
29
+ insist { subject.get('request_metadata' )}.include?(f)
30
+ end
31
+ end
32
+
33
+ sample("input_url" => "http://www.tandfonline.com:80/toc/gaan20/current") do
34
+ insist { subject }.include?("request_metadata")
35
+ expected_fields = %w(title_id rtype mime unit_id)
36
+
37
+ expected_fields.each do |f|
38
+ insist { subject.get('request_metadata' )}.include?(f)
39
+ end
40
+ end
41
+
42
+ # sample("input_url" => "http://ezproxy.lancs.ac.uk:80/login?url=http://www.jstor.org/px/xhr/api/v1/collector") do
43
+ # insist { subject }.include?("request_metadata")
44
+ # # expected_fields = %w(unit_id doi title_id rtype mime)
45
+
46
+ # # expected_fields.each do |f|
47
+ # # insist { subject.get('request_metadata' )}.include?(f)
48
+ # # end
49
+
50
+ # expect(subject.get('[request_metadata][provider]') ).to eq("jstor")
51
+ # end
52
+ end
53
+ end
@@ -0,0 +1,18 @@
1
+ out-unitid;out-doi;out-title_id;out-rtype;out-mime;out-publication_date;out-vol;out-issue;out-first_page;in-url
2
+ 665036;10.1086/665036;665036;TOC;MISC;;;;;http://www.jstor.org/stable/10.1086/665036
3
+ cmr.2013.55.issue-2;;cmr;TOC;MISC;2013;55;2;;http://www.jstor.org/stable/10.1525/cmr.2013.55.issue-2
4
+ cari13424;10.7312/cari13424;cari13424;TOC;MISC;;;;;http://www.jstor.org/stable/10.7312/cari13424
5
+ harvardreview;;harvardreview;TOC;MISC;;;;;http://www.jstor.org/action/showPublication?journalCode=harvardreview
6
+ i25703249;;i25703249;TOC;MISC;;;;;http://www.jstor.org/stable/i25703249
7
+ jmedirelicult.39.2.issue-2;;jmedirelicult;TOC;MISC;;39;2;;http://www.jstor.org/stable/10.5325/jmedirelicult.39.2.issue-2
8
+ 690326;10.2307/690326;690326;ARTICLE;PDFPLUS;;;;;http://www.jstor.org/stable/pdfplus/690326.pdf
9
+ 25703252;;25703252;ABS;MISC;;;;;http://www.jstor.org/stable/info/25703252
10
+ 25703252;;25703252;PREVIEW;MISC;;;;;http://www.jstor.org/stable/view/25703252
11
+ 25703252;10.2307/25703252;25703252;ARTICLE;PDFPLUS;;;;;http://www.jstor.org/stable/pdfplus/25703252.pdf?acceptTC=true
12
+ 19thcenturymusic;;19thcenturymusic;TOC;MISC;;;;;http://www.jstor.org/journal/19thcenturymusic
13
+ 23098031;10.2307/23098031;23098031;ARTICLE_SECTION;GIF;;;;;http://www.jstor.org/stable/get_image/23098031
14
+ gfc.2010.10.4.cover;10.1525/gfc.2010.10.4.cover;gfc;COVER;GIF;2010;10;4;;http://www.jstor.org/stable/get_image/10.1525/gfc.2010.10.4.cover
15
+ merrpalmquar1982.59.2.0198;10.13110/merrpalmquar1982.59.2.0198;merrpalmquar1982;ARTICLE;PDF;;59;2;198;http://www.jstor.org/stable/pdf/10.13110/merrpalmquar1982.59.2.0198.pdf
16
+ gfc.2010.10.3.14;10.1525/gfc.2010.10.3.14;gfc;ARTICLE;PDF;2010;10;3;14;http://www.jstor.org/stable/pdf/10.1525/gfc.2010.10.3.14.pdf
17
+ gfc.2010.10.4.cover;10.1525/gfc.2010.10.4.cover;gfc;COVER;PDF;2010;10;4;;http://www.jstor.org/stable/pdf/10.1525/gfc.2010.10.4.cover.pdf
18
+ gfc.2010.10.4.98a;10.1525/gfc.2010.10.4.98a;gfc;ARTICLE;PDF;2010;10;4;98;http://www.jstor.org/stable/pdf/10.1525/gfc.2010.10.4.98a.pdf
@@ -0,0 +1,20 @@
1
+ require 'logstash/filters/jstor'
2
+ require 'csv'
3
+
4
+ RSpec.describe Jstor do
5
+ CSV.foreach('spec/filters/jstor/jstor.2013-10-03.csv', { :col_sep => ';', headers: true }) do |row|
6
+ name = "tests a URL " + row[9]
7
+ it name do
8
+ data = Jstor.parse(row[9])
9
+ expect(data["unit_id"]).to eq(row[0])
10
+ expect(data["doi"]).to eq(row[1])
11
+ expect(data["title_id"]).to eq(row[2])
12
+ expect(data["rtype"]).to eq(row[3])
13
+ expect(data["mime"]).to eq(row[4])
14
+ expect(data["publication_date"]).to eq(row[5])
15
+ expect(data["vol"]).to eq(row[6])
16
+ expect(data["issue"]).to eq(row[7])
17
+ expect(data["first_page"]).to eq(row[8])
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,2 @@
1
+ out-print_identifier;out-title_id;out-unitid;out-rtype;out-mime;in-url
2
+ ;21_T17183418923;21_T17183418923;ARTICLE;HTML;http://www.lexisnexis.com/fr/droit/results/docview/docview.do?docLinkInd=true&risb=21_T17183418923&format=GNBFULL&sort=DATE-PUBLICATION,D,H,$PSEUDOXAB,A,H,TYPE-ARTICLE,A,H&startDocNo=1&resultsUrlKey=29_T17183418941&cisb=22_T17183418938&treeMax=true&treeWidth=0&c
@@ -0,0 +1,15 @@
1
+ require 'logstash/filters/lexisnexis'
2
+ require 'csv'
3
+
4
+ RSpec.describe LexisNexis do
5
+ CSV.foreach('spec/filters/lexisnexis/lexisnexis.2013-05-17.csv', { :col_sep => ';', headers: true }) do |row|
6
+ name = "tests a URL " + row[5]
7
+ it name do
8
+ data = LexisNexis.parse(row[5])
9
+ expect(data["unit_id"]).to eq(row[2])
10
+ expect(data["title_id"]).to eq(row[1])
11
+ expect(data["rtype"]).to eq(row[3])
12
+ expect(data["mime"]).to eq(row[4])
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ require 'logstash/filters/sage'
2
+ require 'csv'
3
+
4
+ RSpec.describe Sage do
5
+ CSV.foreach('spec/filters/sage/sagej.2016-12-05.csv', { :col_sep => ';', headers: true }) do |row|
6
+ name = "tests a URL " + row[5]
7
+ it name do
8
+ data = Sage.parse(row[5])
9
+ expect(data["title_id"]).to eq(row[0])
10
+ expect(data["unit_id"]).to eq(row[1])
11
+ expect(data["doi"]).to eq(row[2])
12
+ expect(data["rtype"]).to eq(row[3])
13
+ expect(data["mime"]).to eq(row[4])
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,6 @@
1
+ out-title_id;out-unitid;out-doi;out-rtype;out-mime;in-url
2
+ adra;;;TOC;MISC;http://journals.sagepub.com/loi/adra
3
+ adra;adra/28/2;;TOC;MISC;http://journals.sagepub.com/toc/adra/28/2
4
+ ;0022034516639276;10.1177/0022034516639276;ARTICLE;HTML;http://journals.sagepub.com/doi/full/10.1177/0022034516639276
5
+ ;0022034516639276;10.1177/0022034516639276;ARTICLE;PDF;http://journals.sagepub.com/doi/pdf/10.1177/0022034516639276
6
+ ;0022034516639276;10.1177/0022034516639276;FIGURE;HTML;http://journals.sagepub.com/doi/figure/10.1177/0022034516639276?
@@ -0,0 +1,17 @@
1
+ require 'logstash/filters/sciencedirect'
2
+ require 'csv'
3
+
4
+ RSpec.describe ScienceDirect do
5
+ CSV.foreach('spec/filters/sciencedirect/sd.2013-01-09.csv', { :col_sep => ';', headers: true }) do |row|
6
+ name = "tests a URL " + row[6]
7
+ it name do
8
+ data = ScienceDirect.parse(row[6])
9
+ expect(data["pii"]).to eq(row[0])
10
+ expect(data["print_identifier"]).to eq(row[1])
11
+ expect(data["title_id"]).to eq(row[2])
12
+ expect(data["unit_id"]).to eq(row[3])
13
+ expect(data["rtype"]).to eq(row[4])
14
+ expect(data["mime"]).to eq(row[5])
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,28 @@
1
+ out-pii;out-print_identifier;out-title_id;out-unitid;out-rtype;out-mime;in-url
2
+ S2210776212002517;2210-7762;22107762;S2210776212002517;ARTICLE;PDF;http://pdn.sciencedirect.com/science?_ob=MiamiImageURL&_cid=270560&_user=4046392&_pii=S2210776212002517&_check=y&_origin=article&_zone=toolbar&_coverDate=17-Nov-2012&view=c&originContentFamily=serial&wchp=dGLbVBA-zSkWb&md5=4c5f2185629d771211269e2d5a9f1aa5&pid=1-s2.0-S2210776212002517-main.pdf&sqtrkid=0.19135035999000627
3
+ S1872203212000455;1872-2032;18722032;S1872203212000455;ARTICLE;HTML;http://www.sciencedirect.com/science/article/pii/S1872203212000455
4
+ ;9780122191350;9780122191350;9780122191350;TOC;MISC;http://www.sciencedirect.com/science/book/9780122191350
5
+ 089953629390007D;0899-5362;08995362;089953629390007D;ARTICLE;HTML;http://www.sciencedirect.com/science/article/pii/089953629390007D
6
+ ;0065-2296;00652296;00652296;TOC;MISC;http://www.sciencedirect.com/science/bookseries/00652296
7
+ ;1570-7946;15707946;15707946/30;TOC;MISC;http://www.sciencedirect.com/science/bookseries/15707946/30
8
+ ;1044-5323;10445323;10445323;TOC;MISC;http://www.sciencedirect.com/science/journal/10445323
9
+ S0167527311001239;0167-5273;01675273;S0167527311001239;ARTICLE;PDF;http://www.sciencedirect.com/science/science?_ob=MiamiImageURL&_cid=271057&_user=4046392&_pii=S0167527311001239&_check=y&_origin=article&_coverDate=2012-02-23&_piiSuggestedFrom=S0167527311001239&wchp=dGLbVlV-zSkWz&md5=8814412f3a409d87fcc9d48fd9b11d0b&pid=1-s2.0-S0167527311001239-main.pdf
10
+ B9780122694400500017;9780122694400;9780122694400;B9780122694400500017;BOOK_SECTION;PDF;http://pdn.sciencedirect.com/science?_ob=MiamiImageURL&_cid=276181&_user=4046392&_pii=B9780122694400500017&_check=y&_origin=browse&_zone=rslt_list_item&_coverDate=1996-12-31&wchp=dGLzVlV-zSkWz&md5=7e7ed3b95463e5438053bb62f487cf57&pid=3-s2.0-B9780122694400500017-main.pdf
11
+ ;0167-3785;01673785;01673785;TOC;MISC;http://www.sciencedirect.com/science/handbooks/01673785
12
+ ;0167-3785;01673785;01673785/11;TOC;MISC;http://www.sciencedirect.com/science/handbooks/01673785/11
13
+ S0967586808000258;0967-5868;09675868;S0967586808000258;ARTICLE;PDF;http://ac.els-cdn.com/S0967586808000258/1-s2.0-S0967586808000258-main.pdf?_tid=2146516a-82a7-11e3-a57f-00000aab0f6b&acdnat=1390314188_e595d0b375febbda9fdd48d069be9b55
14
+ S1369526612001653;1369-5266;13695266;S1369526612001653;ARTICLE;PDF;http://www.sciencedirect.com/science/article/pii/S1369526612001653/pdfft?md5=c6511f076fa8b25969d8e223410bfb0f&pid=1-s2.0-S1369526612001653-main.pdf
15
+ B9780124200029100009;9780124200029;9780124200029;B9780124200029100009;BOOK_SECTION;HTML;http://www.sciencedirect.com/science/article/pii/B9780124200029100009
16
+ S0960982213001917;0960-9822;09609822;S0960982213001917;ARTICLE;PDF;http://www.sciencedirect.com/science/MiamiMultiMediaURL/1-s2.0-S0960982213001917/1-s2.0-S0960982213001917-mmc1.pdf/272099/FULL/S0960982213001917/b60b292cd91d2846ac711a4e83db83a3/mmc1.pdf
17
+ 0304419X91900078;0304-419X;0304419X;0304419X91900078;PREVIEW;PDF;http://www.sciencedirect.com/science?_ob=PdfExcerptURL&_imagekey=1-s2.0-0304419X91900078-main.pdf&_piikey=0304419X91900078&_cdi=271120&_user=4046392&_acct=C000061186&_version=1&_userid=4046392&md5=558d565a13699ae0796cdf1f600dafa6&ie=/excerpt.pdf
18
+ 0022072891856456;0022-0728;00220728;0022072891856456;ARTICLE;PDF;http://www.sciencedirect.com/science/article/pii/0022072891856456/pdf?pid=1-s2.0-0022072891856456-main.pdf
19
+ 001448276890373X;0014-4827;00144827;001448276890373X;PREVIEW;PDF;http://www.sciencedirect.com/science?_ob=PdfExcerptURL&_imagekey=1-s2.0-001448276890373X-main.pdf&_piikey=001448276890373X&_cdi=272533&_user=4046392&_acct=C000061186&_version=1&_userid=4046392&md5=ff6b1382d256d8a4388b8167eb057402&ie=/excerpt.pdf
20
+ 0001871677800035;0001-8716;00018716;0001871677800035;ARTICLE;PDF;http://ac.els-cdn.com/0001871677800035/1-s2.0-0001871677800035-main.pdf?_tid=65623530-1280-11e4-9d32-00000aab0f6b&acdnat=1406130519_9a8661aeed578bd5ef6727f8e65547b2
21
+ B9780750676533500333;9780750676533;9780750676533;B9780750676533500333;BOOK_SECTION;PDF;http://ac.els-cdn.com/B9780750676533500333/3-s2.0-B9780750676533500333-main.pdf?_tid=e259e886-215c-11e4-994d-00000aab0f6c&acdnat=1407764534_ed35c8b2ea877467579ba6971a396558
22
+ B9780080449241500046;9780080449241;9780080449241;B9780080449241500046;BOOK_SECTION;PDF;http://ac.els-cdn.com/B9780080449241500046/3-s2.0-B9780080449241500046-main.pdf?_tid=c46ad240-215c-11e4-a248-00000aab0f6b&acdnat=1407764484_bb679604d2bb522902776987d43e484e
23
+ S2212671612001011;2212-6716;22126716;S2212671612001011;ARTICLE;PDF;http://www.sciencedirect.com/science/article/pii/S2212671612001011/pdf?pid=1-s2.0-S2212671612001011-main.pdf&_isEmbed=y
24
+ S089491661460032X;0894-9166;08949166;S089491661460032X;ARTICLE;PDF;http://ac.els-cdn.com/S089491661460032X/1-s2.0-S089491661460032X-main.pdf?_tid=196c52e4-216e-11e4-b48c-00000aacb35e&acdnat=1407771928_861358aeda03da299770a78988c42f7e
25
+ B9780124171626000043;9780124171626;9780124171626;B9780124171626000043;BOOK_SECTION;HTML;http://www.sciencedirect.com/science/article/pii/B9780124171626000043
26
+ 001623619190007W;0016-2361;00162361;001623619190007W;ARTICLE;PDF;http://ac.els-cdn.com/001623619190007W/1-s2.0-001623619190007W-main.pdf?_tid=32af46f6-ca66-11e5-a97d-00000aab0f26&acdnat=1454497779_5b0695e232cba10099a7cf404014fb22
27
+ S1872931216X00026;1872-9312;18729312;1-s2.0-S1872931216X00026;ARTICLES_BUNDLE;PDF;http://www.sciencedirect.com/science/journal/18729312/14?_ob=PdfDownloadURL&_method=download&_orig=PublicationURL&_hubEid=1-s2.0-S1872931216X00026&_auth=y&_version=1&refSource=toc&_pubType=J&PDF_DDM_MAX=25&_cid=274159&chunk=0&view=c&go=&nextVector=&prevVector=&chunkSize=100&hitCount=9&count=9&pdfDownload=download&hubEID=&zone=exportDropDown&citation-type=RIS&format=cite-abs&count=9&md5=f1e460e6d24de90829a56e783c132f16
28
+ ;9780124104723;9780124104723;9780124104723;CHAPTERS_BUNDLE;PDF;http://www.sciencedirect.com/science?_ob=PdfDownloadURL&_method=download&_orig=browse&_cid=311736&_isbn=9780124104723&isBook=book&indexType=TC&count=1000&passBkMend=Y&PDF_DDM_MAX=16&pdfDownload=download&zone=exportDropDown&citation-type=RIS&format=cite-abs&_subId=35702469&md5=040e51482b5ed48dd2606445b294903c
@@ -0,0 +1,9 @@
1
+ out-title_id;out-doi;out-print_identifier;out-unitid;out-rtype;out-mime;in-url
2
+ 1740-0309;10.1080/17400309.2013.861174;1740-0309;17400309.2013.861174;ARTICLE;HTML;http://www.tandfonline.com.bases-doc.univ-lorraine.fr/doi/full/10.1080/17400309.2013.861174#abstract
3
+ 1740-0309;10.1080/17400309.2013.861174;1740-0309;17400309.2013.861174;ARTICLE;PDF;http://www.tandfonline.com:80/doi/pdf/10.1080/17400309.2013.861174
4
+ gaan20;;;gaan20;TOC;HTML;http://www.tandfonline.com:80/toc/gaan20/current
5
+ 0003-9420;10.1080/00039420412331273295;0003-9420;00039420412331273295;ABS;HTML;http://www.tandfonline.com:80/doi/abs/10.1080/00039420412331273295
6
+ 0277-3810;10.1080/02773810500191807;0277-3810;02773810500191807;ABS;HTML;http://www.tandfonline.com:80/doi/abs/10.1080/02773810500191807
7
+ wjsa21;;;wjsa21;TOC;HTML;http://www.tandfonline.com.gate1.inist.fr/loi/wjsa21
8
+ ;10.1179/amb.1991.38.1.1;;amb.1991.38.1.1;ABS;HTML;http://www-tandfonline-com.inshs.bib.cnrs.fr/doi/abs/10.1179/amb.1991.38.1.1
9
+ ;10.1179/amb.1991.38.1.1;;amb.1991.38.1.1;ARTICLE;PDF;http://www-tandfonline-com.inshs.bib.cnrs.fr/doi/pdf/10.1179/amb.1991.38.1.1
@@ -0,0 +1,17 @@
1
+ require 'logstash/filters/tandf'
2
+ require 'csv'
3
+
4
+ RSpec.describe TandF do
5
+ CSV.foreach('spec/filters/tandf/tandf.2015-03-25.csv', { :col_sep => ';', headers: true }) do |row|
6
+ name = "tests a URL " + row[6]
7
+ it name do
8
+ data = TandF.parse(row[6])
9
+ expect(data["title_id"]).to eq(row[0])
10
+ expect(data["doi"]).to eq(row[1])
11
+ expect(data["print_identifier"]).to eq(row[2])
12
+ expect(data["unit_id"]).to eq(row[3])
13
+ expect(data["rtype"]).to eq(row[4])
14
+ expect(data["mime"]).to eq(row[5])
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,28 @@
1
+ out-online_identifier;out-publication_date;out-print_identifier;out-title_id;out-unitid;out-doi;out-rtype;out-mime;in-url
2
+ 1600-5724;;;;(ISSN)1600-5724;10.1111/(ISSN)1600-5724;TOC;MISC;http://onlinelibrary.wiley.com.passerelle.univ-rennes1.fr/journal/10.1111/%28ISSN%291600-5724
3
+ ;2012;;AAR;aar.2012.83.issue-1;10.1111/aar.2012.83.issue-1;TOC;MISC;http://onlinelibrary.wiley.com.passerelle.univ-rennes1.fr/doi/10.1111/aar.2012.83.issue-1/issuetoc
4
+ 1600-0390;2012;;;j.1600-0390.2012.00514.x;10.1111/j.1600-0390.2012.00514.x;ABS;MISC;http://onlinelibrary.wiley.com.passerelle.univ-rennes1.fr/doi/10.1111/j.1600-0390.2012.00514.x/abstract
5
+ ;2012;;ANIE;anie.201209878;10.1002/anie.201209878;ABS;MISC;http://onlinelibrary.wiley.com.passerelle.univ-rennes1.fr/doi/10.1002/anie.201209878/abstract
6
+ ;;;ACV;acv.12024;10.1111/acv.12024;ARTICLE;HTML;http://onlinelibrary.wiley.com.passerelle.univ-rennes1.fr/doi/10.1111/acv.12024/full
7
+ 1600-0390;2012;;;j.1600-0390.2012.00514.x;10.1111/j.1600-0390.2012.00514.x;ARTICLE;PDF;http://onlinelibrary.wiley.com.passerelle.univ-rennes1.fr/doi/10.1111/j.1600-0390.2012.00514.x/pdf
8
+ ;;;ANIE;anie.201209878;10.1002/anie.201209878;ARTICLE;PDF;http://onlinelibrary.wiley.com.passerelle.univ-rennes1.fr/doi/10.1002/anie.201209878/pdf
9
+ ;;9781118268117;9781118268117;9781118268117;10.1002/9781118268117;TOC;MISC;http://onlinelibrary.wiley.com.passerelle.univ-rennes1.fr/book/10.1002/9781118268117
10
+ ;;9781118268117;9781118268117;9781118268117.ch3;10.1002/9781118268117.ch3;BOOK_SECTION;PDF;http://onlinelibrary.wiley.com.passerelle.univ-rennes1.fr/doi/10.1002/9781118268117.ch3/pdf
11
+ ;2013;;WR;2013WR014994;10.1002/2013WR014994;ARTICLE;HTML;http://onlinelibrary.wiley.com.biblioplanets.gate.inist.fr/enhanced/doi/10.1002/2013WR014994/
12
+ ;;;CJG2;cjg2.20083;10.1002/cjg2.20083;ARTICLE;HTML;http://onlinelibrary.wiley.com.biblioplanets.gate.inist.fr/enhanced/doi/10.1002/cjg2.20083/
13
+ 2169-8996;;;;(ISSN)2169-8996;10.1002/(ISSN)2169-8996;TOC;MISC;http://agupubs.onlinelibrary.wiley.com.biblioplanets.gate.inist.fr/agu/jgr/journal/10.1002/(ISSN)2169-8996/
14
+ ;;;JGRD;jgrd.v119.14;10.1002/jgrd.v119.14;TOC;HTML;http://agupubs.onlinelibrary.wiley.com.biblioplanets.gate.inist.fr/agu/issue/10.1002/jgrd.v119.14/
15
+ ;;;JGRD;jgrd.v119.13;10.1002/jgrd.v119.13;TOC;HTML;http://agupubs.onlinelibrary.wiley.com.biblioplanets.gate.inist.fr/agu/issue/10.1002/jgrd.v119.13/
16
+ ;;;CJG2;cjg2.2014.57.issue-1;10.1002/cjg2.2014.57.issue-1;TOC;HTML;http://agupubs.onlinelibrary.wiley.com.biblioplanets.gate.inist.fr/agu/issue/10.1002/cjg2.2014.57.issue-1/
17
+ ;;;RDS;rds.v49.6;10.1002/rds.v49.6;TOC;HTML;http://agupubs.onlinelibrary.wiley.com.biblioplanets.gate.inist.fr/agu/issue/10.1002/rds.v49.6/
18
+ ;;;GC;2014GC005230;10.1002/2014GC005230;ARTICLE;READCUBE;http://onlinelibrary.wiley.com:80/readcube?callback=jQuery21009089781963266432_1408430129173&resource=10.1002%2F2014GC005230&_=1408430129174
19
+ ;2015;;S1399004715000292;S1399004715000292;10.1107/S1399004715000292;ARTICLE;PDF;http://onlinelibrary.wiley.com.gate1.inist.fr/doi/10.1107/S1399004715000292/pdf
20
+ ;2015;;S1399004715000292;S1399004715000292;10.1107/S1399004715000292;ARTICLE;HTML;http://onlinelibrary.wiley.com.gate1.inist.fr/iucr/10.1107/S1399004715000292
21
+ ;2015;;S1399004715000292;S1399004715000292;10.1107/S1399004715000292;ABS;MISC;http://onlinelibrary.wiley.com.gate1.inist.fr/doi/10.1107/S1399004715000292/abstract
22
+ ;;;CPA;cpa.3160270102;10.1002/cpa.3160270102;ARTICLE;PDF;http://onlinelibrary.wiley.com.gate1.inist.fr/doi/10.1002/cpa.3160270102/pdf
23
+ ;;;EMBR;embr.201439742;10.15252/embr.201439742;ARTICLE;PDF;http://onlinelibrary.wiley.com.gate1.inist.fr/doi/10.15252/embr.201439742/pdf
24
+ ;2014;;S139900471402286X;S139900471402286X;10.1107/S139900471402286X;ARTICLE;PDF;http://onlinelibrary.wiley.com.gate1.inist.fr/doi/10.1107/S139900471402286X/pdf
25
+ ;2015;;TC;2015TC003829;10.1002/2015TC003829;ARTICLE;PDF;http://onlinelibrary.wiley.com.biblioplanets.gate.inist.fr/doi/10.1002/2015TC003829/pdf
26
+ ;2013;;TC;2013TC003479;10.1002/2013TC003479;ARTICLE;HTML;http://onlinelibrary.wiley.com.gate1.inist.fr/doi/10.1002/2013TC003479/full
27
+ ;;;;JZ072i023p05799;10.1029/JZ072i023p05799;ARTICLE;PDF;http://onlinelibrary.wiley.com.biblioplanets.gate.inist.fr/doi/10.1029/JZ072i023p05799/pdf
28
+ ;2013;;ADFM;adfm.201302892;10.1002/adfm.201302892;;PDF;http://onlinelibrary.wiley.com/store/10.1002/adfm.201302892/asset/adfm201302892.pdf?v=1&t=j3zy0cbv&s=a71967bb1f939448fd171aecd2a4e45f7b28950c
@@ -0,0 +1,19 @@
1
+ require 'logstash/filters/wiley'
2
+ require 'csv'
3
+
4
+ RSpec.describe Wiley do
5
+ CSV.foreach('spec/filters/wiley/wiley.2013-04-15.csv', { :col_sep => ';', headers: true }) do |row|
6
+ name = "tests a URL " + row[8]
7
+ it name do
8
+ data = Wiley.parse(row[8])
9
+ expect(data["online_identifier"]).to eq(row[0])
10
+ expect(data["publication_date"]).to eq(row[1])
11
+ expect(data["print_identifier"]).to eq(row[2])
12
+ expect(data["title_id"]).to eq(row[3])
13
+ expect(data["unit_id"]).to eq(row[4])
14
+ expect(data["doi"]).to eq(row[5])
15
+ expect(data["rtype"]).to eq(row[6])
16
+ expect(data["mime"]).to eq(row[7])
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,2 @@
1
+ # encoding: utf-8
2
+ require "logstash/devutils/rspec/spec_helper"
metadata ADDED
@@ -0,0 +1,130 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: logstash-filter-ezproxy
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Dom Belcher
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-02-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '2.0'
19
+ name: logstash-core-plugin-api
20
+ prerelease: false
21
+ type: :runtime
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ name: logstash-devutils
34
+ prerelease: false
35
+ type: :development
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description:
42
+ email: dominic.belcher@gmail.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - CHANGELOG.md
48
+ - CONTRIBUTORS
49
+ - DEVELOPER.md
50
+ - Gemfile
51
+ - LICENSE
52
+ - README.md
53
+ - lib/logstash/filters/dawsonera.rb
54
+ - lib/logstash/filters/ebscohost.rb
55
+ - lib/logstash/filters/emerald.rb
56
+ - lib/logstash/filters/ezproxy.rb
57
+ - lib/logstash/filters/jstor.rb
58
+ - lib/logstash/filters/lexisnexis.rb
59
+ - lib/logstash/filters/sage.rb
60
+ - lib/logstash/filters/sciencedirect.rb
61
+ - lib/logstash/filters/tandf.rb
62
+ - lib/logstash/filters/wiley.rb
63
+ - logstash-filter-ezproxy.gemspec
64
+ - spec/filters/dawsonera/dawsonera.2014-09-03.csv
65
+ - spec/filters/dawsonera/dawsonera_spec.rb
66
+ - spec/filters/ebscohost/ebscohost.2014-08-21.csv
67
+ - spec/filters/ebscohost/ebscohost_spec.rb
68
+ - spec/filters/emerald/emerald.2015-08-11.csv
69
+ - spec/filters/emerald/emerald_spec.rb
70
+ - spec/filters/ezproxy_spec.rb
71
+ - spec/filters/jstor/jstor.2013-10-03.csv
72
+ - spec/filters/jstor/jstor_spec.rb
73
+ - spec/filters/lexisnexis/lexisnexis.2013-05-17.csv
74
+ - spec/filters/lexisnexis/lexisnexis_spec.rb
75
+ - spec/filters/sage/sage_spec.rb
76
+ - spec/filters/sage/sagej.2016-12-05.csv
77
+ - spec/filters/sciencedirect/sciencedirect_spec.rb
78
+ - spec/filters/sciencedirect/sd.2013-01-09.csv
79
+ - spec/filters/tandf/tandf.2015-03-25.csv
80
+ - spec/filters/tandf/tandf_spec.rb
81
+ - spec/filters/wiley/wiley.2013-04-15.csv
82
+ - spec/filters/wiley/wiley_spec.rb
83
+ - spec/spec_helper.rb
84
+ homepage:
85
+ licenses:
86
+ - Apache-2.0
87
+ metadata:
88
+ logstash_plugin: 'true'
89
+ logstash_group: filter
90
+ post_install_message:
91
+ rdoc_options: []
92
+ require_paths:
93
+ - lib
94
+ required_ruby_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ requirements: []
105
+ rubyforge_project:
106
+ rubygems_version: 2.6.14
107
+ signing_key:
108
+ specification_version: 4
109
+ summary: Write a short summary, because Rubygems requires one.
110
+ test_files:
111
+ - spec/filters/dawsonera/dawsonera.2014-09-03.csv
112
+ - spec/filters/dawsonera/dawsonera_spec.rb
113
+ - spec/filters/ebscohost/ebscohost.2014-08-21.csv
114
+ - spec/filters/ebscohost/ebscohost_spec.rb
115
+ - spec/filters/emerald/emerald.2015-08-11.csv
116
+ - spec/filters/emerald/emerald_spec.rb
117
+ - spec/filters/ezproxy_spec.rb
118
+ - spec/filters/jstor/jstor.2013-10-03.csv
119
+ - spec/filters/jstor/jstor_spec.rb
120
+ - spec/filters/lexisnexis/lexisnexis.2013-05-17.csv
121
+ - spec/filters/lexisnexis/lexisnexis_spec.rb
122
+ - spec/filters/sage/sage_spec.rb
123
+ - spec/filters/sage/sagej.2016-12-05.csv
124
+ - spec/filters/sciencedirect/sciencedirect_spec.rb
125
+ - spec/filters/sciencedirect/sd.2013-01-09.csv
126
+ - spec/filters/tandf/tandf.2015-03-25.csv
127
+ - spec/filters/tandf/tandf_spec.rb
128
+ - spec/filters/wiley/wiley.2013-04-15.csv
129
+ - spec/filters/wiley/wiley_spec.rb
130
+ - spec/spec_helper.rb