{"push_id":865708158,"size":817,"distinct_size":817,"ref":"refs/heads/master","head":"899b6bbef371b9b6939d5595e4bcabcec1d69523","before":"58a0c2ea98cd0d46965e4ce7346a1159dce0dbd8","commits":[{"sha":"b1737337e6b6218ae966b57e9484ae7d3aaff7e4","author":{"email":"5a7a6a189b47cd31d24667a751e4003cd04eced5@ktheory.com","name":"Aaron Suggs"},"message":"Support SQL sanitization in AR::QueryMethods#order\n\nAdd support for sanitizing arrays in SQL ORDER clauses.\n\nThis is useful when using MySQL `ORDER BY FIELD()` to return records in\na predetermined way.\n\n```ruby\n  Tag.order(['field(id, ?', [1,3,2]].to_sql\n  # => SELECT \"tags\".* FROM \"tags\"   ORDER BY field(id, 1,3,2)\n```\n\nPrior to this, developers must be careful to sanitize `#order` arguments\nthemselves.","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/b1737337e6b6218ae966b57e9484ae7d3aaff7e4"},{"sha":"6e574e8a11635ec4e579e5b247f6492b9bdc9279","author":{"email":"9b233c49c69ba8058bf650fd5b69953620d4f124@gmail.com","name":"Gordon Chan"},"message":"`HashWithIndifferentAccess.new` respects the default value or proc on objects that respond to `#to_hash`.\n\nBuilds on the work of #12550 where `.new` will convert the object (that respond to `#to_hash`) to a hash and\nadd that hash's keys and values to itself.\n\nThis change will also make `.new` respect the default value or proc of objects that respond to `#to_hash`.\nIn other words, this `.new` behaves exactly like `.new_from_hash_copying_default`.\n\n`.new_from_hash_copying_default` now simply invokes `.new` and any references to `.new_from_hash_copying_default`\nare replaced with `.new`.\n\nAdded tests confirm behavior.","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/6e574e8a11635ec4e579e5b247f6492b9bdc9279"},{"sha":"33a5416461bc5068d85d33259310f56625569e86","author":{"email":"6ed32edf4e92ab3c0a4dc6f90242953c344051ad@programatica.es","name":"Sergio Cambra"},"message":"Includes HABTM returns correct size now. It's caused by the join dependency\nonly instantiates one HABTM object because the join table hasn't a primary key.\nUpdated commit from @bigxiang commit dbaa837\n\nFixes #16032.\n\nExamples:\n\n    before:\n\n    Project.first.salaried_developers.size # => 3\n    Project.includes(:salaried_developers).first.salaried_developers.size # => 1\n\n    after:\n\n    Project.first.salaried_developers.size # => 3\n    Project.includes(:salaried_developers).first.salaried_developers.size # => 3","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/33a5416461bc5068d85d33259310f56625569e86"},{"sha":"d5bf649a535948e70692e521ce3070595334e71b","author":{"email":"b1c1d8736f20db3fb6c1c66bb1455ed43909f0d8@sebjacobs.com","name":"Seb Jacobs"},"message":"Add support for bidirectional destroy dependencies\n\nPrior to this commit if you defined a bidirectional relationship\nbetween two models with destroy dependencies on both sides, a call to\n`destroy` would result in an infinite callback loop.\n\nTake the following relationship.\n\n    class Content < ActiveRecord::Base\n      has_one :content_position, dependent: :destroy\n    end\n\n    class ContentPosition < ActiveRecord::Base\n      belongs_to :content, dependent: :destroy\n    end\n\nCalling `Content#destroy` or `ContentPosition#destroy` would result in\nan infinite callback loop.\n\nThis commit changes the behaviour of `ActiveRecord::Callbacks#destroy`\nso that it guards against subsequent callbacks.\n\nThanks to @zetter for demonstrating the issue with failing tests[1].\n\n[1] rails#13609","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/d5bf649a535948e70692e521ce3070595334e71b"},{"sha":"1a836b21b93acd6851bcb4f83c8b2678282d9122","author":{"email":"5810c096d3b2120c38bbd7b10ad0599e452c5113@gmail.com","name":"Matt Jones"},"message":"Match table names exactly on MySQL\n\nThe `SHOW TABLES LIKE` command accepts metacharacters `%` and `_` in\npotentially unexpected ways. This can be avoided by querying `information_schema.tables`\ndirectly.\n\nFixes #17897","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/1a836b21b93acd6851bcb4f83c8b2678282d9122"},{"sha":"d2bf188bcf87b9dc8f6dda533aa8a24a18b2e166","author":{"email":"bca6f4261a19f75277fe4325de3272d15492eb61@gmail.com","name":"Ryuta Kamizono"},"message":"Move `explain` into `AbstractMysqlAdapter`\n\nCommon methods in both mysql adapters are should be added to\n`AbstractMysqlAdapter`, but some methods had been added to\n`Mysql2Adapter`. (8744632f, 0306f82e, #14359)\n\nSome methods already moved from `Mysql2Adapter` to\n`AbstractMysqlAdapter`. (#17601, #17998)\n\nCommon methods in both mysql adapters are remaining only the `explain`\nmethod in `Mysql2Adapter`.","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/d2bf188bcf87b9dc8f6dda533aa8a24a18b2e166"},{"sha":"7c0f8c64fa1e8e055e2077255843f149e600024b","author":{"email":"c4fe2b1d90ef8f2548c8aeabfa633434316f0305@cutrer.us","name":"Cody Cutrer"},"message":"DRY up STI subclass logic\n\nthe newer method used for discriminating new records did not\nuse the older and more robust method used for instantiating\nexisting records, but did have a better post-check to ensure\nthe sublass was in the hierarchy. so move the descendants check\nto find_sti_class, and then simply call find_sti_class from\nsubclass_from_attributes\n\nnow with fixed specs","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/7c0f8c64fa1e8e055e2077255843f149e600024b"},{"sha":"86a23faa1a82a3e7a2cdf2df01eb6eb18dd3d6f6","author":{"email":"3318dc5ce3e4fb7c28a0b841b6801c884e1d0896@greiz-reinsdorf.de","name":"Lars Kanis"},"message":"PostgreSQL, Replace static connection param list by the one built into libpq.\n\nThis makes the connection adapter future-proof regarding to new parameters.\n\nTo maintain backward compatibility, :requiressl is added by hand. It is\ndeprecated by PostgreSQL since 2003, but still accepted by libpq.","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/86a23faa1a82a3e7a2cdf2df01eb6eb18dd3d6f6"},{"sha":"21e448b5a5ab4dec6fd129f4eaba971d46a12bb1","author":{"email":"17b9e1c64588c7fa6419b4d29dc1f4426279ba01@probber.com","name":"Michael Probber"},"message":"Errors can be indexed with nested attributes\n\n`has_many` can now take `index_errors: true` as an\noption.  When this is enabled, errors for nested models will be\nreturned alongside an index, as opposed to just the nested model name.\nThis option can also be enabled (or disabled) globally through\n`ActiveRecord::Base.index_nested_attribute_errors`\n\nE.X.\n\n```ruby\nclass Guitar < ActiveRecord::Base\n  has_many :tuning_pegs\n  accepts_nested_attributes_for :tuning_pegs\nend\n\nclass TuningPeg < ActiveRecord::Base\n  belongs_to :guitar\n  validates_numericality_of :pitch\nend\n```\n\n - Old style\n - `guitar.errors[\"tuning_pegs.pitch\"] = [\"is not a number\"]`\n\n - New style (if defined globally, or set in has_many_relationship)\n - `guitar.errors[\"tuning_pegs[1].pitch\"] = [\"is not a number\"]`\n\n[Michael Probber, Terence Sun]","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/21e448b5a5ab4dec6fd129f4eaba971d46a12bb1"},{"sha":"2b5a8bc1868aedcd8dcb84c906792207282ae303","author":{"email":"7a5303ccd30e5c0546aca7aa89e67e2e0ea6f586@infopark.de","name":"Cedric Sohrauer"},"message":"when checking for too long cache keys used the uri encoded fname","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/2b5a8bc1868aedcd8dcb84c906792207282ae303"},{"sha":"df94dabb374de5a109de0756c4c19b18375cd5af","author":{"email":"e6fe9b428cbd844027679efe8ffd169eb501ceab@gmail.com","name":"Mehmet Emin İNAÇ"},"message":"Fix for activerecord join dependency instantiate bug\n\nuse only object_id instead parent class and parent id\n\ntest cases\n\nassert_equal\n\nuse table name in references\n\nfix minor problems","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/df94dabb374de5a109de0756c4c19b18375cd5af"},{"sha":"30b640045f0a35ebf76a37956b75dd4aa04d475f","author":{"email":"9ec3f7e571af843d78cc38eb86a69c0ea3091506@gmail.com","name":"Cristian Bica"},"message":"ActiveJob - log enqueued message only after the job was successfully enqueued","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/30b640045f0a35ebf76a37956b75dd4aa04d475f"},{"sha":"3f46ef1ddab87482b730a3f53987e04308783d8b","author":{"email":"bc2a4d3db12d4be19a334ba871062e019f1a11c8@florianthomas.net","name":"Florian Thomas"},"message":"added ActiveRecord::Relation#left_outer_joins\n\nExample:\n  User.left_outer_joins(:posts)\n  => SELECT \"users\".* FROM \"users\" LEFT OUTER JOIN \"posts\" ON \"posts\".\"user_id\" = \"users\".\"id\"","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/3f46ef1ddab87482b730a3f53987e04308783d8b"},{"sha":"fe3a89687f89c2f640f90a59221698c3327cda9b","author":{"email":"46912bed2c3b56d601323fb1c76bee025b5234eb@gmail.com","name":"Prathamesh Sonpatki"},"message":" Added example of sharing secrets in multiple environments in secrets.yml","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/fe3a89687f89c2f640f90a59221698c3327cda9b"},{"sha":"f61dd4f9d4c48b1d447b499d0541d2f6421aedd7","author":{"email":"4fdda3af4667663d4fa2475bd031f634feeed287@imanel.org","name":"Bernard Potocki"},"message":"Unify behavior of all Numeric extensions and use Module.prepend instead of alias_method","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/f61dd4f9d4c48b1d447b499d0541d2f6421aedd7"},{"sha":"05a2a6a0c5ac2384e52df9b8c2aa81352a51d7c7","author":{"email":"b94ddd941335d400b73cc82065f083528f99eb9f@gmail.com","name":"Grey Baker"},"message":"Handle invalid UTF-8 strings when HTML escaping\n\nUse `ActiveSupport::Multibyte::Unicode.tidy_bytes` to handle invalid UTF-8\nstrings in `ERB::Util.unwrapped_html_escape` and `ERB::Util.html_escape_once`.\nPrevents user-entered input passed from a querystring into a form field from\ncausing invalid byte sequence errors.","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/05a2a6a0c5ac2384e52df9b8c2aa81352a51d7c7"},{"sha":"52260581638406d910e09e8d2e66b51acb76c5c6","author":{"email":"1d6e1cf70ec6f9ab28d3ea4b27a49a77654d370e@yukinishijima.net","name":"Yuki Nishijima"},"message":"Add the ability of returning arbitrary headers to ActionDispatch::Static\n\nNow ActionDispatch::Static can accept HTTP headers so that developers\nwill have control of returning arbitrary headers like\n'Access-Control-Allow-Origin' when a response is delivered. They can\nbe configured through `#config.public_file_server.headers`:\n\n  config.public_file_server.headers = {\n    \"Cache-Control\"               => \"public, max-age=60\",\n    \"Access-Control-Allow-Origin\" => \"http://rubyonrails.org\"\n  }\n\nAlso deprecate `config.static_cache_control` in favor of\n`config.public_file_server.headers`.","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/52260581638406d910e09e8d2e66b51acb76c5c6"},{"sha":"289ec49f469533c89fbca8303dbfd7b1a43d1197","author":{"email":"7c2bf5dc385d1facf2c44a5ab4244847218fa3ae@livesense.co.jp","name":"Taishi Kasuga"},"message":"Fix the MySQL column type `SET` registration bug","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/289ec49f469533c89fbca8303dbfd7b1a43d1197"},{"sha":"206cf5193808b41c45fd287e5134dffa961a88de","author":{"email":"bca6f4261a19f75277fe4325de3272d15492eb61@gmail.com","name":"Ryuta Kamizono"},"message":"Fix infinite loop and lookup miss when `SET` type includes other types\n\nThis commit fixes the following problems:\n\n* cause infinit type lookup loop when SET includes aliased types\n * For example:\n   when SET('set') includes aliased type `set`,\n   then aliased `varchar('set')` by type lookup,\n   but type lookup infinit matching same rule.\n* cause type lookup miss when SET includes registered types\n * For example:\n   when SET('time') includes registered type `time`,\n   then aliased `varchar('time')` by type lookup,\n   then matching `time` type.","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/206cf5193808b41c45fd287e5134dffa961a88de"},{"sha":"f654d658f2dab5f4dcc42b2d0c308b4d806dc491","author":{"email":"0e1fdd20c8e24a0652840a7ca87e2633c3eaf76b@gmail.com","name":"Avner Cohen"},"message":"When logging Cache key, in debug mode, also log namespace, to create the full key that actually used by the underline cache implementation","distinct":true,"url":"https://api.github.com/repos/Gaurav2728/docrails/commits/f654d658f2dab5f4dcc42b2d0c308b4d806dc491"}]}