logstash-filter-ezproxy 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTORS +1 -1
  3. data/lib/logstash/filters/ezproxy.rb +48 -65
  4. data/lib/logstash/filters/ezproxy_providers.rb +1 -0
  5. data/lib/logstash/filters/{cambridge.rb → ezproxy_providers/cambridge.rb} +5 -3
  6. data/lib/logstash/filters/{dawsonera.rb → ezproxy_providers/dawsonera.rb} +3 -2
  7. data/lib/logstash/filters/{proquest.rb → ezproxy_providers/ebookcentral.rb} +4 -2
  8. data/lib/logstash/filters/{ebscohost.rb → ezproxy_providers/ebscohost.rb} +3 -2
  9. data/lib/logstash/filters/ezproxy_providers/elsevier.rb +18 -0
  10. data/lib/logstash/filters/{emerald.rb → ezproxy_providers/emerald.rb} +4 -2
  11. data/lib/logstash/filters/{ft.rb → ezproxy_providers/ft.rb} +3 -3
  12. data/lib/logstash/filters/{gale.rb → ezproxy_providers/gale.rb} +4 -2
  13. data/lib/logstash/filters/{heinonline.rb → ezproxy_providers/heinonline.rb} +3 -2
  14. data/lib/logstash/filters/{ieee.rb → ezproxy_providers/ieee.rb} +3 -4
  15. data/lib/logstash/filters/{jstor.rb → ezproxy_providers/jstor.rb} +3 -2
  16. data/lib/logstash/filters/{lexis_webanalytics.rb → ezproxy_providers/lexis_webanalytics.rb} +3 -2
  17. data/lib/logstash/filters/{lexisnexis.rb → ezproxy_providers/lexisnexis.rb} +3 -3
  18. data/lib/logstash/filters/{myilibrary.rb → ezproxy_providers/myilibrary.rb} +7 -3
  19. data/lib/logstash/filters/{oxford.rb → ezproxy_providers/oxford.rb} +5 -3
  20. data/lib/logstash/filters/ezproxy_providers/proquest-search.rb +27 -0
  21. data/lib/logstash/filters/{sage.rb → ezproxy_providers/sage.rb} +3 -3
  22. data/lib/logstash/filters/{sciencedirect.rb → ezproxy_providers/sciencedirect.rb} +3 -4
  23. data/lib/logstash/filters/{scopus.rb → ezproxy_providers/scopus.rb} +3 -2
  24. data/lib/logstash/filters/{springer.rb → ezproxy_providers/springer.rb} +3 -3
  25. data/lib/logstash/filters/{tandf.rb → ezproxy_providers/tandf.rb} +3 -5
  26. data/lib/logstash/filters/{webofknowledge.rb → ezproxy_providers/webofknowledge.rb} +4 -2
  27. data/lib/logstash/filters/ezproxy_providers/westlaw.rb +18 -0
  28. data/lib/logstash/filters/{wiley.rb → ezproxy_providers/wiley.rb} +3 -3
  29. data/lib/logstash/helpers/param_helper.rb +0 -8
  30. data/logstash-filter-ezproxy.gemspec +2 -2
  31. data/spec/filters/cambridge/cambridge_spec.rb +3 -3
  32. data/spec/filters/dawsonera/dawsonera_spec.rb +3 -3
  33. data/spec/filters/{proquest/proquest.2018-02-09.csv → ebookcentral/ebookcentral.2018-02-09.csv} +0 -0
  34. data/spec/filters/{proquest/proquest_spec.rb → ebookcentral/ebookcentral.rb} +4 -4
  35. data/spec/filters/ebscohost/ebscohost_spec.rb +3 -3
  36. data/spec/filters/elsevier/elsevier.2018-02-20.csv +3 -0
  37. data/spec/filters/elsevier/elsevier_spec.rb +18 -0
  38. data/spec/filters/emerald/emerald_spec.rb +3 -3
  39. data/spec/filters/ft/ft_spec.rb +3 -3
  40. data/spec/filters/gale/gale_spec.rb +3 -3
  41. data/spec/filters/heinonline/heinonline_spec.rb +3 -3
  42. data/spec/filters/ieee/ieee_spec.rb +3 -3
  43. data/spec/filters/jstor/jstor_spec.rb +3 -3
  44. data/spec/filters/lexis_webanalytics/lexis_webanalytics_spec.rb +3 -3
  45. data/spec/filters/lexisnexis/lexisnexis_spec.rb +3 -3
  46. data/spec/filters/myilibrary/myilibrary_spec.rb +3 -3
  47. data/spec/filters/oxford/oxford_spec.rb +3 -3
  48. data/spec/filters/proquest-search/proquest-search.2018-02-19.csv +4 -0
  49. data/spec/filters/proquest-search/proquest-search_spec.rb +19 -0
  50. data/spec/filters/sage/sage_spec.rb +3 -3
  51. data/spec/filters/sciencedirect/sciencedirect_spec.rb +3 -3
  52. data/spec/filters/scopus/scopus_spec.rb +3 -3
  53. data/spec/filters/springer/springer_spec.rb +3 -3
  54. data/spec/filters/tandf/tandf_spec.rb +3 -3
  55. data/spec/filters/webofknowledge/webofknowledge_spec.rb +3 -3
  56. data/spec/filters/westlaw/westlaw.2018-02-20.csv +3 -0
  57. data/spec/filters/westlaw/westlaw_spec.rb +18 -0
  58. data/spec/filters/wiley/wiley_spec.rb +4 -4
  59. metadata +44 -28
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eebd1de06645fbe8aeab87e450179bfd036476a62a9bbad3eb41dc0a68005551
4
- data.tar.gz: 2e40d938da326ffb9b0c7b277f4052a5c57ed752173b91ad7c2c789961833a04
3
+ metadata.gz: 8a86f6f54351a599519f27e04c0b1ec9bbe9a6a8c802dac09634d86476c212ef
4
+ data.tar.gz: 8fea5f5da0e5da09b6b7c750f81fec7347708e994748b0a72361e8791ff0fe56
5
5
  SHA512:
6
- metadata.gz: 9a622e16fff02eaed6b7267a047092d95a5d9788fc0705bdd63336859b9a8cddbb75b79e4c551d1fae90de6740a6b69f7f537ea8f48a589dfb2db5c3be378677
7
- data.tar.gz: 9ba08935fa09b47a6da50d16f6acf3d66c4987f7bc09a2dff5889603286ecd3faf2b4fa77071c544ccdf560fa6de5d8b210dfd07b4904e02691ac16b12f4a9f9
6
+ metadata.gz: 2fd7d975bce60293bf1ede3d0c78f294fd25e94836d5a29d36c63d8e5eb83f81ad6137e88a9c018054f97814a1da0da48fa675092175c87ee5820d3c2ca0d62d
7
+ data.tar.gz: 6889ce78ced9789480e1d2962743c74cca3b26b5cebfbc693b40e91ddf2821c3d14f98c90f62666c9f9007a7e43da72ed223778be68f5c44c50840bb5ae5f14e
@@ -2,7 +2,7 @@ The following is a list of people who have contributed ideas, code, bug
2
2
  reports, or in general have helped logstash along its way.
3
3
 
4
4
  Contributors:
5
- * Dom Belcher - dominic.belcher@gmail.com
5
+ * Dom Belcher - d.belcher@lancaster.ac.uk
6
6
 
7
7
  Note: If you've sent us patches, bug reports, or otherwise contributed to
8
8
  Logstash, and you aren't on the list above and want to be, please let us know
@@ -1,32 +1,12 @@
1
1
  # encoding: utf-8
2
2
  require "logstash/filters/base"
3
3
  require "logstash/namespace"
4
- require_relative '../helpers/url_parser'
5
- require_relative '../helpers/param_helper'
6
- require_relative '../helpers/mime_helper'
7
- require_relative "./cambridge"
8
- require_relative "./dawsonera"
9
- require_relative "./ebscohost"
10
- require_relative "./emerald"
11
- require_relative "./ft"
12
- require_relative "./gale"
13
- require_relative "./heinonline"
14
- require_relative "./ieee"
15
- require_relative "./jstor"
16
- require_relative "./lexis_webanalytics"
17
- require_relative "./lexisnexis"
18
- require_relative "./myilibrary"
19
- require_relative "./proquest"
20
- require_relative "./sage"
21
- require_relative "./sciencedirect"
22
- require_relative "./scopus"
23
- require_relative "./springer"
24
- require_relative "./tandf"
25
- require_relative "./webofknowledge"
26
- require_relative "./wiley"
27
4
  require 'uri'
28
5
  require 'cgi'
29
6
 
