Permalink
Commits on Jun 23, 2012
Commits on Jun 22, 2012
  1. fix some accidental nils

    tenderlove committed Jun 22, 2012
  2. Merge pull request #6832 from frodsan/nodoc_patch1

    rafaelfranca committed Jun 22, 2012
    add :nodoc: to internal implementations [ci skip]
  3. add :nodoc: to internal implementations [ci skip]

    Francesco Rodriguez committed Jun 22, 2012
  4. Merge pull request #6821 from tonywok/pg_datetime_precision

    rafaelfranca committed Jun 22, 2012
    Allow precision option for postgresql datetimes
  5. Allow precision option for postgresql datetimes

    tonywok committed Jun 21, 2012
    This patch addresses the difficulty of retrieving datetime fields. By default, the database holds a higher precision than the time as a String.
    
    This issue is discussed at length at the following links:
    - [#3519](rails#3519)
    - [#3520](rails#3520)
    
    Also, kudos to @mattscilipoti
  6. Merge pull request #6829 from frodsan/misunderstood_param

    rafaelfranca committed Jun 22, 2012
    change param name to improve documentation
  7. change param name to improve documentation

    Francesco Rodriguez committed Jun 22, 2012
    The keys of the error messages are actually attribute names. It makes
    the documentation easier to understand:
    
        # Returns +true+ if the error messages include an error for the given
        # +attribute+, +false+ otherwise.
        #
        #   person.errors.messages # => { :name => ["can not be nil"] }
        #   person.errors.include?(:name) # => true
        #   person.errors.include?(:age)  # => false
        def include?(attribute)
          (v = messages[attribute]) && v.any?
        end
  8. Merge pull request #6800 from mschneider/dynamic_finders_for_aliased_…

    rafaelfranca committed Jun 22, 2012
    …attributes
    
    Dynamic finders for aliased attributes
  9. made dynamic finders alias_attribute aware

    mschneider committed Jun 22, 2012
    previously dynamic finders only worked in combination with the actual
    column name and not its alias defined with #alias_attribute
  10. Merge branch 'pluck-multiple-columns'

    carlosantoniodasilva committed Jun 22, 2012
    Allow ActiveRecord::Relation#pluck to accept multiple columns. Returns an
    array of arrays containing the type casted values:
    
        Person.pluck(:id, :name)
        # SELECT people.id, people.name FROM people
        # [[1, 'David'], [2, 'Jeremy'], [3, 'Jose']]
    
    Closes #6500
  11. Refactor pluck with multiple columns

    carlosantoniodasilva committed Jun 20, 2012
    Ensure it works with mix of symbols and strings, and with a select
    clause possibly containing more than one column.
    
    Also remove support for pluck with an array of columns, in favor of
    passing the list of attributes:
    
        Model.pluck(:a, :b)
    
    See comments: rails#6500 (comment)
  12. Fix serializable_hash with xml generation and default :except option

    carlosantoniodasilva committed Jun 22, 2012
    When generating xml with a custom implementation of serializable_hash,
    if using the :except option, it was being overriden by the default AR
    implementation that attempts to ignore the inheritance column from STI
    automatically. So, if you have an implementation like this:
    
        def serializable_hash(options={})
          super({ except: %w(some_attr) }.merge!(options))
        end
    
    The :except option was correctly being used for :json generation, but
    not for :xml, because the options hash already contained the :except
    key with the inheritance column, thus overriding the customization.
    
    This commit fixes this problem by removing the :except logic from the
    xml serializer, that happened before calling serializable_hash. Since
    serializable_hash also does the same check for inheritance column, this
    logic was duplicated in both places, thus it's safe to remove it from
    xml serializer (see ActiveRecord::Serialization#serializable_hash).
    
    This is an attempt to solve issue #2498, that claims for a
    "Single transformation API for both xml and json representations".
  13. Add some coverage for AR serialization with serializable_hash

    carlosantoniodasilva committed Jun 22, 2012
    ActiveRecord json/xml serialization should use as base
    serializable_hash, provided by ActiveModel. Add some more coverage
    around options :only and :except for both json and xml serialization.
  14. update ActiveModel::Callbacks documentation [ci skip]

    Francesco Rodriguez committed Jun 22, 2012
  15. Improve the derivation of HABTM assocation join table names

    pixeltrix committed Jun 21, 2012
    Improve the derivation of HABTM join table name to take account of nesting.
    It now takes the table names of the two models, sorts them lexically and
    then joins them, stripping any common prefix from the second table name.
    
    Some examples:
    
      Top level models
      (Category <=> Product)
      Old: categories_products
      New: categories_products
    
      Top level models with a global table_name_prefix
      (Category <=> Product)
      Old: site_categories_products
      New: site_categories_products
    
      Nested models in a module without a table_name_prefix method
      (Admin::Category <=> Admin::Product)
      Old: categories_products
      New: categories_products
    
      Nested models in a module with a table_name_prefix method
      (Admin::Category <=> Admin::Product)
      Old: categories_products
      New: admin_categories_products
    
      Nested models in a parent model
      (Catalog::Category <=> Catalog::Product)
      Old: categories_products
      New: catalog_categories_products
    
      Nested models in different parent models
      (Catalog::Category <=> Content::Page)
      Old: categories_pages
      New: catalog_categories_content_pages
    
    Also as part of this commit the validity checks for HABTM assocations have
    been moved to ActiveRecord::Reflection One side effect of this is to move when
    the exceptions are raised from the point of declaration to when the association
    is built. This is consistant with other association validity checks.
Commits on Jun 21, 2012
  1. add description to ActiveModel::MissingAttributeError [ci skip]

    Francesco Rodriguez committed Jun 21, 2012
  2. Merge pull request #6818 from frodsan/add_nodoc_instancemethod

    rafaelfranca committed Jun 21, 2012
    add :nodoc: to AM::AttributeMethods#instance_method_already_implemented?...
  3. add :nodoc: to AM::AttributeMethods#instance_method_already_implement…

    Francesco Rodriguez committed Jun 21, 2012
    …ed? [ci skip]
  4. add example to ActiveModel::AttributeMethods#undefine_attribute_metho…

    Francesco Rodriguez committed Jun 21, 2012
    …ds [ci skip]
  5. add docs to AM::AttributeMethods#define_attribute_method [ci skip]

    Francesco Rodriguez committed Jun 21, 2012
  6. Merge pull request #6428 from pinetops/resolver_concurrency_fix

    wycats committed Jun 21, 2012
    Make the Resolver template cache threadsafe
  7. Merge pull request #6815 from frodsan/add_nodoc_attrmethodmatcher

    rafaelfranca committed Jun 21, 2012
    add :nodoc: to AM::AttributeMethods::AttributeMethodMatcher
  8. stop subclassing string

    tenderlove committed Jun 21, 2012