quirkey/sammy
quirkey/sammy has 2,973 GitHub stars and 378 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-07 18:59 UTC. Last push 2024-07-27.
Sammy is a tiny javascript framework built on top of jQuery, It's RESTful Evented Javascript.
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalSammy
Description
Sammy is a tiny javascript framework built on top of jQuery inspired by Ruby's Sinatra.
Installation
Download Sammy.js and install it in your public javascripts directory. Include it in your document AFTER jQuery.
Usage
Like Sinatra, a Sammy application revolves around 'routes'. Routes in Sammy are a little different, though. Not only can you define 'get' and 'post' routes, but you can also bind routes to custom events triggered by your application.
You set up a Sammy Application by passing a Function to the $.sammy (which is a shortcut for the Sammy.Application constructor).
$.sammy(function() {
this.get('#/', function() {
$('#main').text('Welcome!');
});
});
Inside the 'app' function() this is the Application. This is where you can configure the application and add routes.
Above, we defined a get() route. When the browser is pointed to #/ the function passed to that route will be run. Inside the route function, this is a Sammy.EventContext. EventContext has a bunch of special methods and properties including a params hash, the ability to redirect, render partials, and more.
In its coolness, Sammy can handle multiple chained asynchronous callbacks on a route.
this.get('#/', function(context,next) {
$('#main').text('Welcome!');
$.get('/some/url',function(){
// save the data somewhere
next();
});
}, function(context,next) {
$.get('/some/other/url',function(){
// save this data too
next();
});
});
Once you've defined an application the only thing left to do is run it. The best-practice behavior is to encapsulate run() in a document.ready block:
var app = $.sammy(...)
$(function() {
app.run();
});
This will guarantee that the DOM is loaded before we try to apply functionality to it.
Dependencies
Sammy requires jQuery >= 1.4.1 Get it from: http://jquery.com
More!
Learn!
Keep informed!
Authors
Sammy.js was created and is maintained by Aaron Quint with additional features and fixes contributed by these talented individuals:
- Frank Prößdorf / endor
- Alexander Lang / langalex
- Scott McMillin / scottymac
- ZhangJinzhu / jinzhu
- Jesse Hallett / hallettj
- Jonathan Vaught / gravelpup
- Jason Davies / jasondavies
- Russell Jones / CodeOfficer
- Geoff Longman
- Jens Bissinger / dpree
- Tim Caswell / creationix
- Mark Needham
- SamDeLaGarza
- Mickael Bailly / dready92
- Rich Manalang / manalang
- Brian Mitchell / binary42
- Assaf Arkin / assaf
- James Rosen / jamesrosen
- Chris Mytton
- kbuckler
- dvv
- Ben Vinegar / benvinegar
- Avi Deitcher / deitch
Donate!
If you're using Sammy.js in production or just for fun, instead of gifting me a beer - please consider donating to the Code for Other People Fund. - you can probably spare a dollar or ten and it will be greatly appreciated.
License
Sammy is covered by the MIT License. See LICENSE for more information.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,973 starspublic-apis/public-apis
A collective list of free APIs
497,232 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
442,848 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,187 stars