lib/routes.js.coffee in js-routes-1.4.5 vs lib/routes.js.coffee in js-routes-1.4.6

- old
+ new

@@ -27,10 +27,11 @@ ParameterMissing.__proto__ = Error NodeTypes = NODE_TYPES DeprecatedGlobbingBehavior = DEPRECATED_GLOBBING_BEHAVIOR SpecialOptionsKey = SPECIAL_OPTIONS_KEY +UriEncoderSegmentRegex = /[^a-zA-Z0-9\-\._~!\$&'\(\)\*\+,;=:@]/g # this is ActionDispatch::Journey::Router::Utils::UriEncoder::SEGMENT ReservedOptions = [ 'anchor' 'trailing_slash' 'subdomain' @@ -210,11 +211,11 @@ "#{left_part}#{right_part}" when NodeTypes.SYMBOL value = parameters[left] delete parameters[left] if value? - return encodeURIComponent(@path_identifier(value)) + return @encode_segment(@path_identifier(value)) if optional "" # missing parameter else throw new ParameterMissing("Route parameter missing: #{left}") # @@ -223,10 +224,11 @@ # # when NodeTypes.OR: else throw new Error("Unknown Rails node type") + encode_segment: (segment) -> segment.replace(UriEncoderSegmentRegex, (str) -> encodeURIComponent(str)) is_optional_node: (node) -> @indexOf([NodeTypes.STAR, NodeTypes.SYMBOL, NodeTypes.CAT], node) >= 0 # # This method build spec for route @@ -399,10 +401,10 @@ set: (value) -> routes.default_serializer = (object, prefix) -> Utils.default_serializer(object, prefix) Utils.namespace(root, NAMESPACE, routes) - + # Set up Routes appropriately for the environment. if typeof define is "function" and define.amd # AMD define [], -> Utils.make() else