Sha256: ea924e6e373466936828391b040b40ea5a831aa1b4a9e888833a28f5b62457a5
Contents?: true
Size: 1017 Bytes
Versions: 14
Compression:
Stored size: 1017 Bytes
Contents
module Munge module Routers class AutoAddExtension def initialize(keep_extensions:) @keep_extensions = keep_extensions end def type :route end def match?(initial_route, item) item_should_have_extension?(item) && route_doesnt_have_extension?(initial_route) end def call(initial_route, item) add_extension(initial_route, item) end private def add_extension(initial_route, item) intersection = item.extensions & @keep_extensions extension = intersection[0] "#{initial_route}.#{extension}" end def item_should_have_extension?(item) intersection = item.extensions & @keep_extensions !intersection.empty? end def route_doesnt_have_extension?(initial_route) initial_route_extensions = initial_route.split(".")[1..-1] intersection = initial_route_extensions & @keep_extensions intersection.empty? end end end end
Version data entries
14 entries across 14 versions & 1 rubygems