muck-engine 0.4.34 → 3.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +1 -65
- data/Rakefile +30 -12
- data/VERSION +1 -1
- data/app/helpers/muck_engine_helper.rb +20 -38
- data/app/mailers/basic_mailer.rb +9 -0
- data/app/views/admin/default/index.html.erb +1 -1
- data/app/views/forms/_base_field.erb +6 -6
- data/app/views/forms/_tips.erb +3 -3
- data/app/views/layouts/admin/_head.html.erb +5 -5
- data/app/views/layouts/admin/_header.html.erb +1 -1
- data/app/views/layouts/{email_default.text.html.erb → email_default.html.erb} +3 -3
- data/app/views/layouts/email_default.text.erb +13 -0
- data/app/views/layouts/global/_google_analytics.html.erb +3 -3
- data/app/views/layouts/global/_head.html.erb +5 -5
- data/app/views/shared/_delete.erb +1 -1
- data/app/views/shared/_field_error.erb +5 -1
- data/app/views/shared/_growl.erb +1 -1
- data/{locales → config/locales}/ar.yml +0 -0
- data/{locales → config/locales}/bg.yml +0 -0
- data/{locales → config/locales}/ca.yml +0 -0
- data/{locales → config/locales}/cs.yml +0 -0
- data/{locales → config/locales}/da.yml +0 -0
- data/{locales → config/locales}/de.yml +0 -0
- data/{locales → config/locales}/el.yml +0 -0
- data/{locales → config/locales}/en.yml +3 -3
- data/{locales → config/locales}/es.yml +0 -0
- data/{locales → config/locales}/et.yml +0 -0
- data/{locales → config/locales}/fa.yml +0 -0
- data/{locales → config/locales}/fi.yml +0 -0
- data/{locales → config/locales}/fr.yml +0 -0
- data/{locales → config/locales}/gl.yml +0 -0
- data/{locales → config/locales}/hi.yml +0 -0
- data/{locales → config/locales}/hr.yml +0 -0
- data/{locales → config/locales}/hu.yml +0 -0
- data/{locales → config/locales}/id.yml +0 -0
- data/{locales → config/locales}/it.yml +0 -0
- data/{locales → config/locales}/iw.yml +0 -0
- data/{locales → config/locales}/ja.yml +0 -0
- data/{locales → config/locales}/ko.yml +0 -0
- data/{locales → config/locales}/lt.yml +0 -0
- data/{locales → config/locales}/lv.yml +0 -0
- data/{locales → config/locales}/mt.yml +0 -0
- data/{locales → config/locales}/nl.yml +0 -0
- data/{locales → config/locales}/no.yml +0 -0
- data/{locales → config/locales}/pl.yml +0 -0
- data/{locales → config/locales}/pt-PT.yml +0 -0
- data/{locales → config/locales}/pt.yml +0 -0
- data/{locales → config/locales}/ro.yml +0 -0
- data/{locales → config/locales}/ru.yml +0 -0
- data/{locales → config/locales}/sk.yml +0 -0
- data/{locales → config/locales}/sl.yml +0 -0
- data/{locales → config/locales}/sq.yml +0 -0
- data/{locales → config/locales}/sr.yml +0 -0
- data/{locales → config/locales}/sv.yml +0 -0
- data/{locales → config/locales}/th.yml +0 -0
- data/{locales → config/locales}/tl.yml +0 -0
- data/{locales → config/locales}/tr.yml +0 -0
- data/{locales → config/locales}/uk.yml +0 -0
- data/{locales → config/locales}/vi.yml +0 -0
- data/{locales → config/locales}/zh-CN.yml +0 -0
- data/{locales → config/locales}/zh-TW.yml +0 -0
- data/{locales → config/locales}/zh.yml +0 -0
- data/config/routes.rb +4 -0
- data/{tasks → lib}/languages.txt +0 -0
- data/lib/muck-engine.rb +22 -0
- data/lib/muck-engine/config.rb +106 -0
- data/lib/{action_controller/muck_application.rb → muck-engine/controllers/application.rb} +13 -30
- data/lib/muck-engine/controllers/ssl_requirement.rb +52 -0
- data/lib/muck-engine/engine.rb +60 -0
- data/lib/{muck_engine → muck-engine}/flash_errors.rb +2 -3
- data/lib/muck-engine/form_builder.rb +241 -0
- data/lib/muck-engine/json.rb +31 -0
- data/lib/muck-engine/mailers/general.rb +21 -0
- data/lib/{active_record/acts/muck_country.rb → muck-engine/models/country.rb} +16 -28
- data/lib/muck-engine/models/general.rb +20 -0
- data/lib/muck-engine/models/language.rb +36 -0
- data/lib/muck-engine/models/state.rb +14 -0
- data/lib/{muck_engine → muck-engine}/populate.rb +3 -1
- data/lib/muck-engine/rspec2.rb +9 -0
- data/lib/muck-engine/test/controllers/matchers.rb +17 -0
- data/lib/muck-engine/test/controllers/matchers/login_matcher.rb +50 -0
- data/lib/muck-engine/test/controllers/matchers/role_matcher.rb +72 -0
- data/lib/muck-engine/test/models/helpers.rb +32 -0
- data/lib/muck-engine/test/models/matchers.rb +51 -0
- data/lib/muck-engine/test/models/matchers/muck_matcher_base.rb +17 -0
- data/lib/muck-engine/test/models/matchers/nested_attribute_matcher.rb +33 -0
- data/lib/muck-engine/test/models/matchers/sanitize_matcher.rb +59 -0
- data/lib/muck-engine/test/models/matchers/scope_creator_matchers.rb +65 -0
- data/lib/muck-engine/test/models/matchers/scope_is_public_matchers.rb +43 -0
- data/lib/muck-engine/test/models/matchers/scope_ordinal_matchers.rb +47 -0
- data/lib/muck-engine/test/models/matchers/scope_sorting_matchers.rb +95 -0
- data/lib/muck-engine/test/models/matchers/scope_time_matchers.rb +59 -0
- data/lib/muck_test_helper.rb +25 -31
- data/lib/tasks/muck_engine.rake +438 -0
- data/lib/test/muck_factories.rb +12 -0
- data/lib/test/muck_test_methods.rb +35 -39
- data/lib/test/shoulda_macros/scopes.rb +29 -28
- data/muck-engine.gemspec +808 -744
- data/public/stylesheets/styles.css +4 -0
- data/test/{rails_root → rails_test}/.gitignore +0 -0
- data/test/{rails_root → rails_test}/.rake_tasks +0 -0
- data/test/rails_test/.rspec +1 -0
- data/test/rails_test/Gemfile +38 -0
- data/test/rails_test/Gemfile.lock +196 -0
- data/test/{rails_root → rails_test}/Rakefile +2 -5
- data/test/{rails_root → rails_test}/app/controllers/admin/default_controller.rb +0 -0
- data/test/rails_test/app/controllers/application_controller.rb +5 -0
- data/test/{rails_root → rails_test}/app/controllers/default_controller.rb +0 -0
- data/test/{rails_root → rails_test}/app/helpers/application_helper.rb +0 -0
- data/test/{rails_root → rails_test}/app/models/.keep +0 -0
- data/{app → test/rails_test/app}/models/country.rb +2 -2
- data/{app → test/rails_test/app}/models/language.rb +1 -1
- data/{app → test/rails_test/app}/models/state.rb +1 -1
- data/test/{rails_root → rails_test}/app/models/user.rb +1 -1
- data/test/{rails_root → rails_test}/app/models/user_session.rb +0 -0
- data/test/{rails_root → rails_test}/app/views/admin/default/index.html.erb +0 -0
- data/test/{rails_root → rails_test}/app/views/default/index.html.erb +0 -0
- data/test/{rails_root → rails_test}/app/views/layouts/default.html.erb +0 -0
- data/test/rails_test/autotest/discover.rb +2 -0
- data/test/rails_test/config.ru +4 -0
- data/test/rails_test/config/application.rb +42 -0
- data/test/rails_test/config/boot.rb +13 -0
- data/test/rails_test/config/cucumber.yml +8 -0
- data/test/{rails_root → rails_test}/config/database.yml +8 -0
- data/test/rails_test/config/environment.rb +5 -0
- data/test/rails_test/config/environments/development.rb +26 -0
- data/test/rails_test/config/environments/production.rb +49 -0
- data/test/rails_test/config/environments/test.rb +35 -0
- data/test/rails_test/config/initializers/backtrace_silencers.rb +7 -0
- data/test/{rails_root → rails_test}/config/initializers/inflections.rb +2 -2
- data/test/{rails_root → rails_test}/config/initializers/mime_types.rb +0 -0
- data/test/rails_test/config/initializers/muck.rb +33 -0
- data/test/rails_test/config/initializers/secret_token.rb +7 -0
- data/test/rails_test/config/initializers/session_store.rb +8 -0
- data/test/rails_test/config/routes.rb +4 -0
- data/test/{rails_root → rails_test}/db/.keep +0 -0
- data/test/{rails_root → rails_test}/db/migrate/20090320174818_create_muck_permissions_and_roles.rb +0 -0
- data/test/{rails_root/db/migrate/20090602041838_create_users.rb → rails_test/db/migrate/20090327231918_create_users.rb} +11 -10
- data/test/{rails_root → rails_test}/db/migrate/20090402234137_create_languages.rb +0 -0
- data/test/{rails_root → rails_test}/db/migrate/20090426041056_create_countries.rb +0 -0
- data/test/{rails_root → rails_test}/db/migrate/20090426041103_create_states.rb +0 -0
- data/test/rails_test/db/migrate/20090530170040_create_themes.rb +11 -0
- data/test/rails_test/db/migrate/20090606153236_create_domain_themes.rb +13 -0
- data/test/rails_test/db/migrate/20100123035450_create_access_codes.rb +19 -0
- data/test/rails_test/db/migrate/20100123233654_create_access_code_requests.rb +14 -0
- data/test/rails_test/features/step_definitions/web_steps.rb +219 -0
- data/test/rails_test/features/support/custom_env.rb +19 -0
- data/test/rails_test/features/support/env.rb +58 -0
- data/test/rails_test/features/support/paths.rb +33 -0
- data/test/rails_test/lib/tasks/cucumber.rake +53 -0
- data/test/{rails_root → rails_test}/public/.htaccess +0 -0
- data/test/{rails_root → rails_test}/public/404.html +0 -0
- data/test/{rails_root → rails_test}/public/422.html +0 -0
- data/test/{rails_root → rails_test}/public/500.html +0 -0
- data/test/{rails_root → rails_test}/public/dispatch.rb +0 -0
- data/test/{rails_root → rails_test}/public/favicon.ico +0 -0
- data/test/{rails_root → rails_test}/public/images/admin/Home.gif +0 -0
- data/test/rails_test/public/images/admin/roles.gif +0 -0
- data/test/{rails_root → rails_test}/public/images/admin/source/Home.png +0 -0
- data/test/rails_test/public/images/admin/source/roles.png +0 -0
- data/test/rails_test/public/images/admin/source/user.png +0 -0
- data/test/rails_test/public/images/admin/user.gif +0 -0
- data/test/{rails_root → rails_test}/public/images/arrow_down.gif +0 -0
- data/test/{rails_root → rails_test}/public/images/arrow_left.gif +0 -0
- data/test/{rails_root → rails_test}/public/images/arrow_right.gif +0 -0
- data/test/{rails_root → rails_test}/public/images/arrow_up.gif +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/blank.gif +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_close.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_closebox.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_left.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_loading.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_nav_left.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_nav_right.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_progress.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_right.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_shadow_e.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_shadow_n.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_shadow_ne.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_shadow_nw.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_shadow_s.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_shadow_se.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_shadow_sw.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_shadow_w.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_title_left.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_title_main.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_title_over.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancy_title_right.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancybox-x.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancybox-y.png +0 -0
- data/test/{rails_root → rails_test}/public/images/fancybox/fancybox.png +0 -0
- data/test/rails_test/public/images/icon_no.gif +0 -0
- data/test/rails_test/public/images/icon_success.gif +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/accept.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/add.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/blue_guy.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/button_background.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/cancel.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/close.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/comment.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/delete.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/exclaim.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/external.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/feed.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/grey_guy.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/hide.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/information.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/minus.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/pending.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/question.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/search_box.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/star.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/stop.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/thumb_down.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/thumb_up.png +0 -0
- data/test/{rails_root → rails_test}/public/images/icons/vote.png +0 -0
- data/test/{rails_root → rails_test}/public/images/loading.gif +0 -0
- data/test/{rails_root → rails_test}/public/images/nothing.png +0 -0
- data/test/{rails_root → rails_test}/public/images/profile_default.jpg +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/amazon.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/ask.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/bibsonomy.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/bing.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/blogger.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/bloglines.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/citeulike.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/clipmarks.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/connotea.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/dailymotion.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/delicious.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/digg.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/diigo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/facebook.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/feed.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/fireeagle.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/flickr.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/fotolog.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/friendfeed.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/friendster.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/furl.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/goodreads.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/google.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/googleblog.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/googlenews.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/icerocket.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/identica.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/joost.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/lastfm.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/librarything.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/linkedin.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/livejournal.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/magnolia.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/mendeley.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/metacafe.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/mixx.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/myspace.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/netflix.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/netvibes.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/newsvine.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/oai.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/odeo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/opml.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/pandora.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/photobucket.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/picasa.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/polyvore.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/pownce.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/reddit.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/simpy.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/smugmug.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/stumbleupon.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/tag.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/technorati.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/tumblr.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/twine.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/twitter.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/vimeo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/webshots.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/wordpress.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/xanga.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/yahoo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/yelp.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/youtube.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/zooomr.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/16/zotero.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/amazon.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/ask.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/bibsonomy.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/bing.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/blogger.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/bloglines.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/citeulike.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/clipmarks.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/connotea.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/dailymotion.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/delicious.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/digg.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/diigo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/facebook.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/feed.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/fireeagle.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/flickr.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/fotolog.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/friendfeed.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/friendster.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/furl.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/goodreads.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/google.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/googleblog.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/googlenews.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/icerocket.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/identica.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/joost.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/lastfm.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/librarything.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/linkedin.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/livejournal.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/magnolia.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/mendeley.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/metacafe.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/mixx.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/myspace.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/netflix.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/netvibes.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/newsvine.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/oai.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/odeo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/opml.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/pandora.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/photobucket.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/picasa.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/polyvore.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/pownce.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/reddit.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/simpy.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/smugmug.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/stumbleupon.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/tag.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/technorati.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/tumblr.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/twine.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/twitter.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/vimeo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/webshots.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/wordpress.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/xanga.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/yahoo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/yelp.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/youtube.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/zooomr.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/24/zotero.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/amazon.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/ask.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/bibsonomy.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/bing.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/blogger.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/bloglines.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/citeulike.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/clipmarks.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/connotea.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/dailymotion.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/delicious.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/digg.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/diigo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/facebook.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/feed.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/fireeagle.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/flickr.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/fotolog.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/friendfeed.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/friendster.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/furl.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/goodreads.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/google.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/googleblog.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/googlenews.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/icerocket.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/identica.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/joost.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/lastfm.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/librarything.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/linkedin.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/livejournal.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/magnolia.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/mendeley.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/metacafe.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/mixx.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/myspace.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/netflix.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/netvibes.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/newsvine.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/oai.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/odeo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/opml.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/pandora.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/photobucket.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/picasa.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/polyvore.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/pownce.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/reddit.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/simpy.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/smugmug.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/stumbleupon.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/tag.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/technorati.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/tumblr.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/twine.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/twitter.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/vimeo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/webshots.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/wordpress.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/xanga.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/yahoo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/yelp.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/youtube.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/zooomr.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/48/zotero.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/amazon.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/ask.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/bibsonomy.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/bing.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/blogger.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/bloglines.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/citeulike.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/clipmarks.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/connotea.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/dailymotion.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/delicious.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/digg.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/diigo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/facebook.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/feed.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/fireeagle.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/flickr.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/fotolog.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/friendfeed.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/friendster.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/furl.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/goodreads.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/google.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/googleblog.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/googlenews.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/icerocket.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/identica.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/joost.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/lastfm.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/librarything.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/linkedin.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/livejournal.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/magnolia.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/mendeley.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/metacafe.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/mixx.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/myspace.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/netflix.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/netvibes.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/newsvine.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/oai.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/odeo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/opml.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/pandora.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/photobucket.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/picasa.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/polyvore.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/pownce.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/reddit.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/simpy.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/smugmug.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/stumbleupon.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/tag.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/technorati.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/tumblr.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/twine.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/twitter.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/vimeo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/webshots.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/wordpress.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/xanga.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/yahoo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/yelp.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/youtube.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/zooomr.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/60/zotero.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/facebook_friend_links.jpg +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/facebook_my_links.jpg +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/Aquaticus_Social_Icon_template_by_jwloh.psd +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/Google.psd +0 -0
- data/test/rails_root/public/images/service_icons/source/Quake 9 Design.webloc b/data/test/rails_test/public/images/service_icons/source/Quake 9 → Design.webloc +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/ReadMe.rtf +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/amazon.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/aquaticus.social.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/ask.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/ask.psd +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/bibsonomy.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/bibsonomy.psd +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/bing.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/bing.psd +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/blogger.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/bloglines.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/bloglines.psd +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/citeulike.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/clipmarks.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/connotea.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/connotea.psd +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/dailymotion.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/delicious.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/digg.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/diigo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/facebook.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/feed.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/fireeagle.psd +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/flickr.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/fotolog.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/friendfeed.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/friendster.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/furl.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/goodreads.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/google.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/googleblog.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/googlenews.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/icerocket.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/icerocket.psd +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/identica.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/joost.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/lastfm.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/librarything.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/linkedin.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/livejournal.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/magnolia.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/mendeley.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/metacafe.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/metacafe.psd +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/mixx.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/myspace.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/netflix.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/netvibes.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/newsvine.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/oai.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/odeo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/opml.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/pandora.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/photobucket.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/picasa.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/polyvore.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/pownce.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/reddit.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/simpy.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/smugmug.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/stumbleupon.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/tag.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/technorati.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/template.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/tumblr.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/twine.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/twine.psd +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/twitter.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/vimeo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/webshots.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/wordpress.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/xanga.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/yahoo.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/yelp.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/youtube.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/zooomr.png +0 -0
- data/test/{rails_root → rails_test}/public/images/service_icons/source/zotero.png +0 -0
- data/test/{rails_root → rails_test}/public/images/spinner.gif +0 -0
- data/test/{rails_root → rails_test}/public/images/sprites.png +0 -0
- data/test/{rails_root → rails_test}/public/javascripts/application.js +0 -0
- data/test/{rails_root → rails_test}/public/javascripts/fancyzoom.min.js +0 -0
- data/test/{rails_root → rails_test}/public/javascripts/jquery/colorpicker.js +0 -0
- data/test/rails_test/public/javascripts/jquery/fg.menu.js +517 -0
- data/test/rails_test/public/javascripts/jquery/jquery-ui-1.8.4.custom.min.js +763 -0
- data/test/rails_test/public/javascripts/jquery/jquery-ui.js +1012 -0
- data/test/rails_test/public/javascripts/jquery/jquery.easing.js +46 -0
- data/test/{rails_root → rails_test}/public/javascripts/jquery/jquery.fancybox.js +0 -0
- data/test/{rails_root → rails_test}/public/javascripts/jquery/jquery.form.js +0 -0
- data/test/{rails_root → rails_test}/public/javascripts/jquery/jquery.jgrowl.js +0 -0
- data/test/{rails_root → rails_test}/public/javascripts/jquery/jquery.js +0 -0
- data/test/{rails_root → rails_test}/public/javascripts/jquery/jquery.metadata.min.js +0 -0
- data/test/{rails_root → rails_test}/public/javascripts/jquery/jquery.mousewheel.js +0 -0
- data/test/{rails_root → rails_test}/public/javascripts/jquery/jquery.queryString.js +0 -0
- data/test/{rails_root → rails_test}/public/javascripts/jquery/jquery.swapimage.js +0 -0
- data/test/{rails_root → rails_test}/public/javascripts/jquery/jquery.swapimage.min.js +0 -0
- data/test/rails_test/public/javascripts/jquery/jquery.timers.js +138 -0
- data/test/{rails_root → rails_test}/public/javascripts/jquery/jquery.tips.js +0 -0
- data/test/{rails_root → rails_test}/public/javascripts/jquery/jrails.js +0 -0
- data/test/{rails_root → rails_test}/public/javascripts/muck-countries.js +0 -0
- data/test/{rails_root → rails_test}/public/javascripts/muck-src.js +0 -0
- data/test/rails_test/public/javascripts/muck-users.js +24 -0
- data/test/{rails_root → rails_test}/public/javascripts/muck.js +1 -3
- data/test/rails_test/public/javascripts/muck_admin.js +13 -0
- data/test/{rails_root → rails_test}/public/javascripts/muck_time/en.js +0 -0
- data/test/{rails_root → rails_test}/public/javascripts/tree.js +0 -0
- data/test/{rails_root → rails_test}/public/robots.txt +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/.keep +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/admin.css +0 -0
- data/test/{rails_root/public/stylesheets/reset.css → rails_test/public/stylesheets/application.css} +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/ie.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/liquid_screen.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/buttons/icons/cross.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/buttons/icons/key.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/buttons/icons/tick.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/buttons/readme.txt +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/buttons/screen.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/fancy-type/readme.txt +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/fancy-type/screen.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/link-icons/icons/doc.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/link-icons/icons/email.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/link-icons/icons/external.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/link-icons/icons/feed.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/link-icons/icons/im.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/link-icons/icons/pdf.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/link-icons/icons/visited.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/link-icons/icons/xls.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/link-icons/readme.txt +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/link-icons/screen.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/liquid/liquid.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/liquid/src/liquid.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/rtl/readme.txt +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/plugins/rtl/screen.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/print.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/screen.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/sprite.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/src/forms.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/src/grid.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/src/grid.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/src/ie.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/src/print.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/src/reset.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/blueprint/src/typography.css +0 -0
- data/test/rails_test/public/stylesheets/fgmenu/fg.menu.css +114 -0
- data/test/{rails_root/public/stylesheets/jquery/redmond → rails_test/public/stylesheets/flick}/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/test/rails_test/public/stylesheets/flick/images/ui-bg_flat_0_eeeeee_40x100.png +0 -0
- data/test/{rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_flat_75_ffffff_40x100.png → rails_test/public/stylesheets/flick/images/ui-bg_flat_55_ffffff_40x100.png} +0 -0
- data/test/rails_test/public/stylesheets/flick/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/test/{rails_root/public/stylesheets/jquery/smoothness → rails_test/public/stylesheets/flick}/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/test/rails_test/public/stylesheets/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
- data/test/rails_test/public/stylesheets/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
- data/test/rails_test/public/stylesheets/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
- data/test/rails_test/public/stylesheets/flick/images/ui-icons_0073ea_256x240.png +0 -0
- data/test/rails_test/public/stylesheets/flick/images/ui-icons_454545_256x240.png +0 -0
- data/test/rails_test/public/stylesheets/flick/images/ui-icons_666666_256x240.png +0 -0
- data/test/rails_test/public/stylesheets/flick/images/ui-icons_ff0084_256x240.png +0 -0
- data/test/rails_test/public/stylesheets/flick/images/ui-icons_ffffff_256x240.png +0 -0
- data/test/rails_test/public/stylesheets/flick/jquery-ui-1.8.1.custom.css +486 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/images/ui-bg_diagonals-thick_15_444444_40x40.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/images/ui-bg_glass_100_f0f0f0_1x400.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/images/ui-bg_glass_50_99c2ff_1x400.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/images/ui-bg_glass_55_fbf5d0_1x400.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/images/ui-bg_glass_80_e6e6e6_1x400.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/images/ui-bg_highlight-soft_100_e7eef3_1x100.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/images/ui-icons_222222_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/images/ui-icons_2694e8_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/images/ui-icons_2e83ff_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/images/ui-icons_72a7cf_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/images/ui-icons_888888_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/images/ui-icons_ffffff_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/jquery-ui-1.7.1.custom.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/cupertino/jquery-ui-1.7.2.custom.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/jquery.autocomplete.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/jquery.fancybox.css +0 -0
- data/test/{rails_root/public/stylesheets/jquery/smoothness → rails_test/public/stylesheets/jquery/redmond}/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/redmond/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/redmond/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/redmond/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/redmond/images/ui-icons_217bc0_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/redmond/images/ui-icons_2e83ff_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/redmond/images/ui-icons_469bdd_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/redmond/images/ui-icons_6da8d5_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/redmond/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/redmond/images/ui-icons_d8e7f3_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/redmond/images/ui-icons_f9bd01_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/redmond/jquery-ui-1.7.1.custom.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/redmond/jquery-ui-1.7.2.custom.css +0 -0
- data/test/rails_test/public/stylesheets/jquery/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/test/rails_test/public/stylesheets/jquery/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/test/{rails_root/public/stylesheets/jquery/ui-lightness → rails_test/public/stylesheets/jquery/smoothness}/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/smoothness/jquery-ui-1.7.1.custom.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/smoothness/jquery-ui-1.7.2.custom.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/test/rails_test/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/test/rails_test/public/stylesheets/jquery/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
- data/test/rails_test/public/stylesheets/jquery/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
- data/test/rails_test/public/stylesheets/jquery/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
- data/test/rails_test/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
- data/test/rails_test/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/ui-lightness/jquery-ui-1.7.1.custom.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/jquery/ui-lightness/jquery-ui-1.7.2.custom.css +0 -0
- data/test/rails_test/public/stylesheets/jquery/ui-lightness/jquery-ui-1.8.4.custom.css +572 -0
- data/test/{rails_root/test/functional/.keep → rails_test/public/stylesheets/reset.css} +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/styles.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/themes/blue/styles.css +0 -0
- data/test/{rails_root → rails_test}/public/stylesheets/themes/red/styles.css +0 -0
- data/test/rails_test/script/cucumber +10 -0
- data/test/rails_test/script/rails +6 -0
- data/test/rails_test/spec/controllers/admin/default_controller_spec.rb +39 -0
- data/test/rails_test/spec/controllers/default_controller_spec.rb +189 -0
- data/test/rails_test/spec/controllers/helper_controller_spec.rb +29 -0
- data/test/rails_test/spec/helpers/muck_admin_helper_spec.rb +19 -0
- data/test/rails_test/spec/helpers/muck_engine_helper_spec.rb +145 -0
- data/test/rails_test/spec/mailers/basic_mailer_spec.rb +24 -0
- data/test/rails_test/spec/models/country_spec.rb +84 -0
- data/test/rails_test/spec/models/language_spec.rb +29 -0
- data/test/rails_test/spec/models/state_spec.rb +12 -0
- data/test/rails_test/spec/spec_helper.rb +5 -0
- data/test/rails_test/test/fixtures/rails.png +0 -0
- metadata +963 -753
- data/app/helpers/muck_custom_form_builder.rb +0 -237
- data/app/models/basic_mailer.rb +0 -15
- data/app/views/layouts/email_default.text.plain.erb +0 -13
- data/config/muck_engine_routes.rb +0 -8
- data/install.rb +0 -1
- data/lib/action_mailer/muck_mailer.rb +0 -34
- data/lib/active_record/acts/muck_language.rb +0 -50
- data/lib/active_record/acts/muck_state.rb +0 -30
- data/lib/active_record/muck_model.rb +0 -34
- data/lib/muck_engine.rb +0 -71
- data/lib/muck_engine/initialize_routes.rb +0 -8
- data/lib/muck_engine/tasks.rb +0 -489
- data/rails/init.rb +0 -19
- data/tasks/rails.rake +0 -2
- data/test/rails_root/Gemfile +0 -30
- data/test/rails_root/app/controllers/application_controller.rb +0 -21
- data/test/rails_root/config/amazon_s3.yml +0 -14
- data/test/rails_root/config/boot.rb +0 -123
- data/test/rails_root/config/environment.rb +0 -22
- data/test/rails_root/config/environments/development.rb +0 -19
- data/test/rails_root/config/environments/production.rb +0 -1
- data/test/rails_root/config/environments/test.rb +0 -24
- data/test/rails_root/config/global_config.yml +0 -18
- data/test/rails_root/config/initializers/requires.rb +0 -13
- data/test/rails_root/config/initializers/session_store.rb +0 -8
- data/test/rails_root/config/preinitializer.rb +0 -20
- data/test/rails_root/config/routes.rb +0 -9
- data/test/rails_root/features/step_definitions/webrat_steps.rb +0 -99
- data/test/rails_root/features/support/env.rb +0 -14
- data/test/rails_root/lib/tasks/muck.rake +0 -7
- data/test/rails_root/public/images/blue/preview.gif +0 -0
- data/test/rails_root/public/images/rails.png +0 -0
- data/test/rails_root/public/images/red/preview.gif +0 -0
- data/test/rails_root/public/javascripts/builder.js +0 -136
- data/test/rails_root/public/javascripts/controls.js +0 -963
- data/test/rails_root/public/javascripts/dragdrop.js +0 -972
- data/test/rails_root/public/javascripts/effects.js +0 -1120
- data/test/rails_root/public/javascripts/jquery/jquery-ui.js +0 -273
- data/test/rails_root/public/javascripts/jquery/jquery.autocomplete.js.readme +0 -6
- data/test/rails_root/public/javascripts/jquery/jquery.autocomplete.min.js +0 -15
- data/test/rails_root/public/javascripts/jquery/jquery.autocomplete.pack.js +0 -767
- data/test/rails_root/public/javascripts/jquery/jquery.easing.js +0 -72
- data/test/rails_root/public/javascripts/muck_activities.js +0 -100
- data/test/rails_root/public/javascripts/prototype.js +0 -4225
- data/test/rails_root/public/javascripts/scriptaculous.js +0 -58
- data/test/rails_root/public/javascripts/slider.js +0 -277
- data/test/rails_root/public/javascripts/sound.js +0 -60
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
- data/test/rails_root/script/about +0 -3
- data/test/rails_root/script/breakpointer +0 -3
- data/test/rails_root/script/console +0 -3
- data/test/rails_root/script/create_project.rb +0 -52
- data/test/rails_root/script/cucumber +0 -7
- data/test/rails_root/script/dbconsole +0 -3
- data/test/rails_root/script/destroy +0 -3
- data/test/rails_root/script/generate +0 -3
- data/test/rails_root/script/performance/benchmarker +0 -3
- data/test/rails_root/script/performance/profiler +0 -3
- data/test/rails_root/script/performance/request +0 -3
- data/test/rails_root/script/plugin +0 -3
- data/test/rails_root/script/process/inspector +0 -3
- data/test/rails_root/script/process/reaper +0 -3
- data/test/rails_root/script/process/spawner +0 -3
- data/test/rails_root/script/runner +0 -3
- data/test/rails_root/script/server +0 -3
- data/test/rails_root/test/functional/admin/default_controller_test.rb +0 -35
- data/test/rails_root/test/functional/default_controller_test.rb +0 -15
- data/test/rails_root/test/functional/helper_controller_test.rb +0 -20
- data/test/rails_root/test/integration/.keep +0 -0
- data/test/rails_root/test/mocks/development/.keep +0 -0
- data/test/rails_root/test/mocks/test/.keep +0 -0
- data/test/rails_root/test/test_helper.rb +0 -28
- data/test/rails_root/test/unit/.keep +0 -0
- data/test/rails_root/test/unit/basic_mailer_test.rb +0 -30
- data/test/rails_root/test/unit/country_test.rb +0 -86
- data/test/rails_root/test/unit/language_test.rb +0 -33
- data/test/rails_root/test/unit/muck_engine_helper_test.rb +0 -113
- data/test/rails_root/test/unit/state_test.rb +0 -18
- data/test/rails_root/vendor/plugins/ssl_requirement/README +0 -43
- data/test/rails_root/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb +0 -62
- data/test/rails_root/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb +0 -132
- data/test/rails_test/db/schema.rb +0 -123
- data/uninstall.rb +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
module MuckEngine
|
|
2
2
|
module FlashErrors
|
|
3
3
|
|
|
4
4
|
# Output only flash errors
|
|
@@ -53,8 +53,7 @@ class MuckEngine
|
|
|
53
53
|
# decode_html: Occasionally the html sent to the client is encoded and the result is visible html. Set this value to true if this happens.
|
|
54
54
|
# growl: Can be used to make this a growl message even if growl_enabled is false. Note that if growl_enabled is enabled setting this
|
|
55
55
|
# value will have no effect.
|
|
56
|
-
def output_errors_ajax(dom_id, title = '', options = { :class => 'notify-box' }, fields = nil, flash_only = false, decode_html = false, growl =
|
|
57
|
-
growl ||= GlobalConfig.growl_enabled
|
|
56
|
+
def output_errors_ajax(dom_id, title = '', options = { :class => 'notify-box' }, fields = nil, flash_only = false, decode_html = false, growl = MuckEngine.configuration.growl_enabled)
|
|
58
57
|
render :partial => 'shared/output_ajax_messages', :locals => {:fields => fields,
|
|
59
58
|
:title => title,
|
|
60
59
|
:options => options,
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
require 'validation_reflection'
|
|
2
|
+
|
|
3
|
+
module MuckEngine
|
|
4
|
+
class FormBuilder < ActionView::Helpers::FormBuilder
|
|
5
|
+
|
|
6
|
+
helpers = field_helpers +
|
|
7
|
+
%w(date_select datetime_select time_select collection_select) +
|
|
8
|
+
%w(select country_select time_zone_select) -
|
|
9
|
+
%w(hidden_field label fields_for)
|
|
10
|
+
|
|
11
|
+
helpers.each do |name|
|
|
12
|
+
define_method name do |field, *args|
|
|
13
|
+
options = args.detect {|argument| argument.is_a?(Hash)} || {}
|
|
14
|
+
|
|
15
|
+
render_field_template(name, field, options) do
|
|
16
|
+
super
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Options to pass to render_field_template through the 'options' argument.
|
|
22
|
+
# pre_html html content to insert at the beginning of the container
|
|
23
|
+
# extra_html html content to insert at the end of the container
|
|
24
|
+
# tip Text for a popup text tip.
|
|
25
|
+
# tip_title Title for popup text tip
|
|
26
|
+
# tip_key The id of the div that contains the tip text.
|
|
27
|
+
# tip_position Position for tip text. Valid values are 'top', 'right', 'bottom', 'left'. Default is 'right'
|
|
28
|
+
# wrapper_id Alternate id for the container. Each field is typically wrapper in a div. This is the id of that div.
|
|
29
|
+
# wrapper_class Css class for the container. All containers have the class form-row. This value will be in addition to that class.
|
|
30
|
+
# label_class Css class for the label
|
|
31
|
+
# hide_label Prevents a label from being output
|
|
32
|
+
# hide_required Do not show 'required' label even though field is required
|
|
33
|
+
# hide_control_error Hide errors that show up next to the field
|
|
34
|
+
# required_text_mark By default '(required)' is used to show required fields. Override this by setting required_text_mark to something else - ie '*'
|
|
35
|
+
# Alternatively override 'muck.engine.required_text_mark' in your app's en.yml or the appropriate localization file. You can also
|
|
36
|
+
# specify a value in global_config.yml with required_text_mark: *
|
|
37
|
+
def render_field_template(name, field, options)
|
|
38
|
+
|
|
39
|
+
tippable = !options[:tip].nil?
|
|
40
|
+
|
|
41
|
+
# used by country, state and other selects to specify a different id
|
|
42
|
+
field_id = options[:field_id]
|
|
43
|
+
|
|
44
|
+
local_options = {
|
|
45
|
+
:pre_html => options.delete(:pre_html),
|
|
46
|
+
:after_label_html => options.delete(:after_label_html),
|
|
47
|
+
:extra_html => options.delete(:extra_html),
|
|
48
|
+
:tip => options.delete(:tip),
|
|
49
|
+
:tip_title => options.delete(:tip_title),
|
|
50
|
+
:tip_key => options.delete(:tip_key),
|
|
51
|
+
:tip_position => options.delete(:tip_position) || 'right',
|
|
52
|
+
:wrapper_id => options.delete(:wrapper_id),
|
|
53
|
+
:wrapper_class => options.delete(:wrapper_class),
|
|
54
|
+
:hide_required => options.delete(:hide_required),
|
|
55
|
+
:hide_control_error => options.delete(:hide_control_error),
|
|
56
|
+
:css_class => options.delete(:css_class)
|
|
57
|
+
}
|
|
58
|
+
# TODO css_class does not appear to be used. Can just use the standard :class in html options to set the class
|
|
59
|
+
|
|
60
|
+
is_checkbox = false
|
|
61
|
+
is_checkbox = true if %w(check_box).include?(name)
|
|
62
|
+
|
|
63
|
+
required_text_mark = options.delete(:required_text_mark)
|
|
64
|
+
|
|
65
|
+
type = options.delete(:type)
|
|
66
|
+
type ||= :tippable if tippable
|
|
67
|
+
|
|
68
|
+
label_class = ''
|
|
69
|
+
label_class << "checkbox-label" if is_checkbox
|
|
70
|
+
label_class << " #{options.delete(:label_class)}" if !options[:label_class].nil?
|
|
71
|
+
if label_class.blank?
|
|
72
|
+
label_options = {}
|
|
73
|
+
else
|
|
74
|
+
label_options = { :class => label_class }
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
if local_options[:hide_required]
|
|
78
|
+
required = false
|
|
79
|
+
label_text = options[:label]
|
|
80
|
+
else
|
|
81
|
+
required = required_field?(field)
|
|
82
|
+
label_text = (options[:label] || field.to_s.camelize)
|
|
83
|
+
label_text = label_text + required_mark(field, required_text_mark) if required
|
|
84
|
+
end
|
|
85
|
+
label_name = options.delete(:label)
|
|
86
|
+
|
|
87
|
+
options[:class] ||= ''
|
|
88
|
+
options[:class] << add_space_to_css(options) + 'tip-field' if tippable
|
|
89
|
+
options[:class] << add_space_to_css(options) + "required-value" if required
|
|
90
|
+
|
|
91
|
+
if type == :choose_menu
|
|
92
|
+
options[:label_class] = 'desc'
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
if options.delete(:hide_label)
|
|
96
|
+
label_element = ''
|
|
97
|
+
else
|
|
98
|
+
label_element = label(field, label_text.html_safe, label_options)
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
locals = {
|
|
102
|
+
:field_element => yield,
|
|
103
|
+
:field_name => field_id || field_name(field),
|
|
104
|
+
:label_name => options.delete(:required_label) || label_name || '',
|
|
105
|
+
:label_element => label_element,
|
|
106
|
+
:is_checkbox => is_checkbox,
|
|
107
|
+
:required => required
|
|
108
|
+
}.merge(local_options)
|
|
109
|
+
|
|
110
|
+
if object.nil?
|
|
111
|
+
locals[:value] = ''
|
|
112
|
+
locals[:id] = ''
|
|
113
|
+
else
|
|
114
|
+
locals[:value] = object.send(field)
|
|
115
|
+
locals[:id] = object.id
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
if has_errors_on?(field)
|
|
119
|
+
locals.merge!(:error => error_message(field, options))
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
@template.capture do
|
|
123
|
+
|
|
124
|
+
if type == :tippable
|
|
125
|
+
@template.render :partial => 'forms/field_with_tips', :locals => locals
|
|
126
|
+
elsif type == :choose_menu
|
|
127
|
+
@template.render :partial => 'forms/menu_field', :locals => locals
|
|
128
|
+
elsif type == :color_picker
|
|
129
|
+
@template.render :partial => 'forms/color_picker_field', :locals => locals
|
|
130
|
+
elsif type == :default
|
|
131
|
+
@template.render :partial => 'forms/default', :locals => locals
|
|
132
|
+
else
|
|
133
|
+
@template.render :partial => 'forms/field', :locals => locals
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
# Call '<%= country_scripts %>' to render javascript that will change the state control based on the current country
|
|
139
|
+
# creates a select control with us states. Default id is 'us_states'. If 'retain' is passed for the class value the value of this
|
|
140
|
+
# control will be written into a cookie with the key 'us_states'.
|
|
141
|
+
def us_state_select(method, options = {}, html_options = {}, additional_state = nil)
|
|
142
|
+
@@country_id ||= Country.find_by_abbreviation('US')
|
|
143
|
+
@states = (additional_state ? [additional_state] : []) + State.find(:all, :conditions => ["country_id = ?", @@country_id], :order => "name asc")
|
|
144
|
+
self.menu_select(method, I18n.t('muck.engine.choose_state'), @states, options.merge(:prompt => I18n.t('muck.engine.select_state_prompt'), :wrapper_id => 'us-states-container'), html_options.merge(:id => 'us-states'))
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# creates a select control with states. Default id is 'states'. If 'retain' is passed for the class value the value of this
|
|
148
|
+
# control will be written into a cookie with the key 'states'.
|
|
149
|
+
def state_select(method, options = {}, html_options = {}, additional_state = nil)
|
|
150
|
+
country_id_field_name = options.delete(:country_id) || 'country_id'
|
|
151
|
+
country_id = get_instance_object_value(country_id_field_name)
|
|
152
|
+
@states = country_id.nil? ? [] : (additional_state ? [additional_state] : []) + State.find(:all, :conditions => ["country_id = ?", country_id], :order => "name asc")
|
|
153
|
+
self.menu_select(method, I18n.t('muck.engine.choose_state'), @states, options.merge(:prompt => I18n.t('muck.engine.select_state_prompt'), :wrapper_id => 'states-container'), html_options.merge(:id => 'states'))
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
# creates a select control with countries. Default id is 'countries'. If 'retain' is passed for the class value the value of this
|
|
157
|
+
# control will be written into a cookie with the key 'countries'.
|
|
158
|
+
def country_select(method, options = {}, html_options = {}, additional_country = nil)
|
|
159
|
+
@countries ||= (additional_country ? [additional_country] : []) + Country.find(:all, :order => 'sort, name asc')
|
|
160
|
+
self.menu_select(method, I18n.t('muck.engine.choose_country'), @countries, options.merge(:prompt => I18n.t('muck.engine.select_country_prompt'), :wrapper_id => 'countries-container'), html_options.merge(:id => 'countries'))
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
# creates a select control with languages. Default id is 'languages'. If 'retain' is passed for the class value the value of this
|
|
164
|
+
# control will be written into a cookie with the key 'languages'.
|
|
165
|
+
def language_select(method, options = {}, html_options = {}, additional_language = nil)
|
|
166
|
+
@languages ||= (additional_language ? [additional_language] : []) + Language.find(:all, :order => 'name asc')
|
|
167
|
+
self.menu_select(method, I18n.t('muck.engine.choose_language'), @languages, options.merge(:prompt => I18n.t('muck.engine.select_language_prompt'), :wrapper_id => 'languages-container'), html_options.merge(:id => 'languages'))
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
def get_instance_object_value(field_name)
|
|
171
|
+
obj = object || @template.instance_variable_get("@#{@object_name}")
|
|
172
|
+
obj.send(field_name) rescue nil
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
def menu_select(method, label, collection, options = {}, html_options = {})
|
|
176
|
+
muck_select(method, :id, :name, label, collection, options, html_options)
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
def muck_select(method, value_method, name_method, label, collection, options = {}, html_options = {})
|
|
180
|
+
|
|
181
|
+
# this code will look for a cookie that matches the control and set the value to the cookie value
|
|
182
|
+
# if html_options.has_key?(:class)
|
|
183
|
+
# if html_options[:class].include?('retain')
|
|
184
|
+
# id = html_options[:id]
|
|
185
|
+
# @object.send("#{method}=", @template.cookies[id]) if @template.cookies.has_key? id
|
|
186
|
+
# end
|
|
187
|
+
# end
|
|
188
|
+
if !options[:tip].nil?
|
|
189
|
+
html_options[:class] ||= ''
|
|
190
|
+
html_options[:class] << add_space_to_css(html_options) + 'tip-field'
|
|
191
|
+
end
|
|
192
|
+
self.collection_select(method, collection, value_method, name_method, options.merge(:object => @object, :label => label, :type => :choose_menu, :label_class => 'desc', :field_id => html_options[:id]), html_options)
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
private
|
|
196
|
+
|
|
197
|
+
def add_space_to_css(options)
|
|
198
|
+
options[:class].empty? ? '' : ' '
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
def error_message(field, options)
|
|
202
|
+
if has_errors_on?(field)
|
|
203
|
+
errors = object.errors[field]
|
|
204
|
+
errors.is_a?(Array) ? errors.to_sentence : errors
|
|
205
|
+
else
|
|
206
|
+
''
|
|
207
|
+
end
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
def has_errors_on?(field)
|
|
211
|
+
!(object.nil? || object.errors[field].blank?)
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
def field_name(field)
|
|
215
|
+
# TODO figure out if there is a built in method that does this.
|
|
216
|
+
"#{@object_name.to_s}_#{field.to_s}"
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
def required_mark(field, required_text_mark = nil)
|
|
220
|
+
required_text_mark ||= MuckEngine.configuration.required_text_mark || I18n.translate('muck.engine.required_text_mark')
|
|
221
|
+
required_field?(field) ? " <em id=\"#{field_name(field)}-label-required\">#{required_text_mark}</em>" : ''
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
def required_field?(field)
|
|
225
|
+
reflect_on = object.class if !object.blank?
|
|
226
|
+
if reflect_on.blank?
|
|
227
|
+
reflect_on = @object_name.to_s.camelize.constantize rescue nil
|
|
228
|
+
end
|
|
229
|
+
if !reflect_on.blank?
|
|
230
|
+
reflect_on.reflect_on_validations_for(field).map(&:macro).include?(:validates_presence_of)
|
|
231
|
+
else
|
|
232
|
+
false
|
|
233
|
+
end
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
def load_states
|
|
237
|
+
@states = State.find(:all, :order => "name" ).map {|u| [u.name, u.id] }
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
end
|
|
241
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module MuckEngine
|
|
2
|
+
class JsonParser
|
|
3
|
+
|
|
4
|
+
# The various json parsers can choke on various json so try them all
|
|
5
|
+
def self.json_parse(data)
|
|
6
|
+
try_crack(data) || try_json(data) || try_active_json(data)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def self.try_crack(data)
|
|
10
|
+
Crack::JSON.parse(data)
|
|
11
|
+
rescue => ex
|
|
12
|
+
#puts ex
|
|
13
|
+
nil
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def self.try_json(data)
|
|
17
|
+
JSON.parse(data)
|
|
18
|
+
rescue => ex
|
|
19
|
+
#puts ex
|
|
20
|
+
nil
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.try_active_json(data)
|
|
24
|
+
ActiveSupport::JSON.decode(data)
|
|
25
|
+
rescue => ex
|
|
26
|
+
#puts ex
|
|
27
|
+
nil
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module MuckEngine
|
|
2
|
+
module Mailers
|
|
3
|
+
module General
|
|
4
|
+
|
|
5
|
+
extend ActiveSupport::Concern
|
|
6
|
+
|
|
7
|
+
included do
|
|
8
|
+
layout 'email_default'
|
|
9
|
+
default_url_options[:host] = MuckEngine.configuration.application_url
|
|
10
|
+
default :from => default_from_email
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
module ClassMethods
|
|
14
|
+
def default_from_email
|
|
15
|
+
"#{MuckEngine.configuration.from_email_name} <#{MuckEngine.configuration.from_email}>"
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -1,30 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
has_many :states
|
|
11
|
-
named_scope :by_name, :order => "name ASC"
|
|
12
|
-
|
|
13
|
-
include ActiveRecord::Acts::MuckCountry::InstanceMethods
|
|
14
|
-
extend ActiveRecord::Acts::MuckCountry::SingletonMethods
|
|
15
|
-
|
|
16
|
-
end
|
|
1
|
+
#include MuckEngine::Models::MuckCountry
|
|
2
|
+
module MuckEngine
|
|
3
|
+
module Models
|
|
4
|
+
module MuckCountry
|
|
5
|
+
extend ActiveSupport::Concern
|
|
6
|
+
|
|
7
|
+
included do
|
|
8
|
+
has_many :states
|
|
9
|
+
scope :by_name, order("name ASC")
|
|
17
10
|
end
|
|
18
11
|
|
|
19
|
-
|
|
20
|
-
module SingletonMethods
|
|
12
|
+
module ClassMethods
|
|
21
13
|
def us
|
|
22
14
|
self.find_by_abbreviation('US')
|
|
23
15
|
end
|
|
24
16
|
|
|
25
17
|
def uk_country?(country, refresh_ids = false)
|
|
26
18
|
if refresh_ids || !defined?(@@uk_country_ids)
|
|
27
|
-
uk_countries =
|
|
19
|
+
uk_countries = self.find(:all, :conditions => ["abbreviation in (?)", ['ENG', 'IE', 'WAL', 'SCT']])
|
|
28
20
|
@@uk_country_ids = uk_countries.map(&:id)
|
|
29
21
|
end
|
|
30
22
|
@@uk_country_ids.include?(get_country_id(country))
|
|
@@ -32,20 +24,20 @@ module ActiveRecord
|
|
|
32
24
|
|
|
33
25
|
def canada?(country, refresh_ids = false)
|
|
34
26
|
@@canada_id = nil if refresh_ids
|
|
35
|
-
@@canada_id ||=
|
|
27
|
+
@@canada_id ||= self.find_by_abbreviation('CA').id
|
|
36
28
|
@@canada_id == get_country_id(country)
|
|
37
29
|
end
|
|
38
30
|
|
|
39
31
|
# Note that the strings from here are also hard coded into application.js
|
|
40
|
-
def build_state_prompts(country_id, any = false)
|
|
41
|
-
if uk_country?(country_id)
|
|
32
|
+
def build_state_prompts(country_id, any = false, refresh_ids = false)
|
|
33
|
+
if uk_country?(country_id, refresh_ids)
|
|
42
34
|
label = 'Choose County'
|
|
43
35
|
if any
|
|
44
36
|
prompt = 'Any County (or unknown)'
|
|
45
37
|
else
|
|
46
38
|
prompt = 'Please select a county'
|
|
47
39
|
end
|
|
48
|
-
elsif canada?(country_id)
|
|
40
|
+
elsif canada?(country_id, refresh_ids)
|
|
49
41
|
label = 'Choose Province'
|
|
50
42
|
if any
|
|
51
43
|
prompt = 'Any Province (or unknown)'
|
|
@@ -66,7 +58,7 @@ module ActiveRecord
|
|
|
66
58
|
private
|
|
67
59
|
|
|
68
60
|
def get_country_id(country)
|
|
69
|
-
if country.is_a?(
|
|
61
|
+
if country.is_a?(self)
|
|
70
62
|
country.id
|
|
71
63
|
else
|
|
72
64
|
country.to_i
|
|
@@ -75,10 +67,6 @@ module ActiveRecord
|
|
|
75
67
|
|
|
76
68
|
end
|
|
77
69
|
|
|
78
|
-
# All the methods available to a record that has had <tt>acts_as_muck_invite</tt> specified.
|
|
79
|
-
module InstanceMethods
|
|
80
|
-
end
|
|
81
|
-
|
|
82
70
|
end
|
|
83
71
|
end
|
|
84
72
|
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module MuckEngine
|
|
2
|
+
module General
|
|
3
|
+
|
|
4
|
+
extend ActiveSupport::Concern
|
|
5
|
+
|
|
6
|
+
def dom_id(prefix='')
|
|
7
|
+
display_id = new_record? ? "new" : id.to_s
|
|
8
|
+
prefix.to_s <<( '_') unless prefix.blank?
|
|
9
|
+
prefix.to_s << "#{self.class.name.underscore}"
|
|
10
|
+
prefix != :bare ? "#{prefix.to_s.underscore}_#{display_id}" : display_id
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def errors_to_s
|
|
14
|
+
errors.map do |e, m|
|
|
15
|
+
"#{e.humanize unless e == "base"} #{m}\n"
|
|
16
|
+
end.to_s.chomp
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# include MuckEngine::Models::MuckLanguage
|
|
2
|
+
module MuckEngine
|
|
3
|
+
module Models
|
|
4
|
+
module MuckLanguage
|
|
5
|
+
extend ActiveSupport::Concern
|
|
6
|
+
|
|
7
|
+
module ClassMethods
|
|
8
|
+
def locale_id(refresh_ids = false)
|
|
9
|
+
cache_locale_ids(refresh_ids)
|
|
10
|
+
@@locale_ids[I18n.locale]
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def supported_locale?(locale, refresh_ids = false)
|
|
14
|
+
cache_locale_ids(refresh_ids)
|
|
15
|
+
@@locale_ids[locale.to_sym] != nil
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
def cache_locale_ids(refresh_ids = false)
|
|
21
|
+
if refresh_ids || !defined?(@@locale_ids)
|
|
22
|
+
languages = self.find(:all, :select => 'id, locale', :conditions => ['languages.supported = ?', true])
|
|
23
|
+
@@locale_ids = Hash[*languages.collect {|v|[v.locale[0..1].to_sym, v.id]}.flatten]
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|