matchete - A DSL for method overloading in Ruby based on pattern matching

  •        2

Matchete provides a DSL for method overloading based on pattern matching for Ruby. Copyright (c) 2015 Alexander Ivanov. See LICENSE for further details.



Related Projects

Mach7 - Functional programming style pattern-matching library for C++

  •    C++

Pattern matching is an abstraction mechanism that can greatly simplify source code. Commonly, pattern matching is built into a language to provide better syntax, faster code, correctness guarantees and improved diagnostics. Mach7 is a library solution to pattern matching in C++ that maintains many of these features. All the patterns in Mach7 are user-definable, can be stored in variables, passed among functions, and allow the use of open class hierarchies. Next example demonstrates that the library can deal efficiently and in a type-safe manner with non-polymorphic classes like boost::variant as well.

egison - Egison is a purely functional programming language with non-linear pattern-matching against non-free data types

  •    Haskell

Egison is the pattern-matching-oriented purely functional programming language. We can directly represent pattern-matching against lists, multisets, sets, trees, graphs and any kind of data types. This is the repository of the interpreter of Egison. For more information, visit our website.

NRules - Rules engine for .NET, based on the Rete matching algorithm, with internal DSL in C#.

  •    CSharp

NRules is an open source production rules engine for .NET, based on the Rete matching algorithm. Rules are authored in C# using internal DSL. Use the following resources to get up and running with NRules.

url-pattern - easier than regex string matching patterns for urls and other strings

  •    CoffeeScript

easier than regex string matching patterns for urls and other strings. turn strings into data or data into strings.a pattern is immutable after construction. none of its methods changes its state. that makes it easier to reason about.

defun - A macro to define clojure functions with parameter pattern matching just like erlang or elixir

  •    Clojure

A macro to define clojure functions with pattern matching just as erlang or elixir. It supports both clojure and clojurescript. Since 0.3.0-RC, defun namespace is renamed to defun.core .

matches.js - Powerful pattern matching for Javascript

  •    Javascript

Matches.js brings the power and expressiveness of pattern matching to Javascript. Check for specific values using number or string literals, null, or undefined.

sparkler - Native pattern matching for JavaScript

  •    Javascript

