Sha256: f5e1004ef312800ec08cc7293189d1a50d2bced4e315f3c49b2f8f32a893809c

Contents?: true

Size: 555 Bytes

Versions: 3

Compression:

Stored size: 555 Bytes

Contents

module Exlibris
  module Aleph
    module API
      class Base
        extend Forwardable

        protected
        def client
          raise RuntimeError.new('Should be implmented in sub classes')
        end

        def reader
          @reader ||= reader_constant.new(client.root)
        end

        private
        def reader_constant
          eval("Reader::#{demodulized_class_name}")
        end

        def demodulized_class_name
          @demodulized_class_name ||= self.class.name.split('::').last
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
exlibris-aleph-2.0.4 lib/exlibris/aleph/api/base.rb
exlibris-aleph-2.0.3 lib/exlibris/aleph/api/base.rb
exlibris-aleph-2.0.0 lib/exlibris/aleph/api/base.rb