Sha256: c78c2874e22a3ac97d01ab8bfb59f8b02efb9beafa553078b6d9c1e98f497f6b

Contents?: true

Size: 1.1 KB

Versions: 6

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

require 'intranet/abstract_responder'

module Intranet
  class TestResponder < AbstractResponder
    attr_reader :finalized

    def initialize(responses = {}, hide_from_menu = false)
      @responses = responses
      @finalized = false
      @hide_from_menu = hide_from_menu
    end

    def finalize
      @finalized = true
      super
    end

    def in_menu?
      return false if @hide_from_menu

      super
    end

    def self.module_name
      'test-responder'
    end

    def self.module_version
      '0.0.0'
    end

    def self.module_homepage
      'http://nil/'
    end

    def generate_page(path, query)
      if path.start_with?('/query')
        [200, 'text/plain', dump_with_encoding(path, query)]
      else
        @responses.fetch(path)
      end
    rescue KeyError
      super(path, query)
    end

    private

    def dump_with_encoding(path, query)
      "PATH=#{path} (#{path.encoding}), QUERY={" + # rubocop:disable Style/StringConcatenation
        query.map { |k, v| "#{k} (#{k.encoding}) => #{v} (#{v.encoding})" }.join(',') +
        "}\r\n"
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
intranet-core-2.5.0 spec/test_responder/responder.rb
intranet-core-2.4.5 spec/test_responder/responder.rb
intranet-core-2.4.4 spec/test_responder/responder.rb
intranet-core-2.4.3 spec/test_responder/responder.rb
intranet-core-2.4.1 spec/test_responder/responder.rb
intranet-core-2.4.0 spec/test_responder/responder.rb