Sparkler is a pattern matching engine for JavaScript built using sweet.js macros, so it looks and feels like native syntax. It has no runtime dependencies and compiles down to simple ifs and fors. Sparkler overloads the function keyword as a macro (don't worry, all your old functions will still work) but implements a slightly different syntax. There's no argument list after the name or function keyword. Instead the function body is just a set of ES6 style arrow-lambdas separated by commas.

proposal-pattern-matching - Pattern matching syntax for ECMAScript


This proposal adds a pattern matching expression to the language, based on the existing Destructuring Binding Patterns. There's many proposals potentially related to this one, and other proposals might mention interaction with this. This file includes casual, example-based discussion of the proposal, and there's also a document describing the core semantics in more formal language, which will be iterated over into the final Spec-ese.

rubydns - RubyDNS provides a simple Ruby DSL for DNS servers.

  •    Ruby

RubyDNS is a high-performance DNS server which can be easily integrated into other projects or used as a stand-alone daemon. By default it uses rule-based pattern matching. Results can be hard-coded, computed, fetched from a remote DNS server or fetched from a local cache, depending on requirements. There are lots of examples available in the examples/ directory.

match-when - :shell: Pattern matching for modern JavaScript

  •    Javascript

Note that when() is a catch-all pattern and, if used, should always be the last condition. If you forget it match() will throw a MissingCatchAllPattern exception if nothing was matched.

XprobePlugin - Live Memory Browser for Apps & Xcode

  •    Javascript

In the simulator, the memory sweeper is loaded from a bundle inside the plugin using lldb requiring no changes to the app's project source. To use the plugin, build this project and restart Xcode. Once your application is running, use menu item "Product/Xprobe/Load" to load the initial view of the memory sweep of your app. If you are a plugin developer you use "Product/Xprobe/Xcode" to inspect the objects of the Xcode application itself. You can then filter the objects listed into the app or their methods using a pattern. If there are no objects matching the pattern and it is a class name it will be displayed. Patterns prefixed with '+' or '-' will search all classes linked into the application for methods matching the pattern. A raw pointer prefixed with "0x" can be entered to inspect an object passed as an argument to a trace. You can also enter an object "path" starting "seed." from the paths logged as you browse your application so you can find your way back to objects easily.

Prop compiler compiler

  •    C++

Prop is a pattern matching language based on C++. It implements algebraic datatypes, pattern matching and rewriting, and generates C++ code as output.

Functional Programming

  •    CSharp

This project brings some features from functional languages, like pattern matching, collection unfold or partial function application to C# and extends the possibilities of functional programming in C#. It's available as C# library.

pun - A small library to enable pattern matching in javascript and coffeescript

  •    Javascript

A tiny functional programming library for Javascript/Coffeescript.

hemera - 🔬 Writing reliable & fault-tolerant microservices with

  •    Javascript

Hemera (/ˈhɛmərə/; Ancient Greek: Ἡμέρα [hɛːméra] "day") is a small wrapper around the NATS driver. NATS is a simple, fast and reliable solution for the internal communication of a distributed system. It chooses simplicity and reliability over guaranteed delivery. We want to provide a toolkit to develop micro services in an easy and powerful way. We provide a pattern matching RPC style. You don't have to worry about the transport. NATS is powerful.Hemera has not been designed for high performance on a single process. It has been designed to create lots of microservices doesn't matter where they live. It choose simplicity and reliability as primary goals. It act together with NATS as central nervous system of your distributed system. Transport independency was not considered to be a relevant factor. In addition we use pattern matching which is very powerful. The fact that Hemera needs a broker is an argument which should be taken into consideration when you compare hemera with other frameworks. The relevant difference between microservice frameworks like senecajs, molecurer is not the performance or modularity its about the complexity you need to manage. Hemera is expert in providing an interface to work with lots of services in the network, NATS is the expert to deliver the message at the right place. Hemera is still a subscriber of NATS with some magic in routing and extensions. We don't have to worry about all different aspects in a distributed system like routing, load-balancing, service-discovery, clustering, health-checks ...

Patternoids pattern engine

  •    Python

Patternoids is a powerful object-oriented pattern matching/replacement engine written on top of Python regular expressions. It provides a set of classes which allow you to perform matching amp; replacing content in plain/structured text files.

zxcvbn-php - Realistic PHP password strength estimate library based on Zxcvbn JS

  •    PHP

Zxcvbn-PHP is a password strength estimator using pattern matching and minimum entropy calculation. Zxcvbn-PHP is based on the Javascript zxcvbn project from Dropbox and @lowe. "zxcvbn" is bad password, just like "qwerty" and "123456". zxcvbn attempts to give sound password advice through pattern matching and conservative entropy calculations. It finds 10k common passwords, common American names and surnames, common English words, and common patterns like dates, repeats (aaa), sequences (abcd), and QWERTY patterns.

actor-framework - An Open Source Implementation of the Actor Model in C++

  •    C++

CAF is an open source C++11 actor model implementation featuring lightweight & fast actor implementations, pattern matching for messages, network transparent messaging, and more. The easiest way to build CAF is to use the configure script. Other available options are using CMake directly or SNocs.

Presenter First DSL


The Presenter First DSL is a modeling tool for the Presenter First pattern.

Weasel-Diesel - DSL to describe, document and test web services

  •    Ruby

Weasel Diesel is a DSL to describe and document your web API. To get you going quickly, see the generator for sinatra apps. The wd_sinatra gem allows you to generate the structure for a sinatra app using Weasel Diesel and with lots of goodies. Updating is trivial since the core features are provided by this library and the wd_sinatra gem.

We have large collection of open source products. Follow the tags from Tag Cloud >>

Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.