Sha256: cc373de9f5eddac3dc2e98397bf3a8b3f434087b35117f5c2b6459b74ea6f59f

Contents?: true

Size: 698 Bytes

Versions: 5

Compression:

Stored size: 698 Bytes

Contents

module Munge
  module Routers
    class AddDirectoryIndex
      def initialize(extensions:, index:)
        @extensions = extensions
        @index = index
      end

      def type
        :filepath
      end

      def match?(initial_route, item)
        item_is_html?(item) && route_needs_extension?(initial_route)
      end

      def call(initial_route, _item)
        File.join(initial_route, @index)
      end

      private

      def item_is_html?(item)
        intersection = item.extensions & @extensions

        !intersection.empty?
      end

      def route_needs_extension?(route)
        basename = File.basename(route)

        !basename.include?(".")
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
munge-0.18.0 lib/munge/routers/add_directory_index.rb
munge-0.17.0 lib/munge/routers/add_directory_index.rb
munge-0.16.0 lib/munge/routers/add_directory_index.rb
munge-0.15.1 lib/munge/routers/add_directory_index.rb
munge-0.15.0 lib/munge/routers/add_directory_index.rb