aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge pull request #6938 from acapilleri/as_json_refactoringCarlos Antonio da Silva2012-07-071-2/+6
|\ \ | | | | | | Small refactoring of as_json method
| * | small refactoring of as_json methodAngelo Capilleri2012-07-031-2/+6
| |/ | | | | | | with this change root has always one assignment
* / observer update refactoringAngelo Capilleri2012-07-031-2/+1
|/
* Merge branch 'master' of github.com:lifo/docrailsVijay Dev2012-06-306-118/+357
|\ | | | | | | | | Conflicts: activemodel/lib/active_model/errors.rb
| * update ActiveModel::Name documentation [ci skip]Francesco Rodriguez2012-06-251-1/+133
| |
| * fix punctuation in activemodel/errors [ci skip]Francesco Rodriguez2012-06-251-1/+1
| |
| * update ActiveModel::Naming documentationFrancesco Rodriguez2012-06-231-7/+8
| |
| * update ActiveModel::Model documentation [ci skip]Francesco Rodriguez2012-06-231-16/+37
| |
| * add description ActiveModel::StrictValidationField [ci skip]Francesco Rodriguez2012-06-231-0/+10
| |
| * update ActiveModel::Lint documentation [ci skip]Francesco Rodriguez2012-06-221-22/+23
| |
| * update ActiveModel::Errors#include? documentation [ci skip]Francesco Rodriguez2012-06-221-1/+1
| |
| * add documentation and examples to ActiveModel::Errors [ci skip]Francesco Rodriguez2012-06-221-4/+26
| |
| * update ActiveModel::Errors documentation and minor fixes [ci skip]Francesco Rodriguez2012-06-223-64/+103
| |
| * update ActiveModel::Conversion documentation [ci skip]Francesco Rodriguez2012-06-221-8/+21
| |
* | Refactor attribute method matcher to use Hash#fetchCarlos Antonio da Silva2012-06-261-5/+3
| |
* | Cleanup attribute methods a bit, use map! when accepting *argsCarlos Antonio da Silva2012-06-261-17/+12
| | | | | | | | | | | | | | | | | | Since we're dealing with a new array instance, it's safe to use map! and we avoid an extra array object. Also remove the symbolize_keys! from AttributeMethodMatcher, since it's an internal class that always receives symbol keys from the prefix/suffix methods implementations.
* | Use default + merge! instead of reverse_mergeCarlos Antonio da Silva2012-06-261-1/+1
| | | | | | | | | | Since we're not directly requiring the reverse_merge extension, we can avoid another hash creation by using default_hash.merge! instead.
* | Set hash value instead of merge a single key, and use flatten! if possibleCarlos Antonio da Silva2012-06-262-4/+5
| | | | | | | | | | | | | | | | There's no need to create two extra hashes with options.merge(another_hash), with the goal of setting only one value, so lets just set it. Also refactor validates_each to use _merge_attributes, like other validates_* helpers do.
* | add :nodoc: to internal implementations [ci skip]Francesco Rodriguez2012-06-2510-19/+19
| |
* | Make internal callback model definitions private in AMoCarlos Antonio da Silva2012-06-251-5/+7
| | | | | | | | | | | | | | These _define class methods don't need to be exposed to objects that extend ActiveModel::Callbacks. Also use merge! options to avoid the creation of an extra hash.
* | add :nodoc: to internal implementations [ci skip]Francesco Rodriguez2012-06-224-4/+4
| |
* | change param name to improve documentationFrancesco Rodriguez2012-06-221-2/+2
|/ | | | | | | | | | | | | | | 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
* Merge branch 'master' of github.com:lifo/docrailsVijay Dev2012-06-223-61/+133
|\
| * fixes a few mistakes in api docs [ci skip]Vijay Dev2012-06-222-2/+2
| |
| * update ActiveModel::Callbacks documentation [ci skip]Francesco Rodriguez2012-06-221-24/+26
| |
| * add description to ActiveModel::MissingAttributeError [ci skip]Francesco Rodriguez2012-06-211-1/+2
| |
| * add example to ActiveModel::AttributeMethods#undefine_attribute_methods [ci ↵Francesco Rodriguez2012-06-211-0/+26
| | | | | | | | skip]
| * add docs to AM::AttributeMethods#define_attribute_method [ci skip]Francesco Rodriguez2012-06-211-0/+25
| |
| * fix ActiveModel::AttributeMethods#alias_attribute documentation [ci skip]Francesco Rodriguez2012-06-211-7/+20
| |
| * update ActiveModel::AttributeMethods documentation [ci skip]Francesco Rodriguez2012-06-211-27/+20
| |
| * add example to ActiveModel::Validations#validators [ci skip]Francesco Rodriguez2012-06-152-3/+15
| |
* | Merge pull request #6800 from mschneider/dynamic_finders_for_aliased_attributesRafael Mendonça França2012-06-222-1/+12
|\ \ | | | | | | Dynamic finders for aliased attributes
| * | made dynamic finders alias_attribute awareMaximilian Schneider2012-06-222-1/+12
| | | | | | | | | | | | | | | previously dynamic finders only worked in combination with the actual column name and not its alias defined with #alias_attribute
* | | Add some coverage for AR serialization with serializable_hashCarlos Antonio da Silva2012-06-221-1/+1
| | | | | | | | | | | | | | | | | | 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.
* | | add :nodoc: to AM::AttributeMethods#instance_method_already_implemented? [ci ↵Francesco Rodriguez2012-06-211-1/+1
| | | | | | | | | | | | skip]
* | | add :nodoc: to AM::AttributeMethods::AttributeMethodMatcher [ci skip]Francesco Rodriguez2012-06-211-1/+1
|/ /
* / Simplify AR configuration code.Jon Leighton2012-06-157-302/+8
|/ | | | | Get rid of ActiveModel::Configuration, make better use of ActiveSupport::Concern + class_attribute, etc.
* Merge branch 'master' of github.com:lifo/docrailsVijay Dev2012-06-143-10/+13
|\
| * Range#cover? is not implemented in AS nowAkira Matsuda2012-06-122-4/+3
| |
| * Make observer enable/disable documentation more informative. Robb Kidd2012-06-091-6/+10
| | | | | | | | | | * Moved the simplest case--enable/disable all on all--to the top. * Made clear what "ORM" means to avoid having to teach people how to solve "uninitialized constant ORM" errors in their test reports.
* | prevent users from unknowingly using bad regexps that can compromise ↵MrBrdo2012-06-144-9/+41
| | | | | | | | security (http://homakov.blogspot.co.uk/2012/05/saferweb-injects-in-various-ruby.html)
* | Merge pull request #6668 from pomnikita/masterPiotr Sarnacki2012-06-082-1/+7
|\ \ | | | | | | Compact array of values added to PermissionSet instance
| * | Compact array of values added to PermissionSet instanceNikita Pomyashchiy2012-06-082-1/+7
| |/
* / change AMS::JSON.include_root_in_json default value to falseFrancesco Rodriguez2012-06-063-94/+111
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes: * Update `include_root_in_json` default value to false for default value to false for `ActiveModel::Serializers::JSON`. * Remove unnecessary change to include_root_in_json option in wrap_parameters template. * Update `as_json` documentation. * Fix JSONSerialization tests. Problem: It's confusing that AM serializers behave differently from AR, even when AR objects include AM serializers module. class User < ActiveRecord::Base; end class Person include ActiveModel::Model include ActiveModel::AttributeMethods include ActiveModel::Serializers::JSON attr_accessor :name, :age def attributes instance_values end end user.as_json => {"id"=>1, "name"=>"Konata Izumi", "age"=>16, "awesome"=>true} # root is not included person.as_json => {"person"=>{"name"=>"Francesco", "age"=>22}} # root is included ActiveRecord::Base.include_root_in_json => false Person.include_root_in_json => true # different default values for include_root_in_json Proposal: Change the default value of AM serializers to false, update the misleading documentation and remove unnecessary change to false of include_root_in_json option with AR objects. class User < ActiveRecord::Base; end class Person include ActiveModel::Model include ActiveModel::AttributeMethods include ActiveModel::Serializers::JSON attr_accessor :name, :age def attributes instance_values end end user.as_json => {"id"=>1, "name"=>"Konata Izumi", "age"=>16, "awesome"=>true} # root is not included person.as_json => {"name"=>"Francesco", "age"=>22} # root is not included ActiveRecord::Base.include_root_in_json => false Person.include_root_in_json => false # same behaviour, more consistent Fixes #6578.
* Merge branch 'master' of github.com:lifo/docrailsVijay Dev2012-06-021-24/+35
|\
| * update ActiveModel::Dirty documentationFrancesco Rodriguez2012-05-311-24/+35
| |
* | Sync CHANGLOG with the 3-2-stable branchRafael Mendonça França2012-06-011-0/+15
|/
* Merge pull request #5843 from ↵José Valim2012-05-292-2/+7
|\ | | | | | | | | kuroda/translation_of_deeply_nested_model_attributes Fix human attribute_name to handle deeply nested attributes
| * Fix human attribute_name to handle deeply nested attributesTsutomu Kuroda2012-05-162-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | When a model nests another model that also nests yet another model using accepts_nested_attributes_for method, its Errors object can have an attribute name with "contacts.addresses.street" style. In this case, the dots within the namespace should be substituted with slashes so that we can provide the translation under the "activemodel.attributes.person/contacts/addresses.street" key. This commit is related to #3859.
* | Don't enable validations when passing false hash values to ActiveModel.validatesSteve Purcell2012-05-283-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Passing a falsey option value for a validator currently causes that validator to be enabled, just like "true": ActiveModel.validates :foo, :presence => false This is rather counterintuitive, and makes it inconvenient to wrap `validates` in methods which may conditionally enable different validators. As an example, one is currently forced to write: def has_slug(source_field, options={:unique => true}) slugger = Proc.new { |r| r[:slug] = self.class.sluggify(r[source_field]) if r[:slug].blank? } before_validation slugger validations = { :presence => true, :slug => true } if options[:unique] validations[:uniqueness] = true end validates :slug, validations end because the following reasonable-looking alternative fails to work as expected: def has_slug(source_field, options={:unique => true}) slugger = Proc.new { |r| r[:slug] = self.class.sluggify(r[source_field]) if r[:slug].blank? } before_validation slugger validates :slug, :presence => true, :slug => true, :uniqueness => options[:unique] end (This commit includes a test, and all activemodel and activerecord tests pass as before.)