7
+ Dir[File.dirname(__FILE__) + '/../helpers/*.rb'].each { |file| require file }
8
+ Dir[File.dirname(__FILE__) + '/./ezproxy_providers/*.rb'].each { |file| require file }
9
+
30
10
  # This filter will replace the contents of the default
31
11
  # message field with whatever you specify in the configuration.
32
12
  #
@@ -38,7 +18,11 @@ class LogStash::Filters::Ezproxy < LogStash::Filters::Base
38
18
  #
39
19
  # filter {
40
20
  # {
41
- # message => "My message..."
21
+ # url => "Field containing url to parse"
22
+ # target => "Field to output metadata to - default is request_metadata"
23
+ # mime_tag => true|false set inital mime types for all requests based on file extensions - default false
24
+ # doc_id_tag => true|false set unit and title id from docID like params - default false
25
+ # path_tag => true|false add request path to metadata - default false
42
26
  # }
43
27
  # }
44
28
  #
@@ -46,38 +30,46 @@ class LogStash::Filters::Ezproxy < LogStash::Filters::Base
46
30
 
47
31
  # The url to be parsed by the filter
48
32
  config :url, :validate => :string, :required => true
33
+ config :target, :validate => :string, :default => "request_metadata"
34
+ config :mime_tag, :validate => :boolean, :default => false
35
+ config :doc_id_tag, :validate => :boolean, :default => false
36
+ config :path_tag, :validate => :boolean, :default => false
49
37
 
50
38
  @@hosts = {
51
- "www.cambridge.org" => lambda { |path, params, uri| Cambridge::parse(path, params, uri) },
52
- "www.dawsonera.com" => lambda { |path, params, uri| DawsonEra::parse(path, params) },
53
- "ebscohost.com" => lambda { |path, params, uri| Ebscohost::parse(path, params, uri) },
54
- "emeraldinsight.com" => lambda { |path, params, uri| Emerald::parse(path, params) },
55
- "www.ft.com" => lambda { |path, params, uri| FT::parse(path, params) },
56
- "galegroup.com" => lambda { |path, params, uri| Gale::parse(path, params) },
57
- "heinonline.org" => lambda { |path, params, uri| HeinOnline::parse(path, params) },
58
- "ieee.org" => lambda { |path, params, uri| IEEE::parse(path, params) },
59
- "www.jstor.org" => lambda { |path, params, uri| Jstor::parse(path, params)},
60
- "www.lexisnexis.com" => lambda { |path, params, uri| LexisNexis::parse(path, params) },
61
- "webanalytics.lexisnexis.com" => lambda { |path, params, uri| LexisWebAnalytics::parse(path, params, uri) },
62
- "lib.myilibrary.com" => lambda { |path, params, uri| MyILibrary::parse(path, params) },
63
- "ebookcentral.proquest.com" => lambda { |path, params, uri| Proquest::parse(path, params) },
64
- "journals.sagepub.com" => lambda { |path, params, uri| Sage::parse(path, params) },
39
+ "www.cambridge.org" => lambda { |path, params, uri| EzproxyProviders::Cambridge.parse(path, params, uri) },
40
+ "www.dawsonera.com" => lambda { |path, params, uri| EzproxyProviders::DawsonEra::parse(path, params) },
41
+ "ebookcentral.proquest.com" => lambda { |path, params, uri| EzproxyProviders::EBookCentral::parse(path, params) },
42
+ "ebscohost.com" => lambda { |path, params, uri| EzproxyProviders::Ebscohost::parse(path, params, uri) },
43
+ "elsevierelibrary.co.uk" => lambda { |path, params, uri| EzproxyProviders::Elsevier::parse(path, params) },
44
+ "emeraldinsight.com" => lambda { |path, params, uri| EzproxyProviders::Emerald::parse(path, params) },
45
+ "www.ft.com" => lambda { |path, params, uri| EzproxyProviders::FT::parse(path, params) },
46
+ "galegroup.com" => lambda { |path, params, uri| EzproxyProviders::Gale::parse(path, params) },
47
+ "heinonline.org" => lambda { |path, params, uri| EzproxyProviders::HeinOnline::parse(path, params) },
48
+ "ieee.org" => lambda { |path, params, uri| EzproxyProviders::IEEE::parse(path, params) },
49
+ "www.jstor.org" => lambda { |path, params, uri| EzproxyProviders::Jstor::parse(path, params) },
50
+ "www.lexisnexis.com" => lambda { |path, params, uri| EzproxyProviders::LexisNexis::parse(path, params) },
51
+ "webanalytics.lexisnexis.com" => lambda { |path, params, uri| EzproxyProviders::LexisWebAnalytics::parse(path, params, uri) },
52
+ "lib.myilibrary.com" => lambda { |path, params, uri| EzproxyProviders::MyILibrary::parse(path, params) },
53
+ "www.oxfordscholarship.com" => lambda { |path, params, uri| EzproxyProviders::Oxford::parse(path, params) },
54
+ "search.proquest.com" => lambda { |path, params, uri| EzproxyProviders::ProquestSearch::parse(path, params) },
55
+ "journals.sagepub.com" => lambda { |path, params, uri| EzproxyProviders::Sage::parse(path, params) },
65
56
  "els-cdn.com" => lambda { |path, params, uri|
66
- return ScienceDirect::parse(path, params).merge!({ 'provider' => 'elsevier-cdn'})
57
+ return EzproxyProviders::ScienceDirect::parse(path, params).merge!({ 'provider' => 'elsevier-cdn' })
67
58
  },
68
59
  "sciencedirect.com" => lambda { |path, params, uri|
69
- return ScienceDirect::parse(path, params).merge!({ 'provider' => 'sciencedirect'})
60
+ return EzproxyProviders::ScienceDirect::parse(path, params).merge!({ 'provider' => 'sciencedirect' })
70
61
  },
71
- "scopus.com" => lambda { |path, params, uri| Scopus::parse(path, params) },
72
- "springer.com" => lambda { |path, params, uri| Springer::parse(path, params) },
73
- "www.tandfonline.com" => lambda { |path, params, uri| TandF::parse(path, params)},
62
+ "scopus.com" => lambda { |path, params, uri| EzproxyProviders::Scopus::parse(path, params) },
63
+ "springer.com" => lambda { |path, params, uri| EzproxyProviders::Springer::parse(path, params) },
64
+ "www.tandfonline.com" => lambda { |path, params, uri| EzproxyProviders::TandF::parse(path, params) },
74
65
  "thomsonreuters.com" => lambda { |path, params, uri|
75
- return WebOfKnowledge::parse(path, params).merge!({ 'provider' => 'thomsonreuters'})
66
+ return EzproxyProviders::WebOfKnowledge::parse(path, params).merge!({ 'provider' => 'thomsonreuters' })
76
67
  },
77
68
  "webofknowledge.com" => lambda { |path, params, uri|
78
- return WebOfKnowledge::parse(path, params).merge!({ 'provider' => 'webofknowledge'})
69
+ return EzproxyProviders::WebOfKnowledge::parse(path, params).merge!({ 'provider' => 'webofknowledge' })
79
70
  },
80
- "wiley.com" => lambda { |path, params, uri| Wiley::parse(path, params)}
71
+ "westlaw.co.uk" => lambda { |path, params, uri| EzproxyProviders::Westlaw::parse(path, params) },
72
+ "wiley.com" => lambda { |path, params, uri| EzproxyProviders::Wiley::parse(path, params) }
81
73
  }
