README.md in tuning-1.0.0 vs README.md in tuning-4.0.0.0

- old
+ new

@@ -5,10 +5,17 @@ # Tuning Common tools used in rails extracted into a gem. +## Why + +I did this gem to: + +- Make features I commonly need work nice together. +- Have an extensible container to continue adding new general purpose tools. + ## Install Put this line in your Gemfile: ```ruby gem 'tuning' @@ -17,12 +24,14 @@ Then bundle: ``` $ bundle ``` -## Controllers +## Usage +### Controllers + New callbacks before, after, around render are available: ```ruby class ProductsController < ApplicationController before_action :set_product @@ -42,11 +51,11 @@ end end ``` -## Mailers +### Mailers Text email templates will normalize spaces and new lines like html: ```erb <% if @order.confirmed? %> Your order has been confirmed. @@ -60,11 +69,11 @@ Your order has been confirmed. Will be delivered right the way. ``` -## Views +### Views New content_tag_if method to wrap content into some tag if certain condition it's true: ```erb <%= content_tag_if request.path == home_path, :h1 do %> <%= link_to 'Home', home_path, id: 'logo' %> @@ -81,44 +90,44 @@ <%= extending :application do %> <p>content</p> <% end %> ``` -## Records +### Records Empty strings will be nilify in the database to avoid sql errors or complex queries: ```ruby shop = Shop.new(name: '') shop.save shop.name # Will be nil ``` New method validate is available to allow a more expressive syntax: ```ruby -record.validate # Same as valid? +record.validate ``` -## Validations +### Validations -Complexity validator to avoid weak passwords: +New complexity validator to avoid weak passwords: ```ruby class User < ActiveRecord::Base validates_complexity_of :password end ``` -Count validator to express count messages instead of length messages: +New time validator to validate Date/Time using after, after_or_equal_to, before or before_or_equal_to: ```ruby -class Product < ActiveRecord::Base - validates_count_of :pictures, minimum: 1, maximum: 4 # Or in/within: 1..4 +class Schedule < ActiveRecord::Base + validates_time_of :opens_at + validates_time_of :closes_at, after: :opens_at end ``` -Time validator to validate Date/Time values: +New count validator to express count messages using minimum, maximum, in o within: ```ruby -class Schedule < ActiveRecord::Base - validates_time_of :opens_at - validates_time_of :closes_at, after: :opens_at # Or before, after_or_equal_to or before_or_equal_to +class Product < ActiveRecord::Base + validates_count_of :pictures, minimum: 1, maximum: 4 end ``` NOTE: Take a look at lib/tuning/locales to know the i18n keys.