public
Description: DEVELOPMENT DISCONTINUED: Consider using Spree (repo: http://github.com/railsdog/spree) instead.
Homepage:
Clone URL: git://github.com/myabc/merb_mart.git
Click here to lend your support to: merb_mart and make a donation at www.pledgie.com !
myabc (author)
Mon Aug 17 13:33:34 -0700 2009
commit  2d0ccf708aad6e02dc077aeac5e53553d852fb0a
tree    204c84eb03c4e37417424b1f249d1c76aa608523
parent  4879d3ec5d8d2211ea43e329bcb48a72dbb86a01
name age message
file .gitignore Fri May 16 01:57:01 -0700 2008 Whitespace cleanup [myabc]
file CHANGELOG Fri May 16 01:57:01 -0700 2008 Whitespace cleanup [myabc]
file GPL-LICENSE Sun Apr 27 12:43:52 -0700 2008 Changed license to GPL License. Updated README ... [myabc]
file INSTALL Sun Nov 02 13:51:40 -0800 2008 Consolidation of work on slicefiying applicatio... [myabc]
file README Sun Nov 02 13:51:40 -0800 2008 Consolidation of work on slicefiying applicatio... [myabc]
file README.markdown Mon Aug 17 13:33:34 -0700 2009 Create note on discontinued development Signed... [myabc]
file README.old.markdown Mon Aug 17 13:33:34 -0700 2009 Create note on discontinued development Signed... [myabc]
file Rakefile Sun Nov 02 13:51:40 -0800 2008 Consolidation of work on slicefiying applicatio... [myabc]
file TODO Sun Nov 02 13:51:40 -0800 2008 Consolidation of work on slicefiying applicatio... [myabc]
directory app/ Sun Nov 02 13:58:46 -0800 2008 Fix a few missed renames [myabc]
directory config/ Sun Nov 02 13:51:40 -0800 2008 Consolidation of work on slicefiying applicatio... [myabc]
directory examples/ Sun Nov 02 13:51:40 -0800 2008 Consolidation of work on slicefiying applicatio... [myabc]
directory lib/ Sun Nov 02 13:51:40 -0800 2008 Consolidation of work on slicefiying applicatio... [myabc]
directory public/ Sat May 31 06:08:19 -0700 2008 Merge commit 'ben/master' Conflicts: .gitign... [myabc]
directory spec/ Sun Nov 02 13:51:40 -0800 2008 Consolidation of work on slicefiying applicatio... [myabc]
directory stubs/ Sun Nov 02 13:51:40 -0800 2008 Consolidation of work on slicefiying applicatio... [myabc]
directory www/ Sun Mar 23 15:07:00 -0700 2008 Added website (www) documentation skeleton. [myabc]
README.old.markdown

MerbMart README

MerbMart is an open-source e-commerce engine, developed on top of the recent Ruby-language, Merb MVC framework. It takes advantage of the Merb's slices plugin, allowing you to incorporate the engine into a customized e-commerce solution.

Performance

Mom and Pop?.. or Big Box?

A key goal for the MerbMart engine is performance. Although MerbMart is designed for e-commerce sites of all sizes, the speed and scalability of the Merb and DataMapper frameworks make it scalable even for large online vendors.

The following technologies and frameworks provide a foundation for MerbMart:

  • Merb, for Model-View-Controller.
  • DataMapper, for object relation mapping (ORM) and persistence.
  • ActiveMerchant, for Credit Card, payment and shipping processing. as well as attachmerb_fu, merb_paginate.
  • RSpec, for behavio(u)r driven development (BDD).

See INSTALL or the project wiki for a full list of dependencies.

MerbMart is inspired by other, Rails based e-commerce applications, including Substruct and Spree. Although MerbMart started out as a project to port Substruct to Merb, the initial 0.1 release of MerbMart will instead be a its own implementation of an e-commerce engine, trying to match the feature sets other e-commerce applications, but taking advantages of the unique features of Merb and DataMapper.

About Slices

Merb-Slices is a Merb plugin for using and creating application 'slices' which help you modularize your application. Usually these are reuseable extractions from your main app. In effect, a Slice is just like a regular Merb MVC application, both in functionality as well as in structure.

When you generate a Slice stub structure, a module is setup to serve as a namespace for your controller, models, helpers etc. This ensures maximum encapsulation. You could say a Slice is a mixture between a Merb plugin (a Gem) and a Merb application, reaping the benefits of both.

A host application can 'mount' a Slice inside the router, which means you have full over control how it integrates. By default a Slice's routes are prefixed by its name (a router :namespace), but you can easily provide your own prefix or leave it out, mounting it at the root of your url-schema. You can even mount a Slice multiple times and give extra parameters to customize an instance's behaviour.

A Slice's Application controller uses controller_for_slice to setup slice specific behaviour, which mainly affects cascaded view handling. Additionaly, this method is available to any kind of controller, so it can be used for Merb Mailer too for example.

There are many ways which let you customize a Slice's functionality and appearance without ever touching the Gem-level code itself. It's not only easy to add template/layout overrides, you can also add/modify controllers, models and other runtime code from within the host application.

Installation and Setup

Please see the INSTALL file for details on getting up and running with MerbMart.

Developer Notes

WARNING : MerbMart is at a very early development stages. At this stage, the application should be considered only for consumption by advanced Ruby and Merb developers. If you're looking for something for production consumption, or not yet ready to jump from Ruby on Rails, then we would strongly advise trying Substruct or Spree.

REQUEST : Your development support is very much appreciated. Please contact us below if you're interested in lending a hand with the development of this project. Or alternatively, clone the code, fork it, create some patches and let us know when you're done.

Getting the Source

Performing a git clone on either of the following repositories will get you the latest source:

git clone git://github.com/myabc/merb_mart.git
git clone git://gitorious.org/merb_mart/mainline.git (on gitorious)

The following additional mirrors are available:

git://repo.or.cz/merb_mart.git
http://repo.or.cz/r/merb_mart.git

Copyright and License

MerbMart is licensed under the GNU Public License (GPL):

> Copyright (C) 2008 Alex Coles

> This program is free software: you can redistribute it and/or modify > it under the terms of the GNU General Public License as published by > the Free Software Foundation, either version 2 of the License, or > (at your option) any later version.

> This program is distributed in the hope that it will be useful, > but WITHOUT ANY WARRANTY; without even the implied warranty of > MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > GNU General Public License for more details.

> You should have received a copy of the GNU General Public License > along with this program. If not, see http://www.gnu.org/licenses/.

A copy of the GPL License may be found in the GPL-LICENSE, included with the distribution.

Support

WARNING REPEATED : MerbMart is still at a very early stage of its development. You should not use this code unless you're reasonably secure with the Ruby language, and the DataMapper and Merb frameworks. That said, please do get involved - and if you're happy to contribute back with bug reports and patches, then we'll be happy to help you get the application up and running.

Your best source for support currently is either the wiki, IRC or the mailing list: