Skip to content

dtaniwaki/url_regexp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

url_regexp

Gem Version Dependency Status Build Status Coverage Status Code Climate

Installation

Add the url_regexp gem to your Gemfile.

gem "url_regexp"

And run bundle install.

Usage

e.g.

root = UrlRegexp::Root.new
root.append('http://www.example.com/foo/bar')
root.to_regexp
# => /^http:\/\/www\.example\.com\/foo\/bar([?#]|$)/
root.append('http://www.example.com/foo/bar/wow')
root.to_regexp
# => /^http:\/\/www\.example\.com\/foo\/bar(\/wow)?([?#]|$)/
root.append('http://www.example.com/boo/bar')
root.to_regexp
# => /^http:\/\/www\.example\.com\/(foo\/bar(\/wow)?|boo\/bar)([?#]|$)/
root.append('http://www.example.com/boo/bar/wow')
root.to_regexp
# => /^http:\/\/www\.example\.com\/(foo|boo)\/bar(\/wow)?([?#]|$)/

Options

wildcard_threshold (default: 5)

You can change the threshold to group paths as wildcard.

root = UrlRegexp::Root.new(wildcard_threshold: 2)
root.append('http://www.example.com/foo')
root.to_regexp
# => /^http:\/\/www\.example\.com\/foo([?#]|$)/
root.append('http://www.example.com/bar')
root.to_regexp
# => /^http:\/\/www\.example\.com\/(foo|bar)([?#]|$)/
root.append('http://www.example.com/wow')
root.to_regexp
# => /^http:\/\/www\.example\.com\/([^#?]*)([?#]|$)/

Test

bundle exec rake

It will execute rspec and rubocop.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Copyright

Copyright (c) 2016 Daisuke Taniwaki. See LICENSE for details.

About

Generate regular expression for URL

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages