class EzproxyProviders::Oxford

Public Class Methods

parse(path, params) click to toggle source
# File lib/logstash/filters/ezproxy_providers/oxford.rb, line 4
def self.parse (path, params)

  data = {
    "provider" => "oxford"
  }

  if (match = /\/view\/([0-9\.]+\/[a-z0-9\.\/\:]+)\/(.+?)(-([a-z][\-a-z0-9]+))?$/i.match(path))
    data['doi'] = match[1]
    data['title_id'] = match[2]
    data['unit_id'] = match[2]

    if (match[4])
      match4 = match[4].downcase.split("-")

      case match4[0]
        when "chapter"
          data['rtype'] = "BOOK_CHAPTER"
        when "bibliography"
          data['rtype'] = "BIBLIOGRAPHY"
        when "indexlist"
          data['rtype'] = 'TOC'
      end
    else
      data['rtype'] = 'BOOK'
    end

    if params.key?('print') && !params['print'][0].nil?
      data['mime'] = params['print'][0].upcase
    end

  elsif (match = /\/doc\/([0-9\.]+\/[a-z0-9\.\/\:]+)\/.+/i.match(path))
    data['doi'] = match[1]
  end

  return data
end