aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | Merge pull request #12785 from chancancode/do_not_leak_internal_stateJeremy Kemper2013-11-065-58/+45
|\ \ \ \ \ | | | | | | | | | | | | Do not expose internal state in the public encoder API (i.e. as_json)
| * | | | | Do not expose internal state in the public encoder API (i.e. as_json)Godfrey Chan2013-11-064-55/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See [1] for why this is not a good idea. As part of this refactor, circular reference protection in as_json has been removed and the corresponding error class has been deprecated. As discussed with @jeremy, circular reference error is considered programmer errors and protecting against it is out of scope for the encoder. This is again based on the excellent work by @sergiocampama in #11728. [1]: https://github.com/intridea/multi_json/pull/138#issuecomment-24468223
| * | | | | Moved AS::JSON::DATE_REGEX as it's only used for decodingGodfrey Chan2013-11-062-3/+3
|/ / / / /
* | | | | Stop using method missing for singleton delegation.Aaron Patterson2013-11-065-9/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This saved about 46 array allocations per request on an extremely simple application. The delegation happened in the notification subsystem which is a hotspot, so this should result in even more savings with larger apps. Squashed commit of the following: commit 41eef0d1479526f7de25fd4391d98e61c126d9f5 Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Wed Nov 6 16:32:31 2013 -0800 speed up notifications commit 586b4a18656f66fb2c518fb8e8fee66a016e8ae6 Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Wed Nov 6 16:31:05 2013 -0800 speed up runtime registry methods commit b67d074cb4314df9a88438f785868cef77e583d7 Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Wed Nov 6 16:28:12 2013 -0800 change method name and make it public
* | | | | drop one more string allocationAaron Patterson2013-11-061-1/+1
| | | | |
* | | | | drop string allocations in the log subscriberAaron Patterson2013-11-061-2/+12
| | | | |
* | | | | calculate the ivars to remove in advance as a set and cache them in aAaron Patterson2013-11-063-12/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | constant. `view_assigns` can use the precalculated sets and remove instance variables without allocating any extra arrays
* | | | | use a set and reject to avoid array allocationsAaron Patterson2013-11-061-4/+11
| | | | |
* | | | | each_with_object on the view_assigns hashAaron Patterson2013-11-061-3/+1
| | | | |
* | | | | use slice to avoid range allocationAaron Patterson2013-11-061-1/+3
| | | | |
* | | | | these variables are also privateAaron Patterson2013-11-061-0/+1
| | | | |
* | | | | instance_variables returns symbols, so we should use symbols in our listAaron Patterson2013-11-061-1/+1
| |/ / / |/| | |
* | | | Merge pull request #12789 from claudiob/humanize-without-capitalizingXavier Noria2013-11-067-15/+58
|\ \ \ \ | | | | | | | | | | Add +capitalize+ option to Inflector.humanize
| * | | | Add +capitalize+ option to Inflector.humanizeclaudiob2013-11-067-15/+58
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | So strings can be humanized without being capitalized: 'employee_salary'.humanize # => "Employee salary" 'employee_salary'.humanize(capitalize: false) # => "employee salary"
* | | | Merge pull request #12788 from kylefritz/patch-1Rafael Mendonça França2013-11-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | rdoc: favicon source shouldn't begin with a slash to reference asset pipeline resource [ci skip] Conflicts: actionview/lib/action_view/helpers/asset_tag_helper.rb
* | | | Merge pull request #12783 from chancancode/eliminate_direct_json_gem_useJeremy Kemper2013-11-068-31/+32
|\ \ \ \ | | | | | | | | | | Eliminate `JSON.{parse,load,generate,dump}` and `def to_json`
| * | | | Eliminate `JSON.{parse,load,generate,dump}` and `def to_json`Godfrey Chan2013-11-058-31/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JSON.{dump,generate} offered by the JSON gem is not compatiable with Rails at the moment and can cause a lot of subtle bugs when passed certain data structures. This changed all direct usage of the JSON gem in internal Rails code to always go through AS::JSON.{decode,encode}. We also shouldn't be implementing `to_json` most of the time, and these occurances are replaced with an equivilent `as_json` implementation to avoid problems down the road. See [1] for all the juicy details. [1]: intridea/multi_json#138 (comment)
* | | | | bring back constant to expose the enum mapping as HWIA.Yves Senn2013-11-062-4/+19
| | | | |
* | | | | update the AR enum docs to match the actual behavior. [ci skip]Yves Senn2013-11-061-5/+3
|/ / / /
* | | | Fix AS changelog indent, remove tabs and extra spaces [ci skip]Carlos Antonio da Silva2013-11-061-2/+2
| | | |
* | | | Merge pull request #12782 from chancancode/fix_object_and_struct_as_jsonJeremy Kemper2013-11-053-5/+40
|\ \ \ \ | | | | | | | | | | Fixed Object#as_json and Struct#as_json with options
| * | | | Fixed Object#as_json and Struct#as_json with optionsGodfrey Chan2013-11-053-5/+40
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These methods now takes the same options as Hash#as_json, for example: struct = Struct.new(:foo, :bar).new struct.foo = "hello" struct.bar = "world" json = struct.as_json(only: [:foo]) # => {foo: "hello"} This is extracted from PR #11728 from @sergiocampama, see also the discussion in #11460.
* | | | store enum mapping using `Strings` instead of `Symbols`.Yves Senn2013-11-052-3/+9
| | | | | | | | | | | | | | | | | | | | This allows to assign both `String` and `Symbol` values to the enum without having to call `to_sym`, which is a security problem.
* | | | direct enum assignment rasies ArgumentError for unknown values.Yves Senn2013-11-052-1/+18
| | | |
* | | | Merge pull request #12776 from derekprior/dp-i18n-doc-fixRafael Mendonça França2013-11-051-1/+1
|\ \ \ \ | | | | | | | | | | Clarify HTML Safe Translations
| * | | | Clarify HTML Safe Translations [ci-skip]Derek Prior2013-11-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I think it's confusing to say "Use them in views without escaping." We use all keys in views without escaping - the escaping is done for us automatically _unless_ we call html_safe or the key ends in _html.
* | | | | define enum methods inside a `Module` to make them overwritable.Yves Senn2013-11-053-13/+34
| | | | |
* | | | | Merge pull request #12390 from kennyj/rename_to_association_methodsRafael Mendonça França2013-11-054-7/+7
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Renamed generated_feature_methods to generated_association_methods. Conflicts: activerecord/lib/active_record/associations/builder/association.rb activerecord/lib/active_record/associations/builder/singular_association.rb activerecord/test/cases/base_test.rb
| * | | | | Renamed generated_feature_methods to generated_association_methods.kennyj2013-09-285-12/+12
| | | | | |
* | | | | | Remove private API testRafael Mendonça França2013-11-051-10/+0
| |/ / / / |/| | | |
* | | | | Merge pull request #12773 from ptn/use_19_syntax_in_schema_testGuillermo Iguaran2013-11-051-1/+1
|\ \ \ \ \ | | | | | | | | | | | | Use 1.9 Hash syntax consistently
| * | | | | Use 1.9 Hash syntax consistentlyPablo Torres2013-11-051-1/+1
|/ / / / /
* | | | | Merge pull request #12752 from notalex/expand_path_refactoringYves Senn2013-11-053-3/+3
|\ \ \ \ \ | |_|/ / / |/| | | | Refactor File.expand_path usage to remove additional File.join
| * | | | Refactor File.expand_path usage to remove additional File.joinAlex Johnson2013-11-053-3/+3
| | | | |
* | | | | ask the fixture set for the sql statementsAaron Patterson2013-11-042-11/+17
| | | | |
* | | | | The enum value constant isn't used, so rm it for now.Aaron Patterson2013-11-042-27/+7
| | | | |
* | | | | stop doing the same calculation over and overAaron Patterson2013-11-041-4/+5
| | | | |
* | | | | oops, template replay needs to happen after bundle. :orz:Aaron Patterson2013-11-041-1/+1
| | | | |
* | | | | application template respects Gemfile entriesAaron Patterson2013-11-042-0/+25
| | | | |
* | | | | gems can be added or skipped from the templateAaron Patterson2013-11-044-2/+92
| | | | |
* | | | | fix copy & paste test-case naming. [ci skip]Yves Senn2013-11-041-1/+1
| | | | |
* | | | | document `BACKTRACE` env var usage in testing guide. [ci skip]Yves Senn2013-11-041-0/+11
| | | | |
* | | | | Fix failures related to enum changesCarlos Antonio da Silva2013-11-041-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 6e4a810f51b9ed2468b92247ef5568cc9d6dbcc0 changed the implementation from class_eval to define_method, but missed the access to the constant versus the access to the constant name.
* | | | | Convert schema file to ruby 1.9 style hashCarlos Antonio da Silva2013-11-041-214/+214
| | | | |
* | | | | Style fixes on test schema fileCarlos Antonio da Silva2013-11-041-6/+6
| | | | |
* | | | | Merge pull request #12755 from cbartlett/masterCarlos Antonio da Silva2013-11-041-1/+1
|\ \ \ \ \ | | | | | | | | | | | | Remove extra whitespace
| * | | | | Remove extra whitespaceColin Bartlett2013-11-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When generating an app with --skip_active_record, an extra line of whitespace was included unnecessarily.
* | | | | | Refactor logic to grab the max time of the list of timestamp names in #cache_keyCarlos Antonio da Silva2013-11-042-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reuse the already existing logic used for grabbing this information from the updated columns.
* | | | | | Respect cache timestamp format when giving timestamps to #cache_keyCarlos Antonio da Silva2013-11-042-3/+4
|/ / / / /
* | | | | :scissors: [ci skip]Carlos Antonio da Silva2013-11-042-5/+2
| | | | |