82
74
 
83
75
 
@@ -106,26 +98,15 @@ class LogStash::Filters::Ezproxy < LogStash::Filters::Base
106
98
  path = parsed_url['path']
107
99
  params = parsed_url['params']
108
100
 
109
- # if (uri.host == "ezproxy.lancs.ac.uk")
110
- # if (uri.query)
111
- # puts uri
112
- # params = CGI::parse(uri.query)
113
- # if params.key?('url')
114
- # uri = URI(params['url'][0])
115
- # elsif params.key?('qurl')
116
- # uri = URI(params['qurl'][0])
117
- # end
118
- # event.tag("requested_host_ezproxy")
119
- # event.set("requested_host", uri.host)
120
- # end
121
- # end
122
-
123
101
  unless uri == nil
124
102
 
125
-
126
103
  begin
127
- data = Mime::parse(path)
128
- data.merge!(ParamHelper::parse(params))
104
+ if @mime_tag
105
+ data.merge!(Mime::parse(path))
106
+ end
107
+ if @doc_id_tag
108
+ data.merge!(ParamHelper::parse(params))
109
+ end
129
110
 
130
111
  @@hosts.each do |key, value|
131
112
  if uri.host.include?(key)
@@ -142,8 +123,10 @@ class LogStash::Filters::Ezproxy < LogStash::Filters::Base
142
123
  puts uri
143
124
  event.tag("ezproxy_parse_failure")
144
125
  end
145
- data['path'] = path
146
- event.set("request_metadata", data)
126
+ if @path_tag
127
+ data['path'] = path
128
+ end
129
+ event.set(@target, data)
147
130
  else
148
131
  event.tag("ezproxy_parse_failure")
149
132
  end
@@ -0,0 +1 @@
1
+ module EzproxyProviders end
@@ -1,5 +1,7 @@
1
- module Cambridge
2
- def Cambridge.parse (path, params, uri)
1
+ require_relative '../ezproxy_providers'
2
+
3
+ class EzproxyProviders::Cambridge
4
+ def self.parse (path, params, uri)
3
5
 
4
6
  url = uri.to_s
5
7
 
@@ -120,4 +122,4 @@ module Cambridge
120
122
  return data
121
123
 
122
124
  end
123
- end
125
+ end
@@ -1,6 +1,7 @@
1
+ require_relative '../ezproxy_providers'
1
2
 
2
- module DawsonEra
3
- def DawsonEra.parse (path, params)
3
+ class EzproxyProviders::DawsonEra
4
+ def self.parse (path, params)
4
5
 
5
6
  data = {
6
7
  "provider" => "dawsonera"
@@ -1,5 +1,7 @@
1
- module Proquest
2
- def Proquest.parse (path, params)
1
+ require_relative '../ezproxy_providers'
2
+
3
+ class EzproxyProviders::EBookCentral
4
+ def self.parse (path, params)
3
5
  data = {
4
6
  "provider" => "proquest"
5
7
  }
@@ -1,8 +1,9 @@
1
1
 
2
2
  require 'uri'
3
3
  require 'cgi'
4
+ require_relative '../ezproxy_providers'
4
5
 
5
- module Ebscohost
6
+ class EzproxyProviders::Ebscohost
6
7
 
7
8
  @openUrlFields = {
8
9
  'issn' => 'print_identifier',
@@ -14,7 +15,7 @@ module Ebscohost
14
15
  'id' => 'unit_id'
15
16
  }
16
17
 
17
- def Ebscohost.parse (path, params, uri)
18
+ def self.parse (path, params, uri)
18
19
 
19
20
  data = {
20
21
  "provider" => "ebscohost"
@@ -0,0 +1,18 @@
1
+ require_relative '../ezproxy_providers'
2
+
3
+ class EzproxyProviders::Elsevier
4
+ def self.parse (path, params)
5
+
6
+ data = {
7
+ "provider" => "elsevier"
8
+ }
9
+
10
+ if match = /\/(product|pdfreader)\/([a-z0-9\-]+)/i.match(path)
11
+ data['unit_id'] = match[2]
12
+ data['title_id'] = match[2]
13
+ end
14
+
15
+ return data
16
+
17
+ end
18
+ end
@@ -1,5 +1,7 @@
1
- module Emerald
2
- def Emerald.parse (path, params)
1
+ require_relative '../ezproxy_providers'
2
+
3
+ class EzproxyProviders::Emerald
4
+ def self.parse (path, params)
3
5
 
4
6
  data = {
5
7
  "provider" => "emerald"
@@ -1,7 +1,7 @@
1
- require "uri"
1
+ require_relative '../ezproxy_providers'
2
2
 
3
- module FT
4
- def FT.parse (path, params)
3
+ class EzproxyProviders::FT
4
+ def self.parse (path, params)
5
5
 
6
6
  data = {
7
7
  "provider" => "ft"
@@ -1,5 +1,7 @@
1
- module Gale
2
- def Gale.parse (path, params)
1
+ require_relative '../ezproxy_providers'
2
+
3
+ class EzproxyProviders::Gale
4
+ def self.parse (path, params)
3
5
 
4
6
  data = {
5
7
  "provider" => "gale"
@@ -1,6 +1,7 @@
1
+ require_relative '../ezproxy_providers'
1
2
 
2
- module HeinOnline
3
- def HeinOnline.parse (path, params)
3
+ class EzproxyProviders::HeinOnline
4
+ def self.parse (path, params)
4
5
 
5
6
  data = {
6
7
  "provider" => "heinonline"
@@ -1,8 +1,7 @@
1
- require 'uri'
2
- require 'cgi'
1
+ require_relative '../ezproxy_providers'
3
2
 
4
- module IEEE
5
- def IEEE.parse (path, params)
3
+ class EzproxyProviders::IEEE
4
+ def self.parse (path, params)
6
5
 
7
6
  data = {
8
7
  "provider" => "springer"
@@ -1,6 +1,7 @@
1
+ require_relative '../ezproxy_providers'
1
2
 
2
- module Jstor
3
- def Jstor.parse (path, params)
3
+ class EzproxyProviders::Jstor
4
+ def self.parse (path, params)
4
5
 
5
6
  data = {
6
7
  "provider" => "jstor"
@@ -1,7 +1,8 @@
1
1
  require 'json'
2
+ require_relative '../ezproxy_providers'
2
3
 
3
- module LexisWebAnalytics
4
- def LexisWebAnalytics.parse (path, params, uri)
4
+ class EzproxyProviders::LexisWebAnalytics
5
+ def self.parse (path, params, uri)
5
6
 
6
7
  raw_url = uri.to_s
7
8
 
@@ -1,7 +1,7 @@
1
- require 'uri'
1
+ require_relative '../ezproxy_providers'
2
2
 
3
- module LexisNexis
4
- def LexisNexis.parse (path, params)
3
+ class EzproxyProviders::LexisNexis
4
+ def self.parse (path, params)
5
5
 
6
6
  data = {
7
7
  "provider" => "lexisnexis"
@@ -1,5 +1,7 @@
1
- module MyILibrary
2
- def MyILibrary.parse (path, params)
1
+ require_relative '../ezproxy_providers'
2
+
3
+ class EzproxyProviders::MyILibrary
4
+ def self.parse (path, params)
3
5
 
4
6
  data = {
5
7
  "provider" => "myilibrary"
@@ -15,7 +17,9 @@ module MyILibrary
15
17
 
16
18
  elsif (/\/Viewer\/getImage\_Servlet\.aspx/i.match(path))
17
19
  data['rtype'] = 'BOOK_PAGE'
18
- data['mime'] = 'JPG'
20
+ if params.key?('codec')
21
+ data['mime'] = params['codec'][0].upcase
22
+ end
19
23
 
20
24
  elsif (/\/Viewer\/get[DP]MP\_Servlet\.aspx/i.match(path))
21
25
  data['rtype'] = 'BOOK_PAGE'
@@ -1,5 +1,7 @@
1
- module Oxford
2
- def Oxford.parse (path, params)
1
+ require_relative '../ezproxy_providers'
2
+
3
+ class EzproxyProviders::Oxford
4
+ def self.parse (path, params)
3
5
 
4
6
  data = {
5
7
  "provider" => "oxford"
@@ -25,7 +27,7 @@ module Oxford
25
27
  data['rtype'] = 'BOOK'
26
28
  end
27
29
 
28
- if params.key?('print')
30
+ if params.key?('print') && !params['print'][0].nil?
29
31
  data['mime'] = params['print'][0].upcase
30
32
  end
31
33
 
@@ -0,0 +1,27 @@
1
+ require_relative '../ezproxy_providers'
2
+
3
+ class EzproxyProviders::ProquestSearch
4
+ def self.parse (path, params)
5
+
6
+ data = {
7
+ "provider" => "proquest"
8
+ }
9
+
10
+ if params.key?('t:ac')
11
+ data['unit_id'] = params['t:ac'][0]
12
+ data['title_id'] = params['t:ac'][0]
13
+ end
14
+
15
+ if (match = /\/docview\/([0-9]+)\//i.match(path))
16
+ data['unit_id'] = match[1]
17
+ data['title_id'] = match[1]
18
+
19
+ if /fulltextpdf/i.match(path)
20
+ data['mime'] = 'PDF'
21
+ end
22
+ end
23
+
24
+ return data
25
+
26
+ end
27
+ end
@@ -1,7 +1,7 @@
1
- require "uri"
1
+ require_relative '../ezproxy_providers'
2
2
 
3
- module Sage
4
- def Sage.parse (path, params)
3
+ class EzproxyProviders::Sage
4
+ def self.parse (path, params)
5
5
 
6
6
  data = {
7
7
  "provider" => "sage"
@@ -1,8 +1,7 @@
1
- require 'uri'
2
- require 'cgi'
1
+ require_relative '../ezproxy_providers'
3
2
 
4
- module ScienceDirect
5
- def ScienceDirect.parse (path, params)
3
+ class EzproxyProviders::ScienceDirect
4
+ def self.parse (path, params)
6
5
 
7
6
  data = {}
8
7