aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel
Commit message (Collapse)AuthorAgeFilesLines
* 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.)
* | Merge branch 'master' of github.com:lifo/docrailsVijay Dev2012-05-261-2/+2
|\ \
| * | Add comment for attr_accessible/attr_protected :as option. [ci skip]Edward Tsech2012-05-251-2/+2
| | |
* | | Merge pull request #4785 from ↵José Valim2012-05-252-4/+26
|\ \ \ | |/ / |/| | | | | | | | ayamomiji/add-self-to-allow-method-name-using-ruby-keyword add `self.` to allow method name using ruby keyword
| * | fix `alias_attribute` will raise a syntax error if make an alias on aayaya2012-05-142-4/+26
| | | | | | | | | | | | column that named as a ruby keyword
* | | Add license field to gemspecs, by Matt GriffinMatt Griffin2012-05-231-0/+1
| | |
* | | changed xml type datetime to dateTime, fixes #6328Angelo capilleri2012-05-232-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | XmlMini define the xml 'datatime', but according to http://www.w3.org/TR/xmlschema-2/#dateTime could be better change this to 'dateTime' with upper case letter 'T. So 'DateTime' and 'Time' are redefined from 'datetime' to 'dateTime' add the changing to the changelog
* | | Fix the buildSantiago Pastorino2012-05-221-1/+0
| | |
* | | require active_support/lazy_load_hooks where is neededSantiago Pastorino2012-05-221-0/+1
| | |
* | | Revert "Merge pull request #5702 from oscardelben/patch-4"Piotr Sarnacki2012-05-201-1/+3
| | | | | | | | | | | | | | | | | | | | | This reverts commit cae1ca7d1be9c79c7ef012a1f62aef9d3bb815f8, reversing changes made to da97cf016a8ffd1f54f804cd881f393e5d6efc18. These changes break the build, it needs more investigation.
* | | Merge pull request #5702 from oscardelben/patch-4Piotr Sarnacki2012-05-191-3/+1
|\ \ \ | | | | | | | | Call undefine_attribute_methods only when defining new attributes
| * | | Call undefine_attribute_methods only when defining new attributesOscar Del Ben2012-05-181-3/+1
| | | |
* | | | Merge pull request #5678 from troyk/patch-1Carlos Antonio da Silva2012-05-191-1/+1
|\ \ \ \ | |/ / / |/| | | Remove sort on attributes.keys
| * | | Remove sort on attributes.keysTroy Kruthoff2012-03-301-1/+1
| | | |
* | | | Merge pull request #6215 from erichmenge/fix_has_secure_passwordAaron Patterson2012-05-175-15/+43
|\ \ \ \ | | | | | | | | | | Fix has secure password