aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel
Commit message (Collapse)AuthorAgeFilesLines
* Allow passing a Proc or Symbol as an argument to length validator valuesMatt Rohrer2017-10-263-2/+43
| | | | | This brings the Length validator in line with the Numericality validator, which currently supports Proc & Symbol arguments
* Merge pull request #30920 from lugray/attributes_to_amSean Griffin2017-10-233-0/+376
|\ | | | | Start bringing attributes API to AM
| * Start bringing attributes API to AMLisa Ugray2017-10-183-0/+376
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the first PR of a WIP to bring the attributes API to ActiveModel. It is not yet ready for public API. The `attributes_dirty_test.rb` file was created based on `dirty_test.rb`, and the simplifications in the diff do much to motivate this change. ``` diff activemodel/test/cases/dirty_test.rb activemodel/test/cases/attributes_dirty_test.rb 3a4 > require "active_model/attributes" 5c6 < class DirtyTest < ActiveModel::TestCase --- > class AttributesDirtyTest < ActiveModel::TestCase 7,41c8,12 < include ActiveModel::Dirty < define_attribute_methods :name, :color, :size < < def initialize < @name = nil < @color = nil < @size = nil < end < < def name < @name < end < < def name=(val) < name_will_change! < @name = val < end < < def color < @color < end < < def color=(val) < color_will_change! unless val == @color < @color = val < end < < def size < @size < end < < def size=(val) < attribute_will_change!(:size) unless val == @size < @size = val < end --- > include ActiveModel::Model > include ActiveModel::Attributes > attribute :name, :string > attribute :color, :string > attribute :size, :integer ```
* | Remove deprecated `:if` and `:unless` string filter for callbacksRafael Mendonça França2017-10-232-104/+2
| |
* | [Active Model] require => require_relativeAkira Matsuda2017-10-217-25/+25
|/ | | | This basically reverts ee5cfc01a5797f854c8441539b0cae326a81b963
* Clarify intentions around method redefinitionsMatthew Draper2017-09-011-2/+2
| | | | | | | | | Don't use remove_method or remove_possible_method just before a new definition: at best the purpose is unclear, and at worst it creates a race condition. Instead, prefer redefine_method when practical, and silence_redefinition_of_method otherwise.
* Use tt in doc for ActiveRecord [ci skip]Yoshiyuki Hirano2017-08-271-2/+2
|
* Update MIT licenses link [ci skip]Yoshiyuki Hirano2017-08-221-1/+1
|
* Simplify ActiveModel::Errors#generate_messageViktar Basharymau2017-08-181-7/+5
| | | | | | | | | | Besides making the code easier to read, this commit also makes it faster: * We don't eval `@base.class.respond_to?(:i18n_scope)` twice * We only eval `@base.class.i18n_scope` once * We don't call `flatten!` because it's not needed anymore * We don't call `compact` because all elements are Symbols
* [ci skip] Postgres --> PostgreSQLRyuta Kamizono2017-08-081-1/+1
|
* Talk about bytes not charactersRafael Mendonça França2017-07-311-3/+3
| | | | | | [ci skip] Closes #30012
* Merge pull request #29788 from kamipo/remove_unused_mutex_mRafael França2017-07-172-8/+5
|\ | | | | Remove unused `Mutex_m` in Active Model
| * Make `generated_attribute_methods` to privateRyuta Kamizono2017-07-142-5/+5
| | | | | | | | Because `generated_attribute_methods` is an internal API.
| * Remove unused `Mutex_m` in Active ModelRyuta Kamizono2017-07-141-4/+1
| |
* | Allow multiparameter assigned attributes to be used with `text_field`Sean Griffin2017-07-172-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Between 4.2 and 5.0 the behavior of how multiparameter attributes interact with `_before_type_cast` changed. In 4.2 it returns the post-type-cast value. After 5.0, it returns the hash that gets sent to the type. This behavior is correct, but will cause an issue if you then tried to render that value in an input like `text_field` or `hidden_field`. In this case, we want those fields to use the post-type-cast form, instead of the `_before_type_cast` (the main reason it uses `_before_type_cast` at all is to avoid losing data when casting a non-numeric string to integer). I've opted to modify `came_from_user?` rather than introduce a new method for this as I want to avoid complicating that contract further, and technically the multiparameter hash didn't come from assignment, it was constructed internally by AR. Close #27888.
* | Use frozen string literal in activemodel/Kir Shatrov2017-07-16116-0/+231
|/
* Add ActiveModel::Errors#merge!Jahfer Husain2017-07-073-0/+28
| | | | | | | | | | | | | | | | | ActiveModel::Errors#merge! allows ActiveModel::Errors to append errors from a separate ActiveModel::Errors instance onto their own. Example: person = Person.new person.errors.add(:name, :blank) errors = ActiveModel::Errors.new(Person.new) errors.add(:name, :invalid) person.errors.merge!(errors) puts person.errors.messages # => { name: ["can't be blank", "is invalid"] }
* Fix `ActiveModel::Type::DateTime#serialize`Lisa Ugray2017-07-051-0/+4
| | | | | `ActiveModel::Type::DateTime#serialize` should return a `Time` object so that finding by a datetime column works correctly.
* Merge branch 'master' into require_relative_2017Xavier Noria2017-07-022-2/+2
|\
| * Revert "Merge pull request #29540 from kirs/rubocop-frozen-string"Matthew Draper2017-07-02116-116/+0
| | | | | | | | | | This reverts commit 3420a14590c0e6915d8b6c242887f74adb4120f9, reversing changes made to afb66a5a598ce4ac74ad84b125a5abf046dcf5aa.
| * Merge pull request #29540 from kirs/rubocop-frozen-stringMatthew Draper2017-07-02116-0/+116
| |\ | | | | | | | | | Enforce frozen string in Rubocop
| | * Enforce frozen string in RubocopKir Shatrov2017-07-01116-0/+116
| | |
| * | Merge pull request #29506 from pat/frozen-string-literalsMatthew Draper2017-07-022-2/+2
| |\ \ | | |/ | |/| | | | Make ActiveSupport frozen-string-literal friendly.
| | * Make ActiveModel frozen string literal friendly.Pat Allan2017-06-202-2/+2
| | | | | | | | | | | | Includes two external changes because they're referenced within the ActiveModel test suite.
* | | [Active Model] require => require_relativeAkira Matsuda2017-07-017-23/+23
|/ /
* | Merge pull request #29588 from greysteil/add-gemspec-linksRafael França2017-06-281-0/+5
|\ \ | | | | | | Add source code and changelog links to gemspecs
| * | Add source code and changelog links to gemspecsGrey Baker2017-06-281-0/+5
| | |
* | | :scissors:Ryuta Kamizono2017-06-281-1/+1
|/ / | | | | | | [ci skip]
* / Fix call-seq typo s/==/<=>/ [ci skip]Ryuta Kamizono2017-06-211-1/+1
|/ | | | Fixes #29512.
* Merge pull request #29447 from shotat/feature/enhance_active_modelRafael França2017-06-151-2/+5
|\ | | | | [ActiveModel] Improve the performance of mass assignments
| * add frozen string literal commentshotat2017-06-151-1/+3
| |
| * freeze stringshotat2017-06-141-1/+1
| |
| * enhance active model assignmentshotat2017-06-141-2/+3
| |
* | Use `require_relative` instead of `require` with full pathbogdanvlviv2017-06-141-1/+1
|/
* Docs: Fix output representation [ci skip]Viktor Fonic2017-05-311-2/+2
| | | The output of two string attributes is displayed differently in the docs. Standardize the output by always showing it as a comment.
* Add option for class_attribute default (#29270)David Heinemeier Hansson2017-05-293-7/+4
| | | | | | | | | | | | * Allow a default value to be declared for class_attribute * Convert to using class_attribute default rather than explicit setter * Removed instance_accessor option by mistake * False is a valid default value * Documentation
* Fix regression in Numericality validator where extra decimal places on Bradley Priest2017-05-272-1/+8
| | | a user input for a decimal column were ignored by numerically validations
* Fix broken RDoc formattingT.J. Schuck2017-05-261-1/+1
| | | | [ci skip]
* Define path with __dir__bogdanvlviv2017-05-234-8/+6
| | | | | | ".. with __dir__ we can restore order in the Universe." - by @fxn Related to 5b8738c2df003a96f0e490c43559747618d10f5f
* Improving docs for callbacks execution order [ci skip]dixpac2017-05-212-0/+6
| | | | | When define callbacks latest definition on the same callback/method overwrites previous ones.
* fix ActiveModel::Validator#kind code examples [ci skip]stve2017-05-021-2/+2
|
* remove uniqueness validators from ActiveModel examplesstve2017-05-022-5/+4
|
* Cleanup CHANGELOGs [ci skip]Ryuta Kamizono2017-04-301-21/+21
| | | | | | * Remove trailing spaces. * Add backticks around method and command. * Fix indentation.
* Replace \Z to \zRyuta Kamizono2017-04-241-3/+3
| | | | \Z was a mistake of \z. Replace \Z to \z to prevent newly \Z added.
* Fix regexp in the doc [ci skip]Ryuta Kamizono2017-04-241-1/+1
| | | | Follow up of #17148.
* Move around AR::Dirty and fix _attribute methodAaron Patterson2017-04-142-8/+8
| | | | | | We already have a _read_attribute method that can get the value we need from the model. Lets define that method in AM::Dirty and use the existing one from AR::Dirty rather than introducing a new method.
* Merge pull request #28661 from ↵Aaron Patterson2017-04-141-4/+8
|\ | | | | | | | | bogdanvlviv/fix-dirty-attributes-if-override-attr_accessor Fix inconsistency with changed attributes when overriding AR attribute reader
| * Fix inconsistency with changed attributes when overriding AR attribute readerbogdanvlviv2017-04-121-4/+8
| |
* | :scissors:Ryuta Kamizono2017-04-133-3/+0
|/ | | | [ci skip]
* Don't freeze input stringsMatthew Draper2017-04-122-3/+17
| | | | | | | | | See 34321e4a433bb7eef48fd743286601403f8f7d82 for background on ImmutableString vs String. Our String type cannot delegate typecasting to ImmutableString, because the latter freezes its input: duplicating the value after that gives us an unfrozen result, but still mutates the originally passed object.