Sha256: 755a60f7c655408a0e704c141985c0dbc63bf5c58bc38d77849846d0faff17c0

Contents?: true

Size: 1.25 KB

Versions: 4

Compression:

Stored size: 1.25 KB

Contents

module Cul
  module Fedora
    class Server
      
      attr_reader :riurl, :riquery

      def initialize(*args)
        options = args.extract_options!
        @riurl = options[:riurl] || raise(ArgumentError, "Must provide riurl argument")
        @riquery = options[:riquery] || raise(ArgumentError, "Must provide riquery argument")
        @hc = options[:http_client]
        @logger = options[:logger] 
      end

      def logger
        @logger ||= Logger.new(STDOUT)
      end

      def item(uri)
        Item.new(:server => self, :uri => uri, :logger => logger)
      end

      def request(options= {})
        http_client.get_content(*request_path(options))
      end

      def request_path(options = {})
        sdef = options.delete(:sdef).to_s
        pid = options.delete(:pid).to_s
        request = (options.delete(:request) || "").to_s
        method = (options.delete(:method) || "/get").to_s

        sdef = "/" + sdef unless sdef.empty?
        pid = "/" + pid unless pid.empty?
        request = "/" + request.to_s


        uri = @riurl + method + pid + sdef + request
        query = options
        
        return [uri, query]
      end

      private

      def http_client
        @hc ||= HTTPClient.new()
        @hc
      end
      
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
cul-fedora-0.8.6 lib/cul-fedora/server.rb
cul-fedora-0.8.5 lib/cul-fedora/server.rb
cul-fedora-0.8.4 lib/cul-fedora/server.rb
cul-fedora-0.8.3 lib/cul-fedora/server.rb