Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
The MVC framework for JavaScript applications. The real MVC. The Smalltalk MVC. The Gang of Four MVC.
JavaScript CSS Makefile
tree: 67244ceaf7

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
doc
eg
lib
src
tst
.gitignore
LICENSE
Makefile
README.md

README.md

Maria

An MVC framework for JavaScript applications. The real MVC. The Smalltalk MVC. The Gang of Four MVC.

  • A model contains domain data. When a model changes, it informs its observers.

  • A view observes a model and represents its model's current state. A view has a controller. A view can have child views.

  • A controller decides what happens when a user interacts with the controller's view.

The three core design patterns of MVC (observer, composite, and strategy) are embedded in Maria's Model, View, and Controller objects. Other patterns traditionally included in MVC implementations (e.g. factory method and template) make appearances too.

Downloads

See http://peter.michaux.ca/downloads/maria/

maria.js contains all the Maria source files concatenated together. This is a good file to use during the development of your application.

maria-min.js contains the same code as maria.js but maria-min.js has been minified to remove whitespace and code comments. This is a good file to serve in production.

Documentation

See the doc directory which is also available at http://peter.michaux.ca/maria/.

Examples

The eg directory contains example applications including the canonical to-do application.

Community

You can report bugs, suggest features, or join general discussion at https://github.com/petermichaux/maria/issues

Status

Release candidates are in progress.

Browser Support

Tested working in IE6 and newer browsers by a variety of manufacturers.

Dependencies

None. Maria combines several independent micro libraries which are all included.

Source Code

GitHub: https://github.com/petermichaux/maria

Build

To build the production ready files, you need JSMin or any other tool with the same command line interface. Then just type "make" at the command line and look in the build directory for the results.

For the record, this is how I installed JSMin. Note that I have /Users/peter/bin in my PATH.

$ cd ~/tmp
$ curl -O https://raw.github.com/douglascrockford/JSMin/master/jsmin.c
$ gcc -o jsmin jsmin.c
$ mv jsmin ~/bin
$ rm jsmin.c
$ which jsmin
/Users/peter/bin/jsmin

Tests

To run the automated tests, open tst/runner.html in a web browser.

Acknowledgements

Thanks to James Ladd for encouraging me to start this project. Checkout his Redline Smalltalk if Smalltalk on the JVM seems like a good idea to you.

Thanks to the Buster.JS development team for providing a great, automated testing tool.

Thanks to the Git and GitHub teams for making it easy to collaborate with others on code projects.

Author

Peter Michaux
petermichaux@gmail.com
http://peter.michaux.ca/
@petermichaux

License

Simplified BSD License. See the included LICENSE file for details.

Something went wrong with that request. Please try again.