Sha256: b7ebd3f2dc27e7f432f72f43bc3b7213d8f21623eca0adbfb0ae26ba8f8fc824

Contents?: true

Size: 1.75 KB

Versions: 2

Compression:

Stored size: 1.75 KB

Contents

require "arrest/handler"
module Arrest
  def self.debug s
    if Arrest::Source.debug
      puts s
    end
  end

  class Source
    class << self
      attr_accessor :debug
      attr_reader :source
      attr_reader :mod
      attr_reader :header_decorator
      attr_accessor :class_loader
      attr_accessor :json_key_converter
      attr_accessor :skip_validations
      attr_accessor :error_handler
      attr_accessor :call_logger

      def source=(host=nil)
        if [nil, ""].include?(host)
          @source = MemSource.new
          Arrest::logger.info "Setting Arrest host empty in-memory-store"
        else
          @source = HttpSource.new host
          Arrest::logger.info "Setting Arrest host to #{host}"
        end
        @source
      end

      def mod=(mod=nil)
        if mod == nil
          @mod = Kernel
        elsif mod.is_a?(Module)
          @mod = mod
        else
          raise "Expected module but got #{mod.class.name}"
        end
      end


      def load_class_from_symbol(sym)
        self.class_loader.load(sym)
      end


      def header_decorator=(hd=nil)
        Arrest::debug "Setting headerd to #{hd}"
        if hd == nil
          @header_decorator = Handlers::Header_decorator
        elsif hd.respond_to?(:headers)
          @header_decorator = hd
        else
          raise "Header_decorator must be an object that returns an hash for the method headers"
        end
      end
    end
  end

  Source.mod = nil
  Source.class_loader = DefaultClassLoader.new
  Source.header_decorator = Handlers::HeaderDecorator
  Source.debug = false
  Source.json_key_converter = Handlers::IdentityJSONKeyConverter
  Source.error_handler = Handlers::ErrorHandler
  Source.call_logger = Handlers::CallLogger
  Source.skip_validations = false

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
arrest-0.0.91 lib/arrest/transport/source.rb
arrest-0.0.90 lib/arrest/transport/source.rb