Sha256: 528d9772c539d64dae1359470731983ef2be324c79c4eb3e4408b4b64c20a6dd

Contents?: true

Size: 1.3 KB

Versions: 4

Compression:

Stored size: 1.3 KB

Contents

# frozen_string_literal: true

require 'intranet/abstract_responder'

module Intranet
  class TestResponder < AbstractResponder
    attr_reader :finalized

    def initialize(responses = {}, extra_css = [], extra_js = [], hide_from_menu = false)
      @responses = responses
      @extra_css = extra_css
      @extra_js = extra_js
      @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 resources_dir
      super
    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

    def css_dependencies
      super + @extra_css
    end

    def js_dependencies
      super + @extra_js
    end

    private

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

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
intranet-core-2.2.0 spec/test_responder/responder.rb
intranet-core-2.1.4 spec/test_responder/responder.rb
intranet-core-2.1.2 spec/test_responder/responder.rb
intranet-core-2.1.1 spec/test_responder/responder.rb