MuckEngine
The muck engine is forms the basis for the muck framework and includes basic functionality utilized by the various muck engines.
The easiest way to get started with muck is to generate your application using a template:
$ rails <your-app> -m http://github.com/jbasdf/rails-templates/raw/master/muck.rb
Add optional functionality with the following command:
$ rake rails:template LOCATION=http://github.com/jbasdf/rails-templates/raw/master/mucktoo.rb
Installation
sudo gem install muck-engine
Setup
Add a method to application_controller.rb that will determine which users have access to the admin section of the website
# called by Admin::Muck::BaseController to check whether or not the
# user should have access to the admin UI
def admin_access_required
access_denied unless admin?
end
Muck provides a number of methods that can set the current locale. Add a before filter and method to application_controller.rb
before_filter :set_locale
Add a set_locale method:
def set_locale
discover_locale
end
The set_locale method can use discover_locale to try various methods of finding the proper locale or it can call any of the methods individually:
def discover_locale
I18n.locale = extract_locale_from_tld || extract_locale_from_subdomain || extract_locale_from_headers || extract_locale_from_user_selection || extract_locale_from_browser || I18n.default_locale
end
Usage
If your application includes a locale switching menu, you would then have something like this in it:
link_to("Deutsch", "#{APP_CONFIG[:deutsch_website_url]}#{request.env['REQUEST_URI']}")
Localization
Muck Engine comes with translations from the rails-i18n repository (github.com/svenfuchs/rails-i18n)
Layout
The muck template will build your basic application and construct all the needed files and configuration.
If you build your own layout be sure to include the following script in your layout or the javascript in the system won’t work:
<script type="text/javascript" language="JavaScript">
<%= yield :javascript %>
</script>
You can customize your email template by overriding the existing layouts. Simply add email_default.text.html.erb and email_default.text.plain.erb views/layouts. This will build templates for html and plain text emails. For an example of each look at the views/layouts directory in this project.
iPhone
To add detection for the iPhone just add this to the top of your controller:
before_filter :adjust_format_for_iphone
CSS
The css provided by the muck engine comes from blueprint: www.blueprintcss.org/
We’ve also included a liquid version: www.ixda.org/discuss.php?post=23298&search=blueprint
And icons: www.ajaxbestiary.com/Labs/SilkSprite/
Javascript
The muck engine uses jQuery for javascript. Grab the latest version: jquery.com/
Other Javascript libraries.
Muck engine also needs the following javascript libraries: fancybox - fancy.klade.lv/home easing - gsgd.co.uk/sandbox/jquery/easing/ fancyzoom - orderedlist.com/articles/fancyzoom-meet-jquery
jGrowl
jGrowl - www.stanlemon.net/projects/jgrowl.html If you wish to enable jgrowl then add the following lines to application.js and customize each as desired:
jQuery.jGrowl.defaults.position = 'center';
jQuery.jGrowl.info = function(msg){
jQuery.jGrowl(msg);
}
jQuery.jGrowl.warn = function(msg){
jQuery.jGrowl(msg);
}
jQuery.jGrowl.error = function(msg){
jQuery.jGrowl(msg, {sticky:true});
}
Development Notes
es-CO.yml is missing a space on line 91:
record_invalid:"Falla de validación: {{errors}}"
should be:
record_invalid: "Falla de validación: {{errors}}"
Copyright © 2009-2011 Tatemai, released under the MIT license