aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/vendor/rack-mount-0.6.6.pre/rack/mount/strexp.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/lib/action_dispatch/vendor/rack-mount-0.6.6.pre/rack/mount/strexp.rb')
-rw-r--r--actionpack/lib/action_dispatch/vendor/rack-mount-0.6.6.pre/rack/mount/strexp.rb68
1 files changed, 0 insertions, 68 deletions
diff --git a/actionpack/lib/action_dispatch/vendor/rack-mount-0.6.6.pre/rack/mount/strexp.rb b/actionpack/lib/action_dispatch/vendor/rack-mount-0.6.6.pre/rack/mount/strexp.rb
deleted file mode 100644
index d0d8797008..0000000000
--- a/actionpack/lib/action_dispatch/vendor/rack-mount-0.6.6.pre/rack/mount/strexp.rb
+++ /dev/null
@@ -1,68 +0,0 @@
-require 'rack/mount/strexp/parser'
-
-module Rack::Mount
- class Strexp
- class << self
- # Parses segmented string expression and converts it into a Regexp
- #
- # Strexp.compile('foo')
- # # => %r{\Afoo\Z}
- #
- # Strexp.compile('foo/:bar', {}, ['/'])
- # # => %r{\Afoo/(?<bar>[^/]+)\Z}
- #
- # Strexp.compile(':foo.example.com')
- # # => %r{\A(?<foo>.+)\.example\.com\Z}
- #
- # Strexp.compile('foo/:bar', {:bar => /[a-z]+/}, ['/'])
- # # => %r{\Afoo/(?<bar>[a-z]+)\Z}
- #
- # Strexp.compile('foo(.:extension)')
- # # => %r{\Afoo(\.(?<extension>.+))?\Z}
- #
- # Strexp.compile('src/*files')
- # # => %r{\Asrc/(?<files>.+)\Z}
- def compile(str, requirements = {}, separators = [], anchor = true)
- return Regexp.compile(str) if str.is_a?(Regexp)
-
- requirements = requirements ? requirements.dup : {}
- normalize_requirements!(requirements, separators)
-
- parser = StrexpParser.new
- parser.anchor = anchor
- parser.requirements = requirements
-
- begin
- re = parser.scan_str(str)
- rescue Racc::ParseError => e
- raise RegexpError, e.message
- end
-
- Regexp.compile(re)
- end
- alias_method :new, :compile
-
- private
- def normalize_requirements!(requirements, separators)
- requirements.each do |key, value|
- if value.is_a?(Regexp)
- if regexp_has_modifiers?(value)
- requirements[key] = value
- else
- requirements[key] = value.source
- end
- else
- requirements[key] = Regexp.escape(value)
- end
- end
- requirements.default ||= separators.any? ?
- "[^#{separators.join}]+" : '.+'
- requirements
- end
-
- def regexp_has_modifiers?(regexp)
- regexp.options & (Regexp::IGNORECASE | Regexp::EXTENDED) != 0
- end
- end
- end
-end