Ubiquo 0.7.3 released

If you are following the stable branch you should update to the latest version:

This version features Rails 2.3.8 support and includes the recently released ubiquo_design. We are currenly working in the new version of this plugin, which we expect to release on September. The first reviews of people trying it have been very positive so stay tuned. But meanwhile, now you can use the stable version.

  • Ubiquo Design plugin integration and some fixes (#349, #347, #345, #336, #338, #331)
  • Added compatibility with Rails 2.3.8 (#311)
  • Ubiquo scaffold guide fixes (#339)
  • Changed ubiquo session management to play nice with other sessions of your same app (#315)
  • Autodetect cookie support to avoid an InvalidAuthenticityToken when disabled (#301)
  • Updated version of TinyMCE (#296) to fix some browser-dependent issues.
  • Updated also the paperclip external plugin, maintaining the jruby support.
  • Fixed some problems with generated ubiquo_scaffold (#314, #313, #332)

This will probably be the latest 0.7.x release ince all our efforts are now in the 0.8 new features.

Filed under  //   0.7.x   releases   stable  

Ubiquo day V

The hottest ubiquo day of the year has had two main areas of work. The changes that this week we have been doing to the Ubiquo documentation have been completed, and now you can enjoy the following resources:

Ubiquo guides - stable version / edge

Ubiquo rdoc - stable / edge

This documentation includes the recently released ubiquo_design. We are working hard on the new 0.8 version, and today we have done another step towards the final release. Meanwhile, you can already download and use the 0.7 version.

We've also been working in other areas, such as design improvements, the crop&resize feature

See you in the next ubiquo day, on September 4th

Filed under  //   ubiquo_day  

Sharing relations between translations: the easy way

One of the tickets about i18n recently closed was #316. This ticket added a new method to define which associations are shared between the translations of a given instance.

An example of a shared translation behaviour can be viewed here:

This is extracted from last week's post about i18n. Before these changes, the way to define this kind of special association was to use the :translation_shared key:

This is ok in some cases (although maybe the option name is not clear enough), but what happens when you have a lot of associations that behave this way?

Not nice, repetitive and what's worse, even confusing sometimes, if you have these mixed with some others that are not :translation_shared.

The new method fixes this by allowing to define in a single call all these associations:

Pretty better IMHO. Allows you to define in a single line all the associations that have this special behaviour, so you can have a better tracking of what's going on in the model. And you can leave the Rails association declarations as usual.

The old :translation_shared option has not been deprecated, and continues to be a valid option sometimes (e.g. in simple models). But generally I find myself using the new method, as it also allows more extensibility -you don't need to call it at the same place where you are declaring the association, so it can be placed in an external library that extends your model. 

Last but not least, this new method also works seamlessly with media_attachments:

 

filtered_search refactoring

In ubiquo, the default method for searching and filtering data in the model is filtered_search. The old implementation, while flexible enough, was a bit verbose and not very pretty to look at. For example:

 

With this refactoring it is now much more concise but also more "magical". Let's see an example:

 

To sumarize:

  • the filtered_search method takes the params hash and matches filter_foo like params to named_scopes foo.
  • It also takes into account some other params like sort_order and order_by.
  • It also supports case and accent insensitive text search.

Check ubiquo_core guide for more information.

New on edge: simplifying i18n

ubiquo_i18n is one of the most used plugins since its inception. This is because the requirement of having a site with contents in more than one language, sharing the contents or not, is pretty common. Given that it is used, is a plugin that has generated a lot of feedback. This week I have pushed a branch that addresses some of the detected annoying points for people.

In the next days I'll highlight some of the most useful new features. Maybe the most important change is for shared associations between translations. Until now they were automatically created in order to ensure that if a model has the locale "en", all the related instances are also in "en". This guaranteed the data consistency in the DB, and also simplified the retrieval process, at the price of complicating the write and update processes. Since reading is usually what one wants to be fast, it looked like a good tradeoff.

But in fact not all this magic was welcome, and the fact that instances are automatically created, and that relations had to be locale-consistent, needed to be taken into account while developing. This has changed.

Now ubiquo_i18n will not create instances by itself. Instead, will rely in Rails associations methods and retrieve the correct relations by locale. The interface for this feature has not changed so there are no changes required in your code because of this. The change you can do to your existing app is to remove the code that manages this kind of situations.

In short, you don't have to worry anymore about in which locale is every instance, ubiquo_i18n will manage this for you. This was what happened before

Note that before, you needed to assign "reader" to "en", and the "ca" reader was automatically created. Now this works as expected:

Hope you like it! It's already on edge, and all the Ubiquo plugins are already profiting this.

 

Ubiquo day IV

Today, in the fourth Ubiquo day, we have reviewed the current topics in Ubiquo. After releasing ubiquo_categories, our next immediate goal is ubiquo_design, and we have discussed the proposed enhancements for this plugin.

There were some things to explain and discuss about, like how static pages will work, routes, menus, metatags...

We also had some time to explain the changes that we have been experimenting to simplify the filters in models and controllers. We hope to announce soon that these changes are already available.

Then we started programming and designing the things that are in course right now, such as the new logo, fixing the cookies detection, changes for ubiquo_i18n, crop functionality in ubiquo_media and the changes of ubiquo_design itself. This is not a one-day work so the results will be seen when they are finished.

See you in the next ubiquo day, which will be on July 17th.

                                   
Click here to download:
ubiquo-day-iv-eesIzEzjgdjeCHGJjwgw.zip (26771 KB)

Filed under  //   ubiquo_day  

Ubiquo Categories is out!

Hi people!

We're glad to announce the release of our new plugin ubiquo_categories. A little guide reference:

The ubiquo_categories plugin provides a simple mechanism for organize and categorize the content of your website, adding a generic category system for your models and forms.

What this means? A code example:

In your model:



  categorized_with :colors


In your form:



  <%= form.category_selector :colors %>


And you'll get something like this

or if you prefer the "Facebook style"

We've released this with ubiquo_i18n support, a full guide and a complete tests suite.

We have started using it on real projects and the first developer impressions are being very exciting!

A list of releated features:

  • Define generic category sets or complete free sets to categorize your models.
  • Use these categories with only two lines of code, one for the model and other for the views
  • Available smart form selector  with auto_complete and other useful options
  • Provide a built-in filter to search categorized records

This new plugin is available only in the edge branch. So to start playing:



ubiquo my_categories_project --edge


Your feedback will be welcome!

Posted by Toni Reina 

Comments [0]

Ubiquo day III

Bernat and Toni have given a keynote about the upcoming ubiquo_categories plugin demostrating its main features and discussing their design goals.

Carles presented their ideas and concepts for a new ubiquo logo which is right now a work in progress.

Jordi continued their ubiquo introduction workshop for people with no previous ubiquo experience showing the advantages of ubiquo_scaffold and the new edge features.

We also finished some tickets:

  • ubiquo_scaffold now uses a html editor for textarea fields by default. #304
  • Fixed login error with disabled cookies. #301
  • Updated gem with a new custom profile option to make it easier to define your own ubiquo plugin set changeset

Finally today we are introducing ubiquo planet, which will be a blog where some ubiquo team, developers and designers will post snippets, ideas and everything related to ubiquo.

See you on the next Ubiquo day (5th June 2010)!

                 
Click here to download:
ubiquo-day-iii-w3I8gipcoQdaW4UBpQeP.zip (6311 KB)

Filed under  //   planet   ubiquo_day  

0.7.2 stable is out!

The main feature is the addition of JRuby support. This is a highly encouraged update for anybody in the stable branch, as it provides bugfixes along with some minor improvements.

The changelog for this version is the following

  • Jruby support (#281)
  • Improved install process with new start page and automatic first user creation (#271, #177)
  • Flexibilized styling for required and error fields (#244, #245)
  • Fixed problem in file attachments with paperclip styles (#268)
  • Changed behaviour of ubiquo:db:reset task to be the simple task to reload the database (#276, #278, #283)
  • Fixed problem in ubiquo_i18n when using it with thinking_sphinx (#277)
  • And some test fixes (#273, #272)

Remember that to update all plugins at once, the easiest way is to use

  rake ubiquo:foreach:pull  

The ubiquo gem is also ready for jruby, so you can use it to generate your new ubiquo projects.

 gem update ubiquo 

 ubiquo mynewapp 

 

Filed under  //   0.7.x   jruby   releases   stable  
Posted by Toni Reina 

Comments [0]

Ubiquo day II

Today we have celebrated the second ubiquo day. We agreed about the key features for the 0.8.0 release:

  • ubiquo_design (release with improvements and caching system). 
  • ubiquo_categories. 
  • Static pages 
  • Add dynamic resizing and cropping support in ubiquo_media. 
  • Improved UI translation mechanism (possible po support, tasks to avoid missing translations). 
  • Nested resources support in ubiquo_scaffold. 
  • Refactor and cleanup of filters API. 
  • Lightbox improvements. 
  • Improved documentation with screencasts. 
  • Make ubiquo_jobs jruby compatible. 


Extra features (may or may not be included in this release):

  • Rails 3 support 
  • Ruby 1.9 support 
  • SSL support 
  • Security review 
  • Selenium testing 


We also have worked on different topics:

  • Added possibility to map indirect category sets. (ubiquo_categories). 
  • Explored new approaches for solving some design issues for ubiquo_i18n. 
  • Fixed some ubiquo_activity bugs. 
  • Worked on ubiquo_core adapters for jruby support. 
  • Worked on adding jruby support to the ubiquo gem. 
  • Added styling capabilites for required fields and errors fields. (#244, #245
  • Added --run-migration option to ubiquo_scaffold. (#274). 
  • Worked on a new ubiquo logo (you can check the photos to see some samples). 


Meanwhile Jordi conducted an ubiquo introduction workshop for people
with no previous ubiquo experience.

See you on the next ubiquo day (8th May 2010)!

 

                                 
Click here to download:
ubiquo.zip (12505 KB)

Filed under  //   ubiquo_day