https://github.com/sinatra/mustermann
your personal string matching expert
https://github.com/sinatra/mustermann
Keywords from Contributors
rack sinatra activerecord mvc activejob rubygem multithreading grape rspec rubocop
Last synced: 9 minutes ago
JSON representation
Repository metadata
your personal string matching expert
- Host: GitHub
- URL: https://github.com/sinatra/mustermann
- Owner: sinatra
- License: mit
- Created: 2013-04-27T12:14:43.000Z (almost 13 years ago)
- Default Branch: main
- Last Pushed: 2025-08-13T11:27:08.000Z (7 months ago)
- Last Synced: 2026-02-06T07:40:53.666Z (26 days ago)
- Language: Ruby
- Homepage: http://sinatrarb.com/mustermann/
- Size: 982 KB
- Stars: 664
- Watchers: 13
- Forks: 65
- Open Issues: 6
- Releases: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Support: support/lib/support.rb
README.md
The Amazing Mustermann
This repository contains multiple projects (each installable as separate gems).
- mustermann: Your personal string matching expert. This is probably what you're looking for.
- mustermann-contrib: A meta gem depending on all other official mustermann gems.
- mustermann-fileutils: Efficient file system operations using Mustermann patterns.
- mustermann-strscan: A version of Ruby's StringScanner made for pattern objects.
- mustermann-visualizer: Syntax highlighting and tree visualization for patterns.'
- A selection of pattern types for mustermann, each as their own little library, see below.
Git versions with Bundler
You can easily use the latest edge version from GitHub of any of these gems via Bundler:
github 'sinatra/mustermann' do
gem 'mustermann'
gem 'mustermann-contrib'
end
Pattern Types
The identity, regexp and sinatra types are included in the mustermann gem, all the other types have their own gems.
Any software using Mustermann is obviously compatible with at least one of the above.
Requirements
Ruby 2.6+ compatible Ruby implementation.
JRuby support is unknown, see more in issue #72.
Release History
Mustermann follows Semantic Versioning 2.0. Anything documented in the README or via YARD and not declared private is part of the public API.
Stable Releases
-
Mustermann 3.0.4 (2025-08-03)
-
Mustermann 3.0.3 (2024-09-03)
- Fix performance issue for
Mustermann::AST::Translator#escape#142 @hsbt, @ericproulx
- Fix performance issue for
-
Mustermann 3.0.2 (2024-08-09)
-
Mustermann 3.0.1 (2024-07-31)
-
Mustermann 3.0.0 (2022-07-24)
- Drop support for old Rubies < 2.6.
-
Mustermann 2.0.2 (2022-07-22)
-
Mustermann 2.0.1 (2022-07-19)
-
Mustermann 2.0.0 (2022-07-18)
-
Mustermann 1.1.2 (2022-07-16)
- Add compatibility with --enable=frozen-string-literal param. Fixes #110 @michal-granec
-
Mustermann 1.1.1 (2020-01-04)
-
Mustermann 1.1.0 (2019-12-30)
- Proper handling of
Mustermann::ExpandError. Fixes #88 @namusyaka - Support Ruby 3 keyword arguments. @mame
- At the same time, we dropped a support that accepts options followed by mappings on
Mustermann::Mapper. Reference commit
- At the same time, we dropped a support that accepts options followed by mappings on
- Improve documentation and development. @horaciob, @epistrephein, @jbampton, @jkowens, @junaruga
- Proper handling of
-
Mustermann 1.0.3 (2018-08-17)
- Handle
with_look_aheadon SafeRenderer. Fixes sinatra/sinatra#1409 @namusyaka - Fix
EqualityMap#fetchto be compatible with the fallbackHash#fetch. Fixes #89 @eregon - Improve code base and documentation. @sonots, @iguchi1124
- Handle
-
Mustermann 1.0.2 (2018-02-17)
- Look ahead same patterns as its own when concatenation. Fixes sinatra/sinatra#1361 @namusyaka
- Improve development support and documentation. @EdwardBetts, @284km, @yb66 and @garybernhardt
-
Mustermann 1.0.1 (2017-08-26)
Docs
- Updating readme to list Ruby 2.2 as minimum commit (@cassidycodes)
- Fix rendering of HTML table commit (@stevenwilkin)
- Update summary and description in gemspec file. commit (@junaruga)
Fixes
-
Mustermann 1.0.0 (2017-03-05)
- First stable release.
- Includes
mustermann, andmustermann-contribgems - Sinatra patterns: Allow | outside of parens.
- Add concatenation support (
Mustermann::Pattern#+). Mustermann::Sinatra#|may now generate a Sinatra pattern instead of a real composite.- Add syntax highlighting support for composite patterns.
- Remove routers (they were out of scope for the main gem).
- Rails patterns: Add Rails 5.0 compatibility mode, make it default.
- Moved
toolgemEqualityMaptoMustermann::EqualityMapin core - Improve documentation.
Development Releases
- Mustermann 0.4.0 (2014-11-26)
- More Infos:
RubyGems.org,
RubyDoc.info,
GitHub.com - Split into multiple gems.
- Add
Pattern#to_proc. - Add
Pattern#|,Pattern#&andPattern#^. - Add
Pattern#peek,Pattern#peek_size,Pattern#peek_matchandPattern#peek_params. - Add
Mustermann::StringScanner. - Add
Pattern#to_templates. - Add
|syntax tosinatratemplates. - Add template style placeholders to
sinatratemplates. - Add
cake,express,flaskandpyramidpatterns. - Allow passing in additional value behavior directly to
Pattern#expand. - Fix expanding of multiple splats.
- Add expanding to
identitypatterns. - Add
mustermann-fileutils. - Make expander accept hashes with string keys.
- Allow named splats to be named splat.
- Support multiple Rails versions.
- Type option can be set to nil to get the default type.
- Add
mustermann-visualizer.
- More Infos:
- Mustermann 0.3.1 (2014-09-12)
- More Infos:
RubyGems.org,
RubyDoc.info,
GitHub.com - Speed up pattern generation and matching (thanks Daniel Mendler)
- Small change so
Mustermann === Mustermann.new('...')returnstrue.
- More Infos:
- Mustermann 0.3.0 (2014-08-18)
- More Infos:
RubyGems.org,
RubyDoc.info,
GitHub.com - Add
regexppattern. - Add named splats to Sinatra patterns.
- Add
Mustermann::Mapper. - Improve duck typing support.
- Improve documentation.
- More Infos:
- Mustermann 0.2.0 (2013-08-24)
- More Infos:
RubyGems.org,
RubyDoc.info,
GitHub.com - Add first class expander objects.
- Add params casting for expander.
- Add simple router and rack router.
- Add weak equality map to significantly improve performance.
- Fix Ruby warnings.
- Improve documentation.
- Refactor pattern validation, AST transformations.
- Increase test coverage (from 100%+ to 100%++).
- Improve JRuby compatibility.
- Work around bug in 2.0.0-p0.
- More Infos:
- Mustermann 0.1.0 (2013-05-12)
- More Infos:
RubyGems.org,
RubyDoc.info,
GitHub.com - Add
Pattern#expandfor generating strings from patterns. - Add better internal API for working with the AST.
- Improved documentation.
- Avoids parsing the path twice when used as Sinatra extension.
- Better exceptions for unknown pattern types.
- Better handling of edge cases around extend.
- More specs to ensure API stability.
- Largely rework internals of Sinatra, Rails and Template patterns.
- More Infos:
- Mustermann 0.0.1 (2013-04-27)
- More Infos:
RubyGems.org,
RubyDoc.info,
GitHub.com - Initial Release.
- More Infos:
Owner metadata
- Name: Sinatra
- Login: sinatra
- Email:
- Kind: organization
- Description:
- Website: http://www.sinatrarb.com
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/8312?v=4
- Repositories: 12
- Last ynced at: 2024-03-25T19:32:57.740Z
- Profile URL: https://github.com/sinatra
GitHub Events
Total
- Delete event: 1
- Pull request event: 4
- Fork event: 1
- Watch event: 4
- Issue comment event: 11
- Push event: 5
- Create event: 1
Last Year
- Delete event: 1
- Pull request event: 4
- Fork event: 1
- Watch event: 1
- Issue comment event: 11
- Push event: 5
- Create event: 1
Committers metadata
Last synced: 3 days ago
Total Commits: 331
Total Committers: 41
Avg Commits per committer: 8.073
Development Distribution Score (DDS): 0.489
Commits in past year: 7
Committers in past year: 2
Avg Commits per committer in past year: 3.5
Development Distribution Score (DDS) in past year: 0.143
| Name | Commits | |
|---|---|---|
| Konstantin Haase | k****s@g****m | 169 |
| namusyaka | n****a@g****m | 37 |
| Patrik Ragnarsson | p****k@s****t | 31 |
| Zachary Scott | m****l@z****o | 12 |
| Jordan Owens | j****s@g****m | 12 |
| Olle Jonsson | o****n@g****m | 11 |
| Vipul A M | v****d@g****m | 8 |
| Benoit Daloze | e****p@g****m | 6 |
| Yusuke Endoh | m****e@r****g | 5 |
| Paul Padier | p****r@o****m | 3 |
| 284km | k****0@g****m | 2 |
| Giuseppe Capizzi | g****i@g****m | 2 |
| Hiroshi SHIBATA | h****t@r****g | 2 |
| Jun Aruga | j****a@r****m | 2 |
| René Föhring | rf@b****e | 2 |
| mishina | t****8@g****m | 2 |
| Michal Granec | m****c@g****m | 1 |
| Iain Barnett | i****d@g****m | 1 |
| Eloy Perez | e****z@c****m | 1 |
| Anton Paisov | p****v@g****m | 1 |
| stjhimy | s****y@g****m | 1 |
| horaciob | h****b@g****m | 1 |
| Tommaso Barbato | e****n@g****m | 1 |
| Steven Wilkin | s****n@g****m | 1 |
| Shota Iguchi | s****i@c****m | 1 |
| Samuel Williams | s****s@o****z | 1 |
| ReadmeCritic | f****t@g****m | 1 |
| Peter Goldstein | p****n@g****m | 1 |
| Noah Clark | n****h@n****t | 1 |
| Nate Berkopec | n****c@g****m | 1 |
| and 11 more... | ||
Committer domains:
- ruby-lang.org: 2
- criteo.com: 1
- fastmail.com: 1
- headius.com: 1
- daniel-mendler.de: 1
- 4angle.com: 1
- petalmd.com: 1
- noahc.net: 1
- oriontransfer.co.nz: 1
- cookpad.com: 1
- cabify.com: 1
- globalapptesting.com: 1
- bamaru.de: 1
- redhat.com: 1
- zzak.io: 1
- starkast.net: 1
Issue and Pull Request metadata
Last synced: 10 days ago
Total issues: 31
Total pull requests: 76
Average time to close issues: 8 months
Average time to close pull requests: about 2 months
Total issue authors: 25
Total pull request authors: 37
Average comments per issue: 3.39
Average comments per pull request: 1.91
Merged pull request: 71
Bot issues: 0
Bot pull requests: 0
Past year issues: 3
Past year pull requests: 4
Past year average time to close issues: 11 days
Past year average time to close pull requests: 7 days
Past year issue authors: 3
Past year pull request authors: 2
Past year average comments per issue: 3.67
Past year average comments per pull request: 1.5
Past year merged pull request: 3
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- namusyaka (4)
- rkh (3)
- dometto (2)
- plexus (1)
- tobidelius (1)
- mscrivo (1)
- dillonwelch (1)
- brometeo (1)
- andriytyurnikov (1)
- minad (1)
- rschwass (1)
- eregon (1)
- pravi (1)
- brett-novu (1)
- dblock (1)
Top Pull Request Authors
- namusyaka (18)
- olleolleolle (9)
- hsbt (5)
- eregon (4)
- dentarg (3)
- junaruga (3)
- jkowens (3)
- epergo (2)
- ericproulx (2)
- rkh (2)
- mishina2228 (2)
- 284km (2)
- iguchi1124 (2)
- Annih (1)
- jbampton (1)
Top Issue Labels
- feature (5)
- bug (3)
- sinatra pattern (3)
- all patterns (2)
- rails pattern (1)
- template pattern (1)
- compatibility (1)
Top Pull Request Labels
Package metadata
- Total packages: 16
-
Total downloads:
- rubygems: 540,206,341 total
- Total docker downloads: 1,669,882,814
- Total dependent packages: 65 (may contain duplicates)
- Total dependent repositories: 35,465 (may contain duplicates)
- Total versions: 117
- Total maintainers: 5
gem.coop: mustermann
A library implementing patterns that behave like regular expressions.
- Homepage: https://github.com/sinatra/mustermann
- Documentation: http://www.rubydoc.info/gems/mustermann/
- Licenses: MIT
- Latest release: 3.0.4 (published 7 months ago)
- Last Synced: 2026-03-02T01:02:20.511Z (2 days ago)
- Versions: 24
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 267,702,466 Total
- Docker Downloads: 834,941,380
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 0.051%
- Downloads: 0.096%
- Docker downloads count: 0.109%
- Maintainers (5)
ubuntu-20.04: ruby-mustermann
- Homepage: https://github.com/sinatra/mustermann
- Licenses: mit
- Latest release: 1.0.0-4 (published 19 days ago)
- Last Synced: 2026-02-13T07:18:13.799Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 0.468%
- Stargazers count: 0.787%
- Forks count: 1.086%
rubygems.org: mustermann
A library implementing patterns that behave like regular expressions.
- Homepage: https://github.com/sinatra/mustermann
- Documentation: http://www.rubydoc.info/gems/mustermann/
- Licenses: MIT
- Latest release: 3.0.4 (published 7 months ago)
- Last Synced: 2026-03-02T18:03:54.514Z (1 day ago)
- Versions: 24
- Dependent Packages: 57
- Dependent Repositories: 35,392
- Downloads: 267,802,998 Total
- Docker Downloads: 834,941,380
-
Rankings:
- Downloads: 0.098%
- Docker downloads count: 0.133%
- Dependent repos count: 0.173%
- Dependent packages count: 0.495%
- Average: 1.102%
- Stargazers count: 2.246%
- Forks count: 3.467%
- Maintainers (5)
gem.coop: mustermann-contrib
Adds many plugins to Mustermann
- Homepage: https://github.com/sinatra/mustermann
- Documentation: http://www.rubydoc.info/gems/mustermann-contrib/
- Licenses: MIT
- Latest release: 3.0.4 (published 7 months ago)
- Last Synced: 2026-03-02T17:33:46.599Z (1 day ago)
- Versions: 18
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 2,351,346 Total
- Docker Downloads: 27
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 1.238%
- Downloads: 2.244%
- Docker downloads count: 2.709%
- Maintainers (4)
rubygems.org: mustermann-contrib
Adds many plugins to Mustermann
- Homepage: https://github.com/sinatra/mustermann
- Documentation: http://www.rubydoc.info/gems/mustermann-contrib/
- Licenses: MIT
- Latest release: 3.0.4 (published 7 months ago)
- Last Synced: 2026-02-28T21:01:08.368Z (3 days ago)
- Versions: 18
- Dependent Packages: 8
- Dependent Repositories: 73
- Downloads: 2,349,531 Total
- Docker Downloads: 27
-
Rankings:
- Dependent packages count: 2.055%
- Stargazers count: 2.236%
- Downloads: 2.456%
- Average: 2.757%
- Dependent repos count: 3.138%
- Docker downloads count: 3.198%
- Forks count: 3.457%
- Maintainers (4)
proxy.golang.org: github.com/sinatra/mustermann
- Homepage:
- Documentation: https://pkg.go.dev/github.com/sinatra/mustermann#section-documentation
- Licenses: mit
- Latest release: v3.0.4+incompatible (published 7 months ago)
- Last Synced: 2026-02-28T21:01:08.872Z (3 days ago)
- Versions: 22
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 9.56%
- Average: 10.169%
- Dependent repos count: 10.779%
ubuntu-23.04: ruby-mustermann
- Homepage: https://github.com/sinatra/mustermann
- Licenses:
- Latest release: 3.0.0-2 (published 21 days ago)
- Last Synced: 2026-02-11T00:29:50.109Z (21 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-11: ruby-mustermann
- Homepage: https://github.com/sinatra/mustermann
- Documentation: https://packages.debian.org/bullseye/ruby-mustermann
- Licenses:
- Latest release: 1.1.1-1 (published 21 days ago)
- Last Synced: 2026-02-13T08:22:49.317Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-10: ruby-mustermann
- Homepage: https://github.com/sinatra/mustermann
- Documentation: https://packages.debian.org/buster/ruby-mustermann
- Licenses:
- Latest release: 1.0.0-4 (published 20 days ago)
- Last Synced: 2026-02-13T04:23:19.312Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
guix: ruby-mustermann
Library implementing patterns that behave like regular expressions
- Homepage: https://github.com/sinatra/mustermann
- Documentation: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/ruby-xyz.scm#n14590
- Licenses: expat
- Latest release: 3.0.0 (published 1 day ago)
- Last Synced: 2026-03-02T18:55:39.745Z (1 day ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-22.04: ruby-mustermann
- Homepage: https://github.com/sinatra/mustermann
- Licenses:
- Latest release: 1.1.1-1 (published 18 days ago)
- Last Synced: 2026-02-13T13:21:16.688Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-13: ruby-mustermann
- Homepage: https://github.com/sinatra/mustermann
- Documentation: https://packages.debian.org/trixie/ruby-mustermann
- Licenses: mit
- Latest release: 3.0.0-2 (published 19 days ago)
- Last Synced: 2026-02-13T13:17:46.408Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-12: ruby-mustermann
- Homepage: https://github.com/sinatra/mustermann
- Documentation: https://packages.debian.org/bookworm/ruby-mustermann
- Licenses:
- Latest release: 3.0.0-2 (published 19 days ago)
- Last Synced: 2026-02-12T23:35:38.337Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
Dependencies
- support >= 0 development
- ruby2_keywords >= 0
- ruby2_keywords ~> 0.0.1
- hansi ~> 0.2.0
- addressable >= 0
- coveralls >= 0
- rack-test >= 0
- rake >= 0
- rspec >= 0
- rspec-its >= 0
- simplecov ~> 0.17.0
- sinatra ~> 1.4
- tool ~> 0.2
- yard >= 0
- actions/checkout v3 composite
- ruby/setup-ruby v1 composite
Score: 31.737165